Big problème script editor avec 4 Mfd :

Salle dedieé aux péripheriques : Joystick, palloniers, Track-Ir
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

Big problème script editor avec 4 Mfd :

#1

Message 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.
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Avatar de l’utilisateur

HudLx
Pilote Confirmé
Pilote Confirmé
Messages : 2004
Inscription : 01 juillet 2007

#2

Message 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
Image
X5460 @4.33GHz / 8Go DDR2 912 / GTX 560 Ti / Saïtek X52Pro + PZ35 / Cougar FSR mod "Pistolero" + MFD / FreeTrack
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6994
Inscription : 18 août 2001

#3

Message 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é..
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

#4

Message 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 .
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

#5

Message 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.....
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

#6

Message 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 ?
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

Suite.....

#7

Message 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 ?
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

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

#8

Message 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 ?
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6994
Inscription : 18 août 2001

#9

Message 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.
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6994
Inscription : 18 août 2001

#10

Message 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
}
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

#11

Message par Trebuchet »

Merci Dimebug,:yes:

Je vais tester tout de suite ton test de code.
je te tiens au courant.
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

#12

Message 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
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Avatar de l’utilisateur

HudLx
Pilote Confirmé
Pilote Confirmé
Messages : 2004
Inscription : 01 juillet 2007

#13

Message 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
Image
X5460 @4.33GHz / 8Go DDR2 912 / GTX 560 Ti / Saïtek X52Pro + PZ35 / Cougar FSR mod "Pistolero" + MFD / FreeTrack
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6994
Inscription : 18 août 2001

#14

Message 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+'\');
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6994
Inscription : 18 août 2001

#15

Message 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
Pièces jointes
4mfd.jpg
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

HudLx
Pilote Confirmé
Pilote Confirmé
Messages : 2004
Inscription : 01 juillet 2007

#16

Message 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
Image
X5460 @4.33GHz / 8Go DDR2 912 / GTX 560 Ti / Saïtek X52Pro + PZ35 / Cougar FSR mod "Pistolero" + MFD / FreeTrack
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6994
Inscription : 18 août 2001

#17

Message 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
}
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

#18

Message 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 ?
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6994
Inscription : 18 août 2001

#19

Message 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.
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
Trebuchet
Pilote Philanthrope
Pilote Philanthrope
Messages : 884
Inscription : 10 juin 2003

#20

Message 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:
Exposez toujours votre opinion avec modestie, c'est le seul moyen de convaincre

Intel I5 8600 K 6 coeurs -OC: 4.5 - RAM:32go- RTX 2080-SSD 256 go-SSD 500 G-DD 3,5 To-1 écran 32 -VR lenovo
Image
http://FlightSimulator20.cd91.eu/
Répondre

Revenir à « salle: Periphériques: Hotas, Joysticks, Track-IR »