Logo name

Welcome Guest ( Log In | Register )

Discussion
> Logiciel TARGET

Sommaire

TARGET c'est quoi ?

T.A.R.G.E.T (Thrustmaster Advanced pRogramming Graphical EdiTor) est la nouvelle suite logicielle permettant de tester, configurer et programmer des périphériques de marque Thrustmaster.

Il fonctionne avec les périphériques suivants :

Créer un profil TARGET

Il existe deux types de profil TARGET :

  • les profils GUI, c'est à dire créés, modifiables et exécutables par l'interface graphique "TARGET GUI"
  • les profils scripts, c'est à dire modifiables et exécutables via le programme "TARGET Script Editor"

Lorsque l'on crée/modifie un profil GUI, TARGET crée/modifie automatiquement une copie au format script offrant des fonctionnalités identiques. Il est donc possible de créer via GUI la plupart des fonctions d'un profil, puis d'éditer sa copie uniquement pour y ajouter les fonctions avancées qui ne sont possibles qu'en script. On peut donc dire qu'il est possible de passer d'un profil GUI à un profil script. En revanche, l'inverse n'est pas possible.

Via TARGET GUI

(à venir - référez-vous à la doc Thrustmaster)

Via TARGET Editeur de script

(à venir - référez-vous à la doc Thrustmaster)

Astuces & Cas pratiques (Scripts)

Répéter une commande clavier

L'action de certaines commandes est déroulée par le simu tant que vous maintenez la commande enfoncée (ex: le trim). D'autres demandent un "appui" par "cran" (ex: la 'radar scan zone' pour les chasseurs russes dans FC2).

Répétition "simple"

En script, vous pouvez obtenir un comportement tel que : "Tant que j’appuie sur ce bouton de mon HOTAS, la commande clavier X est répétée toutes les Y millisecondes".

Exemple : Tant que je maintiens appuyé le China Hat Forward, la commande d'augmentation de la distance de scan radar RCTL + = est répétée toute les 180 millisecondes. Pour cela on utilise la fonction REXEC (ré-exécute) sur un ActKey. La seconde ligne de code fait la même chose pour China Hat Aft sur la commande de réduction de la distance de scan radar.

MapKey(&Throttle, CHF, REXEC(0, 180, "ActKey(PULSE+R_CTL+KEYON+USB[46]);"));

MapKey(&Throttle, CHB, REXEC(0, 180, "ActKey(PULSE+R_CTL+KEYON+USB[45]);"));

Note : PULSE+R_CTL+KEYON+USB[46] correspond à un appui sur RCTL + =

Attention à bien respecter l'ordre PULSE+(modifier)+KEYON+(touche ou commande USB) sinon ça marche pô. (KEYON est obligatoire manifestement lorsque l'on passe par ActKey qui est une fonction de plus bas niveau qu'un classique MapKey)

Si vous utilisez plusieurs EXEC ou REXEC dans votre script, veillez à bien séparer leurs identifiants (ici : le zéro, avant le 180) sinon leur exécution risque de se mélanger si vous actionnez les deux commandes en même temps. Bien sûr, cette précaution n'est pas nécessaire pour deux commandes opposées d'un même bouton (CHF et CHB par exemple) puisqu'il n'est alors pas possible de les actionner en même temps, ce qui est mon cas ici. En revanche, si je modifie ainsi le réglage en site du radar, j'utiliserai REXEC(1, ...

Répétition "complexe"

Pour aller un peu plus loin, le script ci-dessus n'était pas totalement satisfaisant car il y a de nombreux "crans" à passer de la 'radar scan zone' minimale (1km) à la maximale (150km). Pour aller "plus vite" il suffit de réduire l'intervalle entre chaque REXEC (ré-appui) de la commande, par exemple en passant de 180 à 100ms. Mais il devient alors difficile sinon impossible de ne passer qu'un cran à la fois lorsque l'on souhaite être précis.

La solution est donc de différencier les appuis courts (on souhaite passer un seul cran) des appuis longs (on souhaite faire défiler les crans rapidement). Comme différencier les appuis courts des appuis longs est un truc relativement standard dans les avioniques modernes (cf le A-10C), une fonction de script existe dans TARGET pour ce besoin : la fonction TEMPO. La syntaxe est organisée comme suit (source : manuel Thrustmaster) :

TEMPO(key1, key2, delay) //delay is optional (500 milliseconds is a good value)

Pour ma part, j'ai trouvé que 500ms était un peu long. En effet je ne cherche pas à distinguer deux commandes différentes mais à gérer de deux manières la même commande. J'ai donc indiqué un délai, que j'ai fixé à 200ms. J'utilise ma commande simple comme Key1, et ma commande répétée au sein de REXEC (avec un délai de répétition réduit à 100ms) comme Key2. Le code cité au paragraphe précédent devient ainsi :

MapKey(&Throttle, CHF, TEMPO(PULSE+R_CTL+KEYON+USB[46],REXEC(0, 100, "ActKey(PULSE+R_CTL+KEYON+USB[46]);"),200));

MapKey(&Throttle, CHB, TEMPO(PULSE+R_CTL+KEYON+USB[45],REXEC(0, 100, "ActKey(PULSE+R_CTL+KEYON+USB[45]);"),200));

Discussion
Dernière modification de cette page le 5 mai 2012 à 12:24.
  Cette page a été consultée 583 141 fois.  Contenu disponible sous Creative Commons attribution non commercial partage à l'identiqueAvertissements