J'ai pas plus d'infos que ce que dime a donnéDusty a écrit :Merci ivan. Cependant si j'ai bien compris le mode FILTERED tel qu'Icemaker l'a expliqué, cela permettrait de passer outre toute cette réaffectation.
Ice, tu aurais des précisions?
aide.pour hotas warthog
#26
-
- Messages : 6149
- Inscription : 31 mai 2005
#27
Salutlefuneste a écrit :J'ai deja réalisé la démarche : Voir mon profil A10C: http://www.checksix-forums.com/forumdisplay.php?f=283
Si ca peut te faire gagner du temps...
Il est ou ton profil:detective
Ton lien pointe sur les forum generaux hotas etc....
Merci
-
- Messages : 6149
- Inscription : 31 mai 2005
pb de script : bouton de la throttle ne fonctionnent pas
#30J'avais laissé tombé la programmation de mes manettes en utilisant la fonction Shift avec le bouton S4, de façon à garder la config d'origine en fonction non shifté
et de nouvelles touches en shiftant.
Je m'y remet, mais j'ai un problème avec la configuration :
Les touches shiftés fonctionnent (H2 et H3 dans mon script)
Les boutons du Joystick sont fonctionnels mais pas ceux de la Trhottle.
voici mon script :
et de nouvelles touches en shiftant.
Je m'y remet, mais j'ai un problème avec la configuration :
Les touches shiftés fonctionnent (H2 et H3 dans mon script)
Les boutons du Joystick sont fonctionnels mais pas ceux de la Trhottle.
voici mon script :
Si une bonne âme pouvait m'aider ......include "target.tmh"
int main()
{
Exclude(&HCougar);
Exclude(&Joystick);
Exclude(&Throttle);
Exclude(&LMFD);
Exclude(&RMFD);
Configure(&Joystick, MODE_FILTERED);
Configure(&Throttle, MODE_FILTERED);
Configure(&LMFD, MODE_FILTERED);
Configure(&RMFD, MODE_FILTERED);
if(Init(&EventHandle)) return 1;
SetShiftButton(&Joystick, S4);
SetKBRate(32, 50);
SetKBLayout(KB_FR);
//SnapViews
MapKeyIO(&Joystick, H2U, PULSE+R_CTL+KP0);
MapKeyIO(&Joystick, H2D, PULSE+KP2);
MapKeyIO(&Joystick, H2L, PULSE+KP4);
MapKeyIO(&Joystick, H2R, PULSE+KP6);
// TrackIr
MapKeyIO(&Joystick, H3U, PULSE+L_CTL+APPS, 0);
MapKeyIOUMD(&Joystick, H3D, PULSE+R_CTL+APPS, 0);
//Axis
MapAxis(&Joystick, JOYX, DX_X_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Joystick, JOYX, 0, 0, 0, 0, 0);
MapAxis(&Joystick, JOYY, DX_Y_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Joystick, JOYY, 0, 0, 0, 0, 0);
MapAxis(&Throttle, SCX, DX_XROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, SCX, 0, 0, 0, 0, 0);
MapAxis(&Throttle, SCY, DX_YROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, SCY, 0, 0, 0, 0, 0);
MapAxis(&Throttle, THR_RIGHT, DX_Z_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, THR_RIGHT, 0, 0, 0, 0, 0);
MapAxis(&Throttle, THR_LEFT, DX_ZROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, THR_LEFT, 0, 0, 0, 0, 0);
MapAxis(&Throttle, THR_FC, DX_SLIDER_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
SetSCurve(&Throttle, THR_FC, 0, 0, 0, 0, 0);
}
int EventHandle(int type, alias o, int x)
{
if(&o == &Joystick & !o[S4]) GameOutput(&o, x, o[x]);
DefaultMapping(&o, x);
}
#31
Voilà ce qu'on a quand on utilise TARGET sans spécifier son mapping:
Code : Tout sélectionner
// Default button mapping:
Joystick:
TG1 , DX1
S2 , DX2
S3 , DX3
S4 , DX4
S1 , DX5
TG2 , DX6
H2U , DX7
H2R , DX8
H2D , DX9
H2L , DX10
H3U , DX11
H3R , DX12
H3D , DX13
H3L , DX14
H4U , DX15
H4R , DX16
H4D , DX17
H4L , DX18
H4P , DX19
H1U , DXHATUP
H1R , DXHATRIGHT
H1D , DXHATDOWN
H1L , DXHATLEFT
Throttle:
LTB , DX20
SC , DX21
CSU , DX22
CSR , DX23
CSD , DX24
CSL , DX25
MSP , DX26
MSU , DX27
MSR , DX28
MSD , DX29
MSL , DX30
SPDF , DX31
SPDB , DX32
#32
normal
dans
MapKeyIOUMD(&Joystick, H3D, PULSE+R_CTL+APPS, 0);
tu as 5 positions à programmer : I , O , U, M, D, or là tu n'en définis que 2
dans
MapKeyIOUMD(&Joystick, H3D, PULSE+R_CTL+APPS, 0);
tu as 5 positions à programmer : I , O , U, M, D, or là tu n'en définis que 2
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC]
(\_/)
(_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")[/align]
(")_(")[/align]
Forbidden Planet = SF , video, old goodie a écrit : http://en.wikipedia.org/wiki/Forbidden_Planet http://www.forbidden-planet.org/forbidden-planet/http://www.jeffbots.com/forbiddenplanet.html http://web.archive.org/web/200412110934 ... fbhome.htm
#33
C'est encore plus grave que ça docteur!
Le mapping que j'ai extrait plus haut s'applique dans DefaultMapping() sans avoir fait de MapKey() perso.
Il me semble que la ligne suivante ne sert tout simplement à rien:
if(&o == &Joystick & !o[S4]) GameOutput(&o, x, o[x]);
... ça revient à prendre la valeur d'un paramètre du joystick pour la remettre là où elle se trouvait déjà
Je ne vais pas en remettre une couche mais si on veut avoir un un résultat différent du mapping par défaut, faut pas laisser Init() faire avec son MapList(&Joystick, &JoystickMap); et MapList(&Throttle, &ThrottleMap);... Faut mettre les pieds dans le plat, après l'appel obligagoire à Init() avec quelque chose qui ressemble aux 2 premiers encarts de mon message #23.
Le mapping que j'ai extrait plus haut s'applique dans DefaultMapping() sans avoir fait de MapKey() perso.
Il me semble que la ligne suivante ne sert tout simplement à rien:
if(&o == &Joystick & !o[S4]) GameOutput(&o, x, o[x]);
... ça revient à prendre la valeur d'un paramètre du joystick pour la remettre là où elle se trouvait déjà
Je ne vais pas en remettre une couche mais si on veut avoir un un résultat différent du mapping par défaut, faut pas laisser Init() faire avec son MapList(&Joystick, &JoystickMap); et MapList(&Throttle, &ThrottleMap);... Faut mettre les pieds dans le plat, après l'appel obligagoire à Init() avec quelque chose qui ressemble aux 2 premiers encarts de mon message #23.
#34
J'essaye d'appliquer ceci, pour ne pas avoir tout a reprogrammer :
Les Boutons du joystick ont bien gardés leurs fonction d'origine en fonction non shifté.
Seuls les boutons de la throttle n'a pas gardé ses fonctions d'origine.
icemaker a écrit :...
Dans le script é]Include "target.tmh"
int main()
{
Exclude(&HCougar);
Exclude(&Joystick);
Exclude(&Throttle);
Exclude(&LMFD);
Exclude(&RMFD);
Configure(&Joystick, MODE_FILTERED);
Configure(&Throttle, MODE_FILTERED);
Configure(&LMFD, MODE_FILTERED);
Configure(&RMFD, MODE_FILTERED);
if(Init(&EventHandle)) return 1;
SetShiftButton(&Joystick, S4);[/code]
En fait les boutons programmés de cette façon fonctionnent parfaitement en fonction shifté.hellfrog a écrit : dans MapKeyIOUMD(&Joystick, H3D, PULSE+R_CTL+APPS, 0)]
J'ai suivi les conseils de dimebug, il semblerait que ce ne soit pas la peine de mettre U,M,D si non utilisés :
dimebug a écrit :Il faut utiliser les MapkeyIO mais en entrant que la premiere commande (la ou il devrait y en avoir 2, ou mettre 0 pour la seconde commande) :
MapKeyIO(&Joystick, H3U, USB[0x55])]); //zoom
Les Boutons du joystick ont bien gardés leurs fonction d'origine en fonction non shifté.
Seuls les boutons de la throttle n'a pas gardé ses fonctions d'origine.
#35
C'est une ligne donnée par Icemaker :ivanwfr a écrit :C'est encore plus grave que ça docteur!
Le mapping que j'ai extrait plus haut s'applique dans DefaultMapping() sans avoir fait de MapKey() perso.
Il me semble que la ligne suivante ne sert tout simplement à rien:
if(&o == &Joystick & !o[S4]) GameOutput(&o, x, o[x]);
... ça revient à prendre la valeur d'un paramètre du joystick pour la remettre là où elle se trouvait déjà
icemaker a écrit :...
C'est le code que les dev de TARGET m'ont fait passer lors des test de cette fonction...
Justement je voudrais garder le mapping par défaut, et seulement rajouter quelques fonctions en fonction shiftée.ivanwfr a écrit :...
Je ne vais pas en remettre une couche mais si on veut avoir un un résultat différent du mapping par défaut, faut pas laisser Init() faire avec son MapList(&Joystick, &JoystickMap); et MapList(&Throttle, &ThrottleMap);... Faut mettre les pieds dans le plat, après l'appel obligagoire à Init() avec quelque chose qui ressemble aux 2 premiers encarts de mon message #23.
#37
Ok, alors je vais passer le balon.
Si les règles du jeu vallent mieux qu'un code qui marche, j'attendrai d'avoir quelque chose à tester pour comprendre. Je me contente de ce que je trouve dans les fichiers fournis par Thrustmaster et je ne parle que de ce que j'arrive à exploiter.
En prenant bien la précaution de dire que j'aime beaucoup TARGET, j'ajoute que si les devs s'étaient donné la peine de fournir ne serait-ce qu'une base de travail équivalent du Plug and Play, je resterai humblement à ma place mais ils ne se sont pas donné cette peine et c'est bien dommage car ce n'est vraiment pas grand chose et on dirait bien que ça manque!
Comme je n'ai pas attendu qu'on me prenne par la main ou qu'on me parachute une ligne de code sans la moindre explication, je garderai GameOutput() pour jouer avec les LED et je vais continuer à ma façon avec MapKey().
Si les règles du jeu vallent mieux qu'un code qui marche, j'attendrai d'avoir quelque chose à tester pour comprendre. Je me contente de ce que je trouve dans les fichiers fournis par Thrustmaster et je ne parle que de ce que j'arrive à exploiter.
En prenant bien la précaution de dire que j'aime beaucoup TARGET, j'ajoute que si les devs s'étaient donné la peine de fournir ne serait-ce qu'une base de travail équivalent du Plug and Play, je resterai humblement à ma place mais ils ne se sont pas donné cette peine et c'est bien dommage car ce n'est vraiment pas grand chose et on dirait bien que ça manque!
Comme je n'ai pas attendu qu'on me prenne par la main ou qu'on me parachute une ligne de code sans la moindre explication, je garderai GameOutput() pour jouer avec les LED et je vais continuer à ma façon avec MapKey().
#38
oui... sauf que le "MODE FILTERED" n'est pas une fonction OFFICIELLEMENT supportée par TM... et il doit bien y avoir une raison... (bugs...?)....
ça peut marcher, mais aussi ne pas...
de plus dans DCS BS ils avaient déjà fait des lua pour le cougar et le X52...et ça n'a jamais marché, ils ont laissé tombé chez DCS...
la méthode exposée par irwan est plus complexe au premier abord, mais il suffit juste d'editer les fichiers ad hoc de mappage, pour y mettre ce que l'on veut, et ce n'est pas plus compliqué que de faire un script.
la seule chose compliquée c'est de comprendre comment marche son script "à tiroirs" avec des fichiers qui s'apellent les uns les autres... ; mais une fois qu'on a pigé, c'est pas si dur...
en outre elle a l'avantage de repartir du code source de Target, sans les fioritures ajoutées par TM pour "simplifier" avec GUI et la syntaxe du manuel...
c'est donc efficace et ça marche.
mais irwanfr c'est son métier... ce qui est simple pour lui peut etre hermétique pour un novice... je ne dis pas le contraire non plus.
après faut choisir : soit mettre les mains dedans et yu passer du temps pour faire des choses qui sont pas documentées
ou faire simple et renoncer à qqs trucs sympas ou complexes que permet de faire les matos mais pas faciles à programmer.
en fonction de son niveau et du temps qu'on veut y consacrer.
on n'aura pas le beurre ET la crêmière...
ça peut marcher, mais aussi ne pas...
de plus dans DCS BS ils avaient déjà fait des lua pour le cougar et le X52...et ça n'a jamais marché, ils ont laissé tombé chez DCS...
la méthode exposée par irwan est plus complexe au premier abord, mais il suffit juste d'editer les fichiers ad hoc de mappage, pour y mettre ce que l'on veut, et ce n'est pas plus compliqué que de faire un script.
la seule chose compliquée c'est de comprendre comment marche son script "à tiroirs" avec des fichiers qui s'apellent les uns les autres... ; mais une fois qu'on a pigé, c'est pas si dur...
en outre elle a l'avantage de repartir du code source de Target, sans les fioritures ajoutées par TM pour "simplifier" avec GUI et la syntaxe du manuel...
c'est donc efficace et ça marche.
mais irwanfr c'est son métier... ce qui est simple pour lui peut etre hermétique pour un novice... je ne dis pas le contraire non plus.
après faut choisir : soit mettre les mains dedans et yu passer du temps pour faire des choses qui sont pas documentées
ou faire simple et renoncer à qqs trucs sympas ou complexes que permet de faire les matos mais pas faciles à programmer.
en fonction de son niveau et du temps qu'on veut y consacrer.
on n'aura pas le beurre ET la crêmière...
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC]
(\_/)
(_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")[/align]
(")_(")[/align]
Forbidden Planet = SF , video, old goodie a écrit : http://en.wikipedia.org/wiki/Forbidden_Planet http://www.forbidden-planet.org/forbidden-planet/http://www.jeffbots.com/forbiddenplanet.html http://web.archive.org/web/200412110934 ... fbhome.htm
#39
J'ajouterai que je ne vois aucun inconvénient à commenter tout ce qui aura le mérite de faire l'objet d'une question formulée par quelqu'un qui veut se donner la peine de comprendre ce que j'ai trouvé.
Je ne me suis pas lancé dans des explications préliminaire parce que ça n'aurait fait qu
Je ne me suis pas lancé dans des explications préliminaire parce que ça n'aurait fait qu
#40
J'ajouterai que je ne vois aucun inconvénient à commenter tout ce qui aura le mérite de faire l'objet d'une question.
Si je ne me suis pas lancé dans plus d'explications. c'est justement parce que ça n'aurait fait que rallonger inutilement la sauce. Mais si quelqu'un veut bien se donner la peine de comprendre ce que j'ai trouvé, je n'en demande pas plus. C'est juste histoire de ne pas être seul à bricoler dans mon coin.
Si je ne me suis pas lancé dans plus d'explications. c'est justement parce que ça n'aurait fait que rallonger inutilement la sauce. Mais si quelqu'un veut bien se donner la peine de comprendre ce que j'ai trouvé, je n'en demande pas plus. C'est juste histoire de ne pas être seul à bricoler dans mon coin.
#41
@ IvanWfr : Ta solution me semble effectivement meilleure. Mais n'ayant, pour l'instant, pas trop de temps pour assimiler le scriptage sous Target, j'ai voulu essayer une méthode qui me paraissait plus accessible pour moi.
En tous cas merci a vous deux pour vos réponses.
Je ne manquerais surement pas de te questionner !hellfrog a écrit :...la seule chose compliquée c'est de comprendre comment marche son script "à tiroirs" avec des fichiers qui s'apellent les uns les autres... ]
Pour l'instant j'ai pas encore pigé
Ceci dit, dès que je peux, je me penche plus en détail sur les scripts target et essaierais de mettre un place une solution suivant la méthode décrite par ivanwfr.
ivanwfr a écrit :..... je ne vois aucun inconvénient à commenter tout ce qui aura le mérite de faire l'objet d'une question.
En tous cas merci a vous deux pour vos réponses.
#42
@ IvanWfr : Ta solution me semble effectivement meilleure. Mais n'ayant, pour l'instant, pas trop de temps pour assimiler le scriptage sous Target, j'ai voulu essayer une méthode qui me paraissait plus accessible pour moi.
En tous cas, merci a vous deux pour vos réponses.
Je ne manquerais surement pas de te questionner !hellfrog a écrit :...la seule chose compliquée c'est de comprendre comment marche son script "à tiroirs" avec des fichiers qui s'apellent les uns les autres... ]
Pour l'instant j'ai pas encore pigé
Ceci dit, dès que je peux, je me penche plus en détail sur les scripts target et essaierais de mettre un place une solution suivant ta méthode.
ivanwfr a écrit :..... je ne vois aucun inconvénient à commenter tout ce qui aura le mérite de faire l'objet d'une question.
En tous cas, merci a vous deux pour vos réponses.
#43
A mon avis le point de départ le plus commode consiste à:
1/2 lancer DCSW_PNP_main.tmc avec Script Editor -- sans chercher à comprendre dans un premier temps.
2/2 Importer Combined_ivanwfr.lua qui va avec.
Tout ça pour arriver à boucher le trou que TM a laissé dans les configurations par défaut de DCS:
1/2 lancer DCSW_PNP_main.tmc avec Script Editor -- sans chercher à comprendre dans un premier temps.
2/2 Importer Combined_ivanwfr.lua qui va avec.
Tout ça pour arriver à boucher le trou que TM a laissé dans les configurations par défaut de DCS:
- CH PRO PEDALS USB.lua
- F16 MFD 1.lua
- F16 MFD 2.lua
- Joystick - HOTAS Warthog.lua
- Saitek X52 Pro Flight Control System.lua
- Saitek X52 Pro Flight Controller.lua
- Throttle - HOTAS Warthog.lua
- default.lua
#44
@ivanwfr :
J'ai essayer tes scripts DCS_ivanwfr_11052 sans pousser les tests a fond.
Les boutons du Warthog fonctionnent normalement 4ceux que j'ai testé, les snapviews s'affichent bien en mode shifté.
J'ai commencé à me plonger dans les fichiers, si j'ai compris la fonction de presque tous les fichiers, il reste beaucoup de points d'interrogations.
En premier comment basculer les layers U/M/D.
Autre chose, j'ai testé avec event tester et device analyser, et il me semble que le MSD (Micro Switch Down)n'est pas affecté.
En tout cas bravo ! c'est un super job !
J'ai essayer tes scripts DCS_ivanwfr_11052 sans pousser les tests a fond.
Les boutons du Warthog fonctionnent normalement 4ceux que j'ai testé, les snapviews s'affichent bien en mode shifté.
J'ai commencé à me plonger dans les fichiers, si j'ai compris la fonction de presque tous les fichiers, il reste beaucoup de points d'interrogations.
En premier comment basculer les layers U/M/D.
Autre chose, j'ai testé avec event tester et device analyser, et il me semble que le MSD (Micro Switch Down)n'est pas affecté.
En tout cas bravo ! c'est un super job !
#45
Si tu tombes ne serait-ce que sur un dixième des questions que je me suis posées, ça va faire un sacré thread...
Mais surtout n'hésites pas car je pourrais sans doute te répondre sans problème parce que le but de ma démarche actuelle est justement de chercher des solutions en tout genre pour pousser au max les limites de ce que j'arrive à comprendre à TARGET.
Pour basculer UMD, c'est justement le Micro switch Up et Down ... celui qui marche pas (j'ai légèrement caché le fait que j'avais échangé MS_Push-MS_Down!)
Mais, là aussi, j'ai un argumentaire que j'ai construit après avoir bien pesé les patattes:
Mais surtout n'hésites pas car je pourrais sans doute te répondre sans problème parce que le but de ma démarche actuelle est justement de chercher des solutions en tout genre pour pousser au max les limites de ce que j'arrive à comprendre à TARGET.
Pour basculer UMD, c'est justement le Micro switch Up et Down ... celui qui marche pas (j'ai légèrement caché le fait que j'avais échangé MS_Push-MS_Down!)
Mais, là aussi, j'ai un argumentaire que j'ai construit après avoir bien pesé les patattes:
- MSU n'est pas utilisé par défaut... du coup ça fait un bon candidat pour le U-layer dans SetShiftButton()!
... - MSP n'est pas utilisé non plus par défaut... une raison supplémentaire pour utiliser aussi MS pour le D-layer... tout ça avec le pouce, ce qui n'est pas trop mal pour activer l'un des 2 modifiers exclusif l'un de l'autre que sont ces deux layers.
... - A l'usage, je me suis rendu compte que MSD pour faire Layer-Down c'est tout de même encore vachement mieux!... alors j'ai pensé que prendre MSP pour activer la radio UHF c'est pas si mal que ça!
... - Du coup l'utilisation du switch MS donne ça dans util/th_MO.tmc et mon profile Combined avec DX-Input pour le Throttle:
[VHF2 UHF VHF1] == [MSL MSP MSR] == [Left Push Right]
...
Avec ça dans le main, tu actives IO avec S4 et et UMD avec MSU MSD:
SetShiftButton(&Joystick, S4, &Throttle, MSU, MSD, 0);
#46
En fait j'avais vu hier soir après avoir écrit mon post précédent.ivanwfr a écrit :.....
Pour basculer UMD, c'est justement le Micro switch Up et Down ... celui qui marche pas (j'ai légèrement caché le fait que j'avais échangé MS_Push-MS_Down!)
Ça j'avais pas vu !ivanwfr a écrit :....
[*]Du coup l'utilisation du switch MS donne ç] == [MSL MSP MSR] == [Left Push Right]
...
Questions :
As tu laissé un bouton libre ou prévu un bouton (en couche MO) pour servir de push-to-talk avec les programmes de communication comme TS3 ?
Quelle fonction est programmée sur le slider du throttle ? ( pas trouvé le mapping dans ton doc HTML)
#47
Concernant le Slider du Throttle (Friction Control), ça se passe dans axis/axis_THR_FC.tmc:
- Pour l'instant j'ai pompé une idée qui consiste à manipuler le train (Landing Gear Up/Down) en jouant avec KeyAxis() et AXMAP2() pour le I-Layer (S4 enfoncé). Ce choix n'a été qu'un prétexte pour la mise en oeuvre de KeyAxis() et il se pourrait bien qu'on puisse lui trouver un meilleur usage.
- Mais j'ai tout de même ajouté une fonction particulière pour la couche MO, toujours dans axis_THR_FC.tmc. Le 2eme KeyAxis() appelle les fonctions slew_key_zoom_set() et slew_mouse_zoom_set() qui ajustent en temps réel la sensibilité du TrackPoint SC. Ça se passe dans le fichier axis/axis_THR_SC_KEYS.tmc pour keyboard turn speed et axis/axis_THR_SC_MOUSE.tmc pour ajuster le zoom pour SCX et SCY à coup de SetSCurve().
Mais on n'est pas obligé de piger tout ce qu'il y a là dedans pour s'en servir, y'a qu'a faire marcher le trackpoint et jouer avec le slider pour voir ce que ça donne. Actuellement, il faut appuyer sur SCP MI-layer, ce qui fait (SCP = Push) avec (S4 enfoncé) pour basculer entre TrackPoint (pointeur de la souris) et Slew Control (TAD et HUD cursor).
Une dernière astuce dans tout ça: Les fonctions set_turn_speed[FAST NORMAL SLOW] sont appelées en cliquant SCP avec Micro-Switch en haut ou en bas (couche UO et DO) pour accélerer ou ralentir la vitesse des curseurs (TrackPoint ou Slew keys en fonction du choix courant). La vitesse NORMAL est restaurée en même temps que le basculement entre TrackPoint et Slew Control (click SCP + S4) (économie d'un bouton).
Si ça paraît bien compliqué, ça l'est tout de même moins que certaines fonctions du cockpit! Il suffit de s'en servir pour se rendre compte qu'on s'y fait très bien
A propos de TeamSpeak:
Je ne me suis pas encore lancé dans une synthèse ergonomique d'ensemble mais dans mon raisonnement actuel, la couche MO (couche par défaut Middle Out), pour le Joystick autant que pour le Throttle devrait rester aussi proche du fonctionnement plug-and-play que possible. L'idée étant de faciliter le basculement [USB HID RÉEL Plug & Play] -- [HID COMBINED VIRTUEL avec TARGET]. J'ai donc réservé mes fantaisies pour les layers optionnels.
Mais on a largement de quoi faire! Je n'ai pas fait le compte de tous les boutons disponibles mais par exemple pour la couche UI, je n'en ai mappé que 2 pour l'instant (Alt-Tab LEFT et Alt-Tab RIGHT).
Mai je vois bien où tu veux an venir pour TeamSpeak. Une activation directe sans modifier est bien commode mais, malgré les apparences, il nous reste plein d'autres couches au delà de IOUMD!
Custom Modes:
Si TARGET propose d'activer une fonction particulière selon qu'on se trouve dans l'un des 6 modes possibles (IOUMD), on peut facilement surenchérir en disant par exemple que si on maintient S3 enfoncé, certaines de nos fonctions en tiendront compte même si on n'en a rien dit à TARGET dans SetShiftButton(&Joystick, S4, &Throttle, MSU, MSD, 0).
Et bah m'en fallait pas plus pour que je saute sur l'occasion et j'ai validé l'idée dans js/js_MO.tmc. Si on clique S3 en moins de 200ms, il fait simplement son boulot qui consiste à envoyer INSERT (Nosewheel Steering).
Par contre, si on le maintient appuyé, INSERT ne sera pas envoyé mais ma fonction slew_mouse_zoom_freeze() est appelée pour calmer le pointeur Slew Control (... axis/axis_THR_SC_MOUSE.tmc). On peut alors cliquer sur SC sans pisser à côté de la cuvette .
Et voilà une couche de plus! Ça n'a rien à voir avec IOUMB et on peut en faire autant avec n'importe quel bouton. Il suffit de gérer MapKeyR() pour ces touches de façon a sortir du mode correspondant à ce bouton (slew_mouse_zoom_unfreeze() dans mon cas).
Même si ça apparaît compliqué quand on entre dans le détail, je cherche toujours m'assurer que l'utilisation de ces fonctions puisse devenir reflex. Il faut bien s'attendre à un temps d'assimilation mais si ça ne vient pas assez rapidement, ça veut dire qu'il faut reconsidérer l'ensemble.
- Pour l'instant j'ai pompé une idée qui consiste à manipuler le train (Landing Gear Up/Down) en jouant avec KeyAxis() et AXMAP2() pour le I-Layer (S4 enfoncé). Ce choix n'a été qu'un prétexte pour la mise en oeuvre de KeyAxis() et il se pourrait bien qu'on puisse lui trouver un meilleur usage.
- Mais j'ai tout de même ajouté une fonction particulière pour la couche MO, toujours dans axis_THR_FC.tmc. Le 2eme KeyAxis() appelle les fonctions slew_key_zoom_set() et slew_mouse_zoom_set() qui ajustent en temps réel la sensibilité du TrackPoint SC. Ça se passe dans le fichier axis/axis_THR_SC_KEYS.tmc pour keyboard turn speed et axis/axis_THR_SC_MOUSE.tmc pour ajuster le zoom pour SCX et SCY à coup de SetSCurve().
Mais on n'est pas obligé de piger tout ce qu'il y a là dedans pour s'en servir, y'a qu'a faire marcher le trackpoint et jouer avec le slider pour voir ce que ça donne. Actuellement, il faut appuyer sur SCP MI-layer, ce qui fait (SCP = Push) avec (S4 enfoncé) pour basculer entre TrackPoint (pointeur de la souris) et Slew Control (TAD et HUD cursor).
Une dernière astuce dans tout ça: Les fonctions set_turn_speed[FAST NORMAL SLOW] sont appelées en cliquant SCP avec Micro-Switch en haut ou en bas (couche UO et DO) pour accélerer ou ralentir la vitesse des curseurs (TrackPoint ou Slew keys en fonction du choix courant). La vitesse NORMAL est restaurée en même temps que le basculement entre TrackPoint et Slew Control (click SCP + S4) (économie d'un bouton).
Si ça paraît bien compliqué, ça l'est tout de même moins que certaines fonctions du cockpit! Il suffit de s'en servir pour se rendre compte qu'on s'y fait très bien
A propos de TeamSpeak:
Je ne me suis pas encore lancé dans une synthèse ergonomique d'ensemble mais dans mon raisonnement actuel, la couche MO (couche par défaut Middle Out), pour le Joystick autant que pour le Throttle devrait rester aussi proche du fonctionnement plug-and-play que possible. L'idée étant de faciliter le basculement [USB HID RÉEL Plug & Play] -- [HID COMBINED VIRTUEL avec TARGET]. J'ai donc réservé mes fantaisies pour les layers optionnels.
Mais on a largement de quoi faire! Je n'ai pas fait le compte de tous les boutons disponibles mais par exemple pour la couche UI, je n'en ai mappé que 2 pour l'instant (Alt-Tab LEFT et Alt-Tab RIGHT).
Mai je vois bien où tu veux an venir pour TeamSpeak. Une activation directe sans modifier est bien commode mais, malgré les apparences, il nous reste plein d'autres couches au delà de IOUMD!
Custom Modes:
Si TARGET propose d'activer une fonction particulière selon qu'on se trouve dans l'un des 6 modes possibles (IOUMD), on peut facilement surenchérir en disant par exemple que si on maintient S3 enfoncé, certaines de nos fonctions en tiendront compte même si on n'en a rien dit à TARGET dans SetShiftButton(&Joystick, S4, &Throttle, MSU, MSD, 0).
Et bah m'en fallait pas plus pour que je saute sur l'occasion et j'ai validé l'idée dans js/js_MO.tmc. Si on clique S3 en moins de 200ms, il fait simplement son boulot qui consiste à envoyer INSERT (Nosewheel Steering).
Par contre, si on le maintient appuyé, INSERT ne sera pas envoyé mais ma fonction slew_mouse_zoom_freeze() est appelée pour calmer le pointeur Slew Control (... axis/axis_THR_SC_MOUSE.tmc). On peut alors cliquer sur SC sans pisser à côté de la cuvette .
Et voilà une couche de plus! Ça n'a rien à voir avec IOUMB et on peut en faire autant avec n'importe quel bouton. Il suffit de gérer MapKeyR() pour ces touches de façon a sortir du mode correspondant à ce bouton (slew_mouse_zoom_unfreeze() dans mon cas).
Même si ça apparaît compliqué quand on entre dans le détail, je cherche toujours m'assurer que l'utilisation de ces fonctions puisse devenir reflex. Il faut bien s'attendre à un temps d'assimilation mais si ça ne vient pas assez rapidement, ça veut dire qu'il faut reconsidérer l'ensemble.
#48
Pour la fonction push-to-talk il est préférable de n'avoir qu'un seul bouton a presser, presser 2 boutons pourrait être gênant car bien souvent on doit communiquer tout en jouant sur les commandes..ivanwfr a écrit :je vois bien où tu veux an venir pour TeamSpeak. Une activation directe sans modifier est bien commode
J'ai essayer tes scripts, et je maitrise effectivement déjà bien les fonctions de base, ainsi que les fonctions snapviews et Track-IR. Pour les autres, il me faudra un peu plus de temps.ivanwfr a écrit :Même si ça apparaît compliqué quand on entre dans le détail, je cherche toujours m'assurer que l'utilisation de ces fonctions puisse devenir reflex. Il faut bien s'attendre à un temps d'assimilation mais si ça ne vient pas assez rapidement, ça veut dire qu'il faut reconsidérer l'ensemble.
Je continue a piocher, pour plus tard tuner le script a ma convenance.
Je ne maîtrise pas ce language de programmation, Mais en m'y collant je devrait arriver a faire le peu de modif qui me conviendraient. En fait, il n'y a pas grand chose à changer tellement tu as approfondi la question.
#49
Il me vient une idée pour TeamSpeak ou d'autre fonctions prioritaires. Ça consisterait à libérer la couche MO des boutons qui servent le moins (APU, ligths, ...) en basculant leurs fonctions par défaut sur une autre couche. Elles seraient donc toujours disponibles moyennant l'utilisation d'un modifier tout en libérant son utilisation pour un usage plus fréquent.
#50
Il me vient une idée pour TeamSpeak ou d'autre fonctions prioritaires. Ça consisterait à libérer la couche MO des boutons qui servent le moins (APU, lights, ...) en basculant leurs fonctions par défaut sur une autre couche. Elles seraient donc toujours disponibles moyennant l'utilisation d'un modifier tout en libérant son utilisation pour un usage plus fréquent.