Page 1 sur 1

Big problème script editor avec 4 Mfd :

Publié : dim. oct. 28, 2012 8:48 pm
par Trebuchet
Bonsoir,
Depuis plusieurs jours je m'arrache les cheveux pour programmer mes 4 panels MFD.
Dans le target GUI : Uniquement 2 MFD sont reconnus sur les 4 installés qui eux sont bien reconnus dans le control panel de jeu de win7 64, et tous les boutons des 4 panels fonctionnent.

j'ai téléphoné au SAV thrustmaster et ont m'a répondu que le logiciel :target Gui ne prend en compte que 2 MFD. et qu'uil faut passer par le :script editor pour configurer les 2 autres panel. Cette réponse m'a semblé très étrange, car dans la doc du MFD il est écrit que l'on peut avoir jusqu'à 8 panel MFD !

J'ai donc dans target Gui , programmé 2 MFD , et çà fonctionne super bien dans mon Fsx. je précise que je n'ai pas installé l e profil spécifique FSX, car il ne correspond pas à mes attentes. de plus avec plus de 2 MFD la doc indique qu'il ne faut pas utiliser le profil Fsx.

Je dois maintenant programmer dans le Script Editor 2 autres MFd. mais la documentation ne donne aucune info pour ce qui concerne les subtilités de programmation avec plus de 2 MFD, et j'ai bien cherché dans la doc traduite par ChexkSix, merci à tous. Mais aucune infos concernant les MFD.

Question 1 :

Si je fais un profil avec le script editor pour mes MFD 3 et MFD 4, comment dois-je faire pour que ce script se lance avec mon Fsx et mon script crée sur Target GUI qui lui comprend les MFD 1 et MFD 2.
Target GUI : Le fichier .tmc :
//Script MFD 1 et 2 fait avec le target GUI recopie du script
SetKBRate(32, 50);
SetKBLayout(KB_FR);
MapKey(&LMFD, OSB01, L_SHIFT+'z');
MapKey(&LMFD, OSB02, CHAIN( L_ALT+'v', D(), 'c'));
MapKey(&LMFD, OSB03, CHAIN( L_ALT+'a', D(), 'c'));
ETC...... pour les autres boutons
MFD 2 :
MapKey(&RMFD, OSB01, L_SHIFT+'&');
MapKey(&RMFD, OSB02, L_SHIFT+'é'+256);
MapKey(&RMFD, OSB03, L_SHIFT+'\"');
Vous observez que ce qui distingue le nom des 2 MFD c'est : &L et &R de MapKey
Question :

Si j'ai le MFD 2 et MFD 3 je ne peux pas utiliser dans le script editor le même nom de MapKey car çà fera double emploi ave mon fichier : Target Gui .tmc , comment résoudre ce problème ?

Quand je lance Target GUi avec Fsx , le logiciel target dans le menu Run affiche ceci :
Currently plugged USB HID devices[6]:
1: "Joystick - HOTAS Warthog" - "USB\VID_044F&PID_0402&REV_0100"
2: "Throttle - HOTAS Warthog" - "USB\VID_044F&PID_0404&REV_0100"

3: "F16 MFD 3" - "USB\VID_044F&PID_B353&REV_0100"
4: "F16 MFD 2" - "USB\VID_044F&PID_B352&REV_0100"
5: "F16 MFD 1" - "USB\VID_044F&PID_B351&REV_0100"
6: "F16 MFD 4" - "USB\VID_044F&PID_B354&REV_0100"

USB HID device "Throttle - HOTAS Warthog"(USB\VID_044F&PID_0404\7&30236B5F&0&7) selected
USB HID device "Joystick - HOTAS Warthog"(USB\VID_044F&PID_0402\7&30236B5F&0&4) selected
USB HID device "F16 MFD 1"(USB\VID_044F&PID_B351\8&1A471B0&0&4) selected
USB HID device "F16 MFD 2"
(USB\VID_044F&PID_B352\8&1A471B0&0&5) selected
Virtual HID devices managed by script!
Connecting virtual joystick...Done
Device name set to Thrustmaster Combined
Connecting virtual keyboard...Done
Connecting virtual mouse...Done
main returned 0
Launching <F:\FSX_EXPANSION PACK\fsx.exe >
Ce qui différencie chaque MFD c'est : B353,52,51,54
n'y aurait t'il pas un moyen dans le script editor d'indique en début de script le nom qui s'affiche quand Run est lancé?

Ou qq aurait t'il un script editor fait pour 4 Mfd ou plus ainsi je pourrais l'adapté à mes
besoins.
Merci pour votre aide.

Publié : lun. oct. 29, 2012 7:32 am
par HudLx
Salut Trébuchet,

Ca ne me paraît pas incohérent de gérer tes MFD 3&4 par le script editor si TARGET est fait pour ne gérer que les deux premiers. L'histoire des 8 MFD, ça doit être parce que Windows doit pouvoir distinguer au maximum 8 MFD, probablement rien à voir avec la programmation.

Ensuite, je ne connais pas la programmation de script editor, mais ton TARGET "voit" les MFD 1&2 en USB HID (351&352). Donc tu ne programmeras pas script editor avec L&R MFD mais avec MFD 3&4 qui correspondent au HID 353&354.

VMFA_Hud

Publié : lun. oct. 29, 2012 9:34 am
par dimebug
tu ne peut pas utiliser un script GUI et un script Editeur simultanement. Il faut programmer les mfd dans le meme fichiers. Comme la GUI ne permet pas de gerer plus de 2 MFDs, il faut gerer tout via le script Editor.

Donc l'integralité du programe est a faire en script. je test de mon coté..

Publié : lun. oct. 29, 2012 9:45 am
par Trebuchet
Merci à vous deux pour les infos.

Je vais donc modifier le nom des MFd et je vous tiens au courant.

Par contre, si je programme tout sur sript editor. Comment je dois procéder pour lancer le simu et
le fichier script en même temps, car script editor ne lance pas fsx et le script.tmc en même temps
et dans le Gui c'est un fichier .Fcf je ne peux pas lancer directement le fichier.tmc .

Publié : lun. oct. 29, 2012 9:54 am
par Trebuchet
Je viens de modifier mon fichier .tmc dans le script editor aisi :

MapKey(&1MFD, OSB01,

MapKey(&2MFD, OSB01,

Quand je lance Run il me dit : compile errors.

Je vais essayer avec : "F16 MFD 1" mis j'ai des doutes.....

Publié : lun. oct. 29, 2012 10:02 am
par Trebuchet
Je viens de modifier mon fichier .tmc dans le script editor aisi :

MapKey(&1MFD, OSB01,

MapKey(&2MFD, OSB01,

Quand je lance Run il me dit : compile errors.

Jai essayé avec : "F16 MFD 1" F16 MFD 2 , idem compile error
d'ailleurs il affiche le nombre '1' en vert donc il comprend autre chose

j'ai essayé avec : F16 MFD1 ..... là le chiffre 1 est en noir, mais idem : compile error !

J'ai essayé avec : USB\VID_044F&PID_B351&REV_0100 , idem compile error !

j'ai essayé : &B351 MFD (toujours avec MapKey( devant bien sur...) mais idem compile error.

Là vraiment je ne sais plus quoi faire ?

Suite.....

Publié : lun. oct. 29, 2012 12:58 pm
par Trebuchet
Voici ce que j'ai programmé dans le script editor :
include "target.tmh"
int main()
{
Configure(&HCougar, MODE_EXCLUDED);
Configure(&T16000, MODE_EXCLUDED);
if(Init(&EventHandle)) return 1;
SetKBRate(32, 50);
SetKBLayout(KB_FR);
MapKey(&LMFD, OSB01, L_SHIFT+'z');
MapKey(&LMFD, OSB02, CHAIN( L_ALT+'v', D(), 'c'));
MapKey(&LMFD, OSB03, CHAIN( L_ALT+'a', D(), 'c'));
MapKey(&LMFD, OSB04, CHAIN( L_ALT+'a', D(), 't', D(), 'h'));
MapKey(&LMFD, OSB05, CHAIN( L_ALT+'a', D(), 'b'));
MapKey(&LMFD, OSB06, CHAIN( L_ALT+'a', D(), 'r'));
MapKey(&LMFD, OSB07, CHAIN( L_ALT+'e', D(), 'h'));
MapKey(&LMFD, OSB08, CHAIN( L_ALT+'e', D(), 'e'));
MapKey(&LMFD, OSB09, CHAIN( L_ALT+'e', D(), 'm'));
MapKey(&LMFD, OSB10, CHAIN( L_ALT+'e', D(), 'b'));
MapKey(&LMFD, OSB11, CHAIN( L_ALT+'q', D(), 'm', D(), 'g'));
MapKey(&LMFD, OSB12, CHAIN( L_ALT+'o', D(), 'm', D(), 's'));
MapKey(&LMFD, OSB13, CHAIN( L_ALT+'o', D(), 'm', D(), 'n'));
MapKey(&LMFD, OSB14, CHAIN( L_ALT+'o', D(), 'a'));
MapKey(&LMFD, OSB15, L_ALT+'l');
MapKey(&LMFD, OSB16, L_CTL+'c');
MapKey(&LMFD, OSB17, 'v');
MapKey(&LMFD, OSB18, L_SHIFT+'f');
MapKey(&LMFD, OSB19, L_ALT);
MapKey(&LMFD, OSB20, '$');
MapKey(&LMFD, CONU , 'p');
MapKey(&LMFD, COND , ENT);
MapKey(&LMFD, BRTU , L_CTL+'$');
MapKey(&LMFD, GAINU, KP1);
MapKey(&LMFD, GAIND, KP2);
MapKey(&RMFD, OSB01, L_SHIFT+'&');
MapKey(&RMFD, OSB02, L_SHIFT+'é'+256);
MapKey(&RMFD, OSB03, L_SHIFT+'\"');
MapKey(&RMFD, OSB04, L_SHIFT+'\'');
MapKey(&RMFD, OSB05, L_SHIFT+'(');
MapKey(&RMFD, OSB06, L_SHIFT+'-');
MapKey(&RMFD, OSB07, L_SHIFT+'è'+256);
MapKey(&RMFD, OSB08, L_SHIFT+'_');
MapKey(&RMFD, OSB09, L_SHIFT+'ç'+256);
MapKey(&RMFD, OSB10, L_SHIFT+'w');
MapKey(&RMFD, OSB11, L_SHIFT+'y');
MapKey(&RMFD, OSB12, CHAIN( L_CTL+CAPS, D(), 'y'));
MapKey(&RMFD, OSB13, '_');
MapKey(&RMFD, OSB14, 'è'+256);
MapKey(&RMFD, OSB15, '-');
MapKey(&RMFD, OSB16, '(');
MapKey(&RMFD, OSB17, '\'');
MapKey(&RMFD, OSB18, '\"');
MapKey(&RMFD, OSB19, 'é'+256);
MapKey(&RMFD, OSB20, '&');
MapKey(&RMFD, GAIND, 'ù'+256);

//************************************************
// debut du script pour les MFD 3 et 4
//************************************************
MapKey(&LMFD, OSB01, L_SHIFT+'z');
MapKey(&LMFD, OSB02, CHAIN( L_ALT+'v', D(), 'c'));
MapKey(&LMFD, OSB03, CHAIN( L_ALT+'a', D(), 'c'));
MapKey(&LMFD, OSB04, CHAIN( L_ALT+'a', D(), 't', D(), 'h'));
MapKey(&LMFD, OSB05, CHAIN( L_ALT+'a', D(), 'b'));
MapKey(&LMFD, OSB06, CHAIN( L_ALT+'a', D(), 'r'));
MapKey(&LMFD, OSB07, CHAIN( L_ALT+'e', D(), 'h'));
MapKey(&LMFD, OSB08, CHAIN( L_ALT+'e', D(), 'e'));
MapKey(&LMFD, OSB09, CHAIN( L_ALT+'e', D(), 'm'));
MapKey(&LMFD, OSB10, CHAIN( L_ALT+'e', D(), 'b'));
MapKey(&LMFD, OSB11, CHAIN( L_ALT+'q', D(), 'm', D(), 'g'));
MapKey(&LMFD, OSB12, CHAIN( L_ALT+'o', D(), 'm', D(), 's'));
MapKey(&LMFD, OSB13, CHAIN( L_ALT+'o', D(), 'm', D(), 'n'));
MapKey(&LMFD, OSB14, CHAIN( L_ALT+'o', D(), 'a'));
MapKey(&LMFD, OSB15, L_ALT+'l');
MapKey(&LMFD, OSB16, L_CTL+'c');
MapKey(&LMFD, OSB17, 'v');
MapKey(&LMFD, OSB18, L_SHIFT+'f');
MapKey(&LMFD, OSB19, L_ALT);
MapKey(&LMFD, OSB20, '$');
MapKey(&LMFD, CONU , 'p');
MapKey(&LMFD, COND , ENT);
MapKey(&LMFD, BRTU , L_CTL+'$');
MapKey(&LMFD, GAINU, KP1);
MapKey(&LMFD, GAIND, KP2);
MapKey(&RMFD, OSB01, L_SHIFT+'&');
MapKey(&RMFD, OSB02, L_SHIFT+'é'+256);
MapKey(&RMFD, OSB03, L_SHIFT+'\"');
MapKey(&RMFD, OSB04, L_SHIFT+'\'');
MapKey(&RMFD, OSB05, L_SHIFT+'(');
MapKey(&RMFD, OSB06, L_SHIFT+'-');
MapKey(&RMFD, OSB07, L_SHIFT+'è'+256);
MapKey(&RMFD, OSB08, L_SHIFT+'_');
MapKey(&RMFD, OSB09, L_SHIFT+'ç'+256);
MapKey(&RMFD, OSB10, L_SHIFT+'w');
MapKey(&RMFD, OSB11, L_SHIFT+'y');
MapKey(&RMFD, OSB12, CHAIN( L_CTL+CAPS, D(), 'y'));
MapKey(&RMFD, OSB13, '_');
MapKey(&RMFD, OSB14, 'è'+256);
MapKey(&RMFD, OSB15, '-');
MapKey(&RMFD, OSB16, '(');
MapKey(&RMFD, OSB17, '\'');
MapKey(&RMFD, OSB18, '\"');
MapKey(&RMFD, OSB19, 'é'+256);
MapKey(&RMFD, OSB20, '&');
MapKey(&RMFD, GAIND, 'ù'+256);
}
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);
Vous remarquerez, que j'ai testé une recopie du script des MFD1 et 2 soit L et R.
pour mes MFD 3 et 4, voulant savoir si çà pouvait fonctionner en utilisant le même nom pour les MFD 3 et 4. (là pour l'essai les raccourcis sont les mêmes c'est juste pour le test).

Quand je lance la compilation voici ce que la compilation m'indique :
Running script: C:\Program Files (x86)\Thrustmaster\TARGET\scripts\FSx MFD1-2.tmc
*** Allocated ProcInstances found from the previous run: use FreeProcInstance() ***
Compile Succeeded.
Mapped plugin module "C:\Program Files (x86)\Thrustmaster\TARGET\Plugins\sys.dll"
Physical USB HID devices managed by script!
Currently plugged USB HID devices[6]:
1: "Throttle - HOTAS Warthog" - "USB\VID_044F&PID_0404&REV_0100"
2: "Joystick - HOTAS Warthog" - "USB\VID_044F&PID_0402&REV_0100"
3: "F16 MFD 3" - "USB\VID_044F&PID_B353&REV_0100"
4: "F16 MFD 1" - "USB\VID_044F&PID_B351&REV_0100"
5: "F16 MFD 2" - "USB\VID_044F&PID_B352&REV_0100"
6: "F16 MFD 4" - "USB\VID_044F&PID_B354&REV_0100"
USB HID device "Throttle - HOTAS Warthog"(USB\VID_044F&PID_0404\7&30236B5F&0&7) selected
USB HID device "Joystick - HOTAS Warthog"(USB\VID_044F&PID_0402\7&30236B5F&0&4) selected
USB HID device "F16 MFD 1"(USB\VID_044F&PID_B351\8&1A471B0&0&4) selected
USB HID device "F16 MFD 2"(USB\VID_044F&PID_B352\8&1A471B0&0&5) selected
Virtual HID devices managed by script!
Connecting virtual joystick...Done
Device name set to Thrustmaster Combined
Connecting virtual keyboard...Done
Connecting virtual mouse...Done
main returned 0
J'en déduis :
que le compilateur voit bien mes 4 Mfd , mais en USB HID device il ne lit que le
MFD 1 et 2.

Quand je lance le simu, j'ai bien les MFD 1 et 2 et tous les boutons programmés fonctionnent.
Mais lorsque j'appuie sur les boutons desMFD 3 et 4 aucun raccourcis ne fonctionne.
Donc mon problème vient bien du fait de trouver une identification exacte au mFD 3 ET 4.

J'ai envoyé un mail au SAV thrustmaster, mais çà m'étonnerait qu'ils règlent le problème....
et pourtant çà doit fonctionner, puisque j'ai vu des images de cokpit avec que des MFD...
j'imagine pas qu'ils ont programmé par l'intermédiaire du simu les raccourcis ....

Quel est votre avis ?

il y a peut-être un bug dans le programme :

Publié : lun. oct. 29, 2012 9:17 pm
par Trebuchet
Voici le résultat de mes experiences :

Le sav téléphonique m'a dit que le target editeur ne prend pas en charge 4 Mfd.
j'ai un peu de mal à croire celà, car :

Image 1 le manuel dit :

Image

lorsque je modifie comme indiqué dans le control panel windows, target gui n'affiche que 2 MFD. :

Image

Si je ne modifie pas les numéros des MFD , le target affiche les 4 MFD c'est à mon sens pas très logique, et çà pourrait expliquer la raison pour laquelle je ne parviens pas à programmer mes MFD 3 et 4.

Image

Je n'y comprend vraiment plus rien , çà me semble être un super bug !

Personne ici n'utilise plusieurs MFD ?

Publié : mar. oct. 30, 2012 10:42 am
par dimebug
non c'est pas un bug... l'interface graphique ne sais pas manager plus de 2 MFD, c'est une limitiation, c'est comme ca.

J'ai ta solution en script, je la met au propre et je post ca.

Publié : mar. oct. 30, 2012 10:57 am
par dimebug
Je vais tester pour faire une simulation de poste avion avec 1 throttle et 2 joysticks, ca doit marcher aussi :)


et voila pour les 4 mfds, on crée LMFD1 et RMFD1, on doit pouvoir encore en ajouter d'autre (TARGET script sait manager jusqu'a 16 device USB il me semble):
include "target.tmh"

alias LMFD1, RMFD1;

//program startup
int main()
{
if(Init(&EventHandle)) return 1; // declare the event handler, return on error
&LMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b351")); // expect a LMFD to be plugged on USB
&RMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b352")); // expect a RMFD to be plugged on USB
MapKey(&LMFD, OSB01, PULSE + 'a');
MapKey(&LMFD1, OSB01, PULSE + 'b');
MapKey(&RMFD, OSB01, PULSE + 'c');
MapKey(&RMFD1, OSB01, PULSE + 'd');

//add initialization code here
}

//event handler
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);

//add event handling code here
}

Publié : mar. oct. 30, 2012 11:27 am
par Trebuchet
Merci Dimebug,:yes:

Je vais tester tout de suite ton test de code.
je te tiens au courant.

Publié : mar. oct. 30, 2012 7:01 pm
par Trebuchet
Bonsoir Dimebug,

Voici ce que j'ai fait :

Code :
include "target.tmh"

alias LMFD1, RMFD1;

//program startup
int main()
{
if(Init(&EventHandle)) return 1; // declare the event handler, return on error
&LMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b351")); // expect a LMFD to be plugged on USB
&RMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b352")); // expect a RMFD to be plugged on USB

//************************************************************
//Les scripts et les fonctions sont à mettre ici et avant
//***************************************************************
MapAxis(&Joystick, JOYX, DX_X_AXIS);
MapAxis(&Joystick, JOYY, DX_Y_AXIS);
MapAxis(&Throttle, THR_LEFT, DX_ZROT_AXIS);
MapAxis(&Throttle, THR_RIGHT, DX_Z_AXIS);
MapAxis(&Throttle, SCX, DX_XROT_AXIS);
MapAxis(&Throttle, SCY, DX_YROT_AXIS);
MapAxis(&Throttle, THR_FC, DX_SLIDER_AXIS);

// debut du code ICI MFD 1 ET 2 :
//===============================================================
MapKey(&LMFD, OSB01, L_SHIFT+'z');
MapKey(&RMFD, OSB03, L_SHIFT+'\"');

//===========================================================
// debut du code ICI MFD 3 ET 4 :
MapKey(&LMFD1, OSB01, L_SHIFT+'z');
MapKey(&RMFD1, OSB03, L_SHIFT+'\"');
//===========================================================

}

Quand je compile voici le résultat :
Running script: C:\Program Files (x86)\Thrustmaster\TARGET\scripts\Test DimebugForum.tmc
Mapped plugin module "C:\Program Files (x86)\Thrustmaster\TARGET\Plugins\sys.dll"
Compile Succeeded.
Physical USB HID devices managed by script!
Currently plugged USB HID devices[6]:
1: "F16 MFD 2" - "USB\VID_044F&PID_B352&REV_0100"
2: "F16 MFD 1" - "USB\VID_044F&PID_B351&REV_0100"
3: "F16 MFD 1" - "USB\VID_044F&PID_B351&REV_0100"
4: "Joystick - HOTAS Warthog" - "USB\VID_044F&PID_0402&REV_0100"
5: "Throttle - HOTAS Warthog" - "USB\VID_044F&PID_0404&REV_0100"
6: "F16 MFD 2" - "USB\VID_044F&PID_B352&REV_0100"
USB HID device "Throttle - HOTAS Warthog"(USB\VID_044F&PID_0404\8&1A471B0&0&1) selected
USB HID device "Joystick - HOTAS Warthog"(USB\VID_044F&PID_0402\7&30236B5F&0&7) selected
USB HID device "F16 MFD 1"(USB\VID_044F&PID_B351\7&30236B5F&0&2) selected
USB HID device "F16 MFD 2"(USB\VID_044F&PID_B352\7&30236B5F&0&1) selected
USB HID device with hardware id "VID_044F&PID_0400" cannot be found
USB HID device with hardware id "VID_044F&PID_B10A" cannot be found
Virtual HID devices managed by script!
Connecting virtual joystick...Done
Device name set to Thrustmaster Combined
Connecting virtual keyboard...Done
Connecting virtual mouse...Done
Script stopped!

Runtime Error: STOP request received while running main on line 9 in "C:\Program Files (x86)\Thrustmaster\TARGET\scripts\Test DimebugForum.tmc"
Error: Script run timed out!

int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);
}
Et bien sur dans Fsx le script des MFD ne fonctionne pas.:sweatdrop

Publié : mer. oct. 31, 2012 7:42 am
par HudLx
Salut Trebuchet,

Regarde bien le résultat de ton script : Physical USB HID managed by script
1: "F16 MFD 2" - "USB\VID_044F&PID_B352&REV_0100"
2: "F16 MFD 1" - "USB\VID_044F&PID_B351&REV_0100"
3: "F16 MFD 1" - "USB\VID_044F&PID_B351&REV_0100"
6: "F16 MFD 2" - "USB\VID_044F&PID_B352&REV_0100"

1 & 6 portent le même PID: B352 et 2 &3 aussi: B351. Ceci probablement parce que tu as défini LMFD1 & RMFD1 comme ("VID_044F&PID_b351") & ("VID_044F&PID_b352") alors que ces ID correspondent déjà aux LMFD et RMFD par défaut.

D'ailleurs on voit bien que Target se mélange les pinceaux quand tu essaies de le forcer à "voir" plus de 2 MFD: il détecte 2 fois MFD1 et MFD2 parce qu'il est conçu comme ça (comme te l'a dit Dimebug). La preuve: quand Target GUI en voit 2, Windows détecte les MFD 1, 2, 3 & 4 alors que quand tu le forces à en voir 4, Windows reconnaît MFD1, MFD1, MFD2 & MFD2.

Donc je suppose que si tu veux gérer 4 MFD simultanément, tu dois coder:
&LMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b353"));
et
&RMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b354"));
c'est à dire tels qu'ils sont reconnus par Windows. Et ils n'apparaîtront pas dans Target.
Tu programmes ensuite comme tu le faisais:
// debut du code ICI MFD 1 ET 2 :
//================================================== =============
MapKey(&LMFD, OSB01, L_SHIFT+'z');
MapKey(&RMFD, OSB03, L_SHIFT+'\"');

//================================================== =========
// debut du code ICI MFD 3 ET 4 :
MapKey(&LMFD1, OSB01, L_SHIFT+'z');
MapKey(&RMFD1, OSB03, L_SHIFT+'\"');
//================================================== =========
et il affectera bien les bonnes fonctions aux bons périphériques (enfin je crois).
:sweatdrop Mais c'est vrai que c'est pas évident de deviner qu'il fallait les appeler LMFD1 et RMFD1... (mal documenté?)

VMFA_Hud

Publié : mer. oct. 31, 2012 9:59 am
par dimebug
y'a aussi une faute de synthaxe et ca, ca pardonne pas toujours (surtout qu'elle est reproduite plusieur fois):

MapKey(&RMFD1, OSB03, L_SHIFT+'\"');

ca serait plutot
MapKey(&RMFD1, OSB03, L_SHIFT+'\');

Publié : mer. oct. 31, 2012 10:21 am
par dimebug
voila comment mes miens apparaissent sous le panneau de control windows, je n'ai absolument pas changer leur numerotation ou quoique ce soit, je les ai juste branché...
je check leur pid et je liste ca :

voila leur pid. je suppose que si on leur donne un autre numero, le PID change. Mais je n'ai meme pas le driver specifique des MFD installé, je vais voir pour faire le test.

HID\VID_044F&PID_B351&REV_0100
HID\VID_044F&PID_B351&REV_0100
HID\VID_044F&PID_B352&REV_0100
HID\VID_044F&PID_B352&REV_0100

Publié : mer. oct. 31, 2012 10:36 am
par HudLx
Oui, j'avais remarqué le "double quote" mais je pensais que c'était volontaire, comme une suite de touches.
La moindre petite erreur dans la syntaxe fait au moins foirer la fonction voire le script entier (parfois un espace oublié ou ajouté). Il faut donc être très précis (voire drosophilophile lol).

VMFA_Hud, qui n'a pas fini de galérer avec les profils

Publié : mer. oct. 31, 2012 11:29 am
par dimebug
pour faire une suite de touche faut faire une CHAIN ;)

Bon, j'ai regardé,, quand tu changes le numero d'un MFD, tu changes bien l'ID

Donc pour que mon programme marche, il faut soit que tu configures les numeros tel que je les ai mis (2 mfd1 et 2 mfd2).

Ou que tu edites le programme en utilisant les bons PID

ca doit donner un truc comme ca :
include "target.tmh"

alias LMFD1, RMFD1;

//program startup
int main()
{
if(Init(&EventHandle)) return 1; // declare the event handler, return on error
&LMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b353")); // expect a LMFD to be plugged on USB
&RMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b354")); // expect a RMFD to be plugged on USB
MapKey(&LMFD, OSB01, PULSE + 'a');
MapKey(&LMFD1, OSB01, PULSE + 'b');
MapKey(&RMFD, OSB01, PULSE + 'c');
MapKey(&RMFD1, OSB01, PULSE + 'd');

//add initialization code here
}

//event handler
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);

//add event handling code here
}

Publié : mer. oct. 31, 2012 12:39 pm
par Trebuchet
Bonjour Dimegug, :yes:

j'ai suivi ton conseil voici le détail :( j'ai juste ajouté le fichier macro).
include "target.tmh"
include "FSX_Macros.ttm"

//program startup


int main()
{
if(Init(&EventHandle)) return 1; // declare the event handler, return on error

&LMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b353")); // expect a LMFD to be plugged on USB
&RMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b354")); // expect a RMFD to be plugged on USB


//add initialization code here


//Debut du code MFD 1 et 2
//===============================================================
MapKey(&LMFD, OSB01, FPS);
MapKey(&LMFD1, OSB01, ATC);


//===========================================================
// debut du code ICI MFD 3 ET 4 :
MapKey(&RMFD1,OSB03, PARKING_BRAKES);
MapKey(&RMFD, OSB03, PANEL_3);

//===========================================================

}

//event handler
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);

//add event handling code here
}
Malheureument çà sort une erreur en ligne : 11

11-&LMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b353")); // expect a LMFD to be plugged on USB

Voici le détail compilation :
Running script: C:\Program Files (x86)\Thrustmaster\TARGET\scripts\Test DimebugForum.tmc
*** Allocated ProcInstances found from the previous run: use FreeProcInstance() ***
Compile Succeeded.
Mapped plugin module "C:\Program Files (x86)\Thrustmaster\TARGET\Plugins\sys.dll"
Physical USB HID devices managed by script!
Currently plugged USB HID devices[6]:
1: "F16 MFD 1" - "USB\VID_044F&PID_B351&REV_0100"
2: "F16 MFD 1" - "USB\VID_044F&PID_B351&REV_0100"
3: "F16 MFD 2" - "USB\VID_044F&PID_B352&REV_0100"
4: "F16 MFD 2" - "USB\VID_044F&PID_B352&REV_0100"
5: "Joystick - HOTAS Warthog" - "USB\VID_044F&PID_0402&REV_0100"
6: "Throttle - HOTAS Warthog" - "USB\VID_044F&PID_0404&REV_0100"
USB HID device "Throttle - HOTAS Warthog"(USB\VID_044F&PID_0404\8&1A471B0&0&3) selected
USB HID device "Joystick - HOTAS Warthog"(USB\VID_044F&PID_0402\8&1A471B0&0&4) selected
USB HID device "F16 MFD 1"(USB\VID_044F&PID_B351\7&30236B5F&0&2) selected
USB HID device "F16 MFD 2"(USB\VID_044F&PID_B352\7&30236B5F&0&1) selected
USB HID device with hardware id "VID_044F&PID_0400" cannot be found
USB HID device with hardware id "VID_044F&PID_B10A" cannot be found
Virtual HID devices managed by script!
Connecting virtual joystick...Done
Device name set to Thrustmaster Combined
Connecting virtual keyboard...Done
Connecting virtual mouse...Done
USB HID device with hardware id "VID_044F&PID_b353" cannot be found
Script stopped!

Runtime Error: Symbol not found: LMFD1 in main ( line 11 in Test DimebugForum.tmc )
En ce qui concerne le panel : Joy.cpl , j'ai refait l'initialisation et j'ai comme chez toi :
Image

Et quand je lance la compilation il affiche ceci :
Image

Tu vois qu'il manque maintenant 2 MFD. est-ce normal ?

Publié : mer. oct. 31, 2012 2:19 pm
par dimebug
dans mon poste, j'ai precisé que tu avait 2 solutions, la tu as melangé les 2 donc ca ne marche pas :sweatdrop


1) soit tu laisses les MFDs attribuée en 1, 2 3 et 4 comme ca et tu utilises la version de code suivante :
include "target.tmh"

alias LMFD1, RMFD1;

//program startup
int main()
{
if(Init(&EventHandle)) return 1; // declare the event handler, return on error
&LMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b353")); // expect a LMFD to be plugged on USB
&RMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b354")); // expect a RMFD to be plugged on USB
MapKey(&LMFD, OSB01, PULSE + 'a');
MapKey(&LMFD1, OSB01, PULSE + 'b');
MapKey(&RMFD, OSB01, PULSE + 'c');
MapKey(&RMFD1, OSB01, PULSE + 'd');

//add initialization code here
}

//event handler
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);

//add event handling code here
}
2) soit tu renommes les mfds comme ca
Image

et tu utilise ce code la
include "target.tmh"

alias LMFD1, RMFD1;

//program startup
int main()
{
if(Init(&EventHandle)) return 1; // declare the event handler, return on error
&LMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b351")); // expect a LMFD to be plugged on USB
&RMFD1 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_b352")); // expect a RMFD to be plugged on USB
MapKey(&LMFD, OSB01, PULSE + 'a');
MapKey(&LMFD1, OSB01, PULSE + 'b');
MapKey(&RMFD, OSB01, PULSE + 'c');
MapKey(&RMFD1, OSB01, PULSE + 'd');

//add initialization code here
}

//event handler
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);

//add event handling code here
}

La seule difference, c'est que les VID PID sont adapté a la configuration du control panel de windows. si tu melanges les 2 solution, le programme attent un peripherique qui n'est pas branché (en fait il est branché mais se declare sous une autre PID), donc tu te fait jeter.

Publié : jeu. nov. 01, 2012 2:11 pm
par Trebuchet
Bonjour Dimebug,

j'ai fait des nouveaux essais , et j'ai toujours 2 mfd non reconnu !
Là je t'avoue que j'en ai ma claque.......

Je vais donc utiliser Le GUI en mode avancé pour Warthog et 2 MFd
Et j'ai commencé mettre d'autres boutons avec Fsuipc dans Fsx.

Merci pour votre collaboration. :yes: