Page 1 sur 1

Simuler appui long/court sur Warthog

Publié : sam. sept. 24, 2011 1:37 pm
par falconeye
Bonjour,

Savez vous comment faire pour simuler un appui long ou un appui court sur un bouton du Warthog en utilisant le logiciel TARGET ?

Je n'ai pas réussi àtrouver mais ça pourrait être très utile pour démultiplier les combinaisons.

Merci.

Publié : sam. sept. 24, 2011 6:10 pm
par Wolf
Moi aussi je n'y arrive pas.

Ca serrait intéressant pour ne pas avoir a mémoriser 2 configs différentes / A10. Par exemple passer les MFD en SOI etc ...

Publié : sam. sept. 24, 2011 6:12 pm
par Mad Fly
ça ne marche pas avec le hold ?

Publié : sam. sept. 24, 2011 6:28 pm
par diditopgun
hold+touche directX sa marche très bien.

Publié : sam. sept. 24, 2011 6:55 pm
par undead
Une explication du hold peut être ? :sweatdrop
Merci pour ceux qui galèrent un peu comme moi !

Publié : sam. sept. 24, 2011 7:16 pm
par ivanwfr
Dans TARGETScriptEditor.exe pour un délai de 400 ms:
[INDENT]MapKey(&Joystick, H1D, CHAIN( DOWN+'p', D(400), 'p'));
[/INDENT]

Dans TARGETGUI.exe, ça donne ça:

Publié : sam. sept. 24, 2011 7:39 pm
par falconeye
ivanwfr a écrit :Dans TARGETScriptEditor.exe pour un délai de 400 ms:
[INDENT]MapKey(&Joystick, H1D, CHAIN( DOWN+'p', D(400), 'p'));
[/INDENT]

Dans TARGETGUI.exe, ça donne ça:
C'est ce que je pensais aussi mais avec cette conf, ça donne la touche p pressée et 400 ms après elle est déclenchée car le delay correspond au temps avant déclenchement.

Je crois que dans le script, c'est la fonction tempo qui est utilisée mais je ne sais pas comment ça se traduit dans le GUI.

Publié : sam. sept. 24, 2011 7:43 pm
par falconeye
PS pour s'en convaincre, il suffit de faire un test dans le event tester de Target.

@undead, je galère aussi ;-) Impossible de mettre la main sur un profil complet. Le seul profil que j'ai trouvé qui tenait la route est celui-ci :

http://www.benchmarksims.org/forum/show ... ht=warthog

MAis c'est uniqument un script et pas un GUI, donc difficile à modifier.

Publié : sam. sept. 24, 2011 8:45 pm
par ivanwfr
falconeye a écrit :C'est ce que je pensais aussi mais avec cette conf, ça donne la touche p pressée et 400 ms après elle est déclenchée car le delay correspond au temps avant déclenchement.

Je crois que dans le script, c'est la fonction tempo qui est utilisée mais je ne sais pas comment ça se traduit dans le GUI.
Là tu parles d'un Press avec Delai.

En combinant H1D = H1D_PRESS + H1D_HOLD provoque un appui immédiat et le relachement n'est fait que 400 ms plus tard même si on relache très vite et plus longtemps si on maintient.

Mais du coup, j'ai trouvé mieux: Le temps de maintient ne compte plus et on peut contrôler la durée pour un COURT et pour un LONG.
Il faut mettre un PRESS (sans délai) suivi d'un RELEASE retardé, long ou court:

MapKey(&Joystick, H1U, CHAIN( DOWN+'p', D(100), UP+'p'));
MapKey(&Joystick, H1D, CHAIN( DOWN+'p', D(500), UP+'p'));

Publié : dim. sept. 25, 2011 5:40 pm
par falconeye
Ca ne marche pas chez moi.

J'ai créé un "press" avec un délai de 100 ms et ensuite pour le même bouton un "release" de 500 ms. mais l'envent tester m'affiche :

Press p
Relase P 500 ms

Ca ne fait pas comme toi :

P
RElease 100
P
Release 500

As tu une idée ?

Merci d'avance.

PS : t'as bien tout fait via le GUI et pas via le script ?

Publié : lun. sept. 26, 2011 2:16 am
par ivanwfr
Oui, j'ai bien fait ça uniquement avec le GUI et je lui ai demandé de montrer le script qu'il génère pour verifier.

Et j'ai mappé 4 évènements, pas 2:
  1. H1U Press (delai=0)
  2. H1U Release (delai=100)
  3. H1D Press (delai=0)
  4. H1D Release( delai 500)
Il faut voir si tu as bien les mêmes 2 MapKey() qui en découlent :

  • 1+2 = MapKey(&Joystick, H1U, CHAIN( DOWN+'p', D(100), UP+'p'));
  • 3+4 = MapKey(&Joystick, H1D, CHAIN( DOWN+'p', D(500), UP+'p'));

Publié : mer. sept. 28, 2011 9:12 pm
par falconeye
ivanwfr a écrit :Oui, j'ai bien fait ça uniquement avec le GUI et je lui ai demandé de montrer le script qu'il génère pour verifier.

Et j'ai mappé 4 évènements, pas 2:
  1. H1U Press (delai=0)
  2. H1U Release (delai=100)
  3. H1D Press (delai=0)
  4. H1D Release( delai 500)
Il faut voir si tu as bien les mêmes 2 MapKey() qui en découlent :

  • 1+2 = MapKey(&Joystick, H1U, CHAIN( DOWN+'p', D(100), UP+'p'));
  • 3+4 = MapKey(&Joystick, H1D, CHAIN( DOWN+'p', D(500), UP+'p'));
Mais là t'es sur 2 touches différentesn H1U et H1D et pas des appuis longs et courts sur la même touche. :wacko:

Publié : lun. oct. 17, 2011 8:11 pm
par aigle59
Pour aider,

en script editor, c'est la fonction tempo je crois :

"TEMPO Command
Tempo is a sub-function of MapKey: it is based on real aviation ergonomics. TEMPO gives the pilot the possibility
of having 2 functions on a single button. A short press will generate the first output; a long press will generate the
other output. This is a feature used on modern fighters.
Syntax:
TEMPO(key1, key2, delay) delay is optional (500 milliseconds is a good value).
Example:
MapKey(&Joystick, TG1, TEMPO('x', 'y'));
//short press X, long press Y
MapKey(&Joystick, TG1, TEMPO('x', 'y', 1000)); //if pressed for more than 1 second
"

Dans la doc

Publié : lun. oct. 17, 2011 8:50 pm
par ivanwfr
Désolé, j'ai raté le message du 28/09.

Je n'avais pas percuté pour la programmation du long/court sur le même bouton...

Alors là, on dirait que le script s'impose, je crois qu'il ne faut pas compter sur le GUI pour l'exemple d'aigle59 mais ça n'est pas plus compliqué que ça... Il reste malgré tout à faire les premiers pas dans l'utilisation du langage. En tout cas ça vaut le coup!

Publié : lun. oct. 17, 2011 9:15 pm
par hellfrog
déjà dit qqpart il y a plusieurs mois dans le sujet Target programmation avancée script en salle joysticks

Publié : lun. oct. 17, 2011 11:47 pm
par aigle59
Merci Hellfrog pour l'info...

Je vais chercher, car j'ai encore des problèmes.

Mon ALTé et ALT& ne marche pas en target scripteditor par exemple.

Merci

Publié : mar. oct. 18, 2011 12:08 pm
par ivanwfr
N'hésite pas à poster ton code quand tu coinces...

Publié : mer. oct. 19, 2011 12:26 am
par hellfrog
repris / adapté des scripts irvanwfr :
c'est pour montrer la syntaxe, les actions ne sont que des exemples tirés de mes scripts...



int S1_I_Short =0; int S1_I_Long = 0; int S1_O=0;


main{

S1_I_Short = ActKey(PULSE+Weapon_selection_all_stations);
S1_I_Long = EXEC("S1_I_Long_WeaponSelect();");
S1_O = Gun_Select;

MapKeyIO(&Joystick, S1, TEMPO(S1_I_Short, S1_I_Long, 300), S1_O);


}