15. Le concept du script
Voici l’interface de l’éditeur de scripts, ce que l’on peut dire au premier abord, c’est que le fond est moche ! Mais Thrustmaster a dit que ce serait skinable, et après une manip rapide… ça l’est.
Finalement pour vous montrer les principes du script plutôt que d’utiliser le script généré par la GUI, nous utiliserons un fichier fourni par Thrustmaster et crée par Guillaume « Dimebug » LELEVE, qui a le mérite de présenter les différents niveaux de programmation possibles dans l’éditeur des scripts.
Ce fichier s’appelle FC2A10A.tmc.
Je ne rentrerais pas dans le détail de la programmation sous T.A.R.G.E.T, la doc est là pour ça, mais juste mettre le doigt sur les points les plus importants.
Commençons par la première ligne : include « target.tmh »
Cette ligne est obligatoirement présente dans tous les scripts car c’est le target.tmh qui définit les fonctions utilisées dans les scripts.
Selon Thrustmaster le langage de programmation de T.A.R.G.E.T est si puissant que vous pouvez (à condition d’être des développeurs chevronnés) créer vos propres fonctions, voire même créer des interfaces avec vos simulateurs, et donc pouvoir régler la luminosité des MFD et de la throttle du Warthog depuis le cockpit de votre avion virtuel. Pour cela il faudra tout de même attendre que la gestion des lumières soit intégrée à T.A.R.G.E.T ce qui n’est pas encore le cas. On devrait par exemple pouvoir également, dans le futur pouvoir récupérer une valeur dans un simu et changer l’action d’un bouton en fonction de celle-ci.
La seconde ligne : include « FC2_A_10A_Macros.ttm »
Elle permet de coller au script le fichier de Macros ttm qui va permettre comme pour la gui d’aller plus vite dans la création de scripts étant donné que au lieu de mettre la ligne correspondant à la combinaison de touches que l’on souhaite utiliser on mettra le nom de la macro, comme l’a fait Dimebug dans la ligne suivante, avec sur la ligne d’après la ligne de définition de la macro.
MapKey(&Joystick, S2, Weapon_Release); //Weapon release
define Weapon_Release R_ALT+USB[0x2C] //Weapon Release
Autre avantage de l’utilisation des macros dans un script c’est l’échange des fichiers il suffira dans ce cas de donner le fichier TMC et que l’utilisateur du script mette son fichier macro personnel à la place de l’original. Et de façon encore plus facile utiliser « Sim 2 T.A.R.G.E.T » qui génèrera le fichier de macro avec les mêmes noms de macro pour chaque utilisateur mais avec le keystroke personnel de chacun.
D’ailleurs l’éditeur de scripts à ce niveau-là est très pratique car on peut en un seul clic basculer du script.
Au fichier macros et faire un Copier/Coller du nom de la macro que l’on veut utiliser dans le script.
Je vous parlais tantôt de la possibilité de créer ses propres fonctions en voici deux exemples :
Le premier:
curve1 = LIST(0,32, 45,50, 55,50, 100,68); //medium sensitivity curve for sensor control
MapKey(&Throttle, CSU, CHAIN(Display_Zoom_Out, EXEC(« SetCustomCurve(&Throttle, SCX, curve1); », »SetCustomCurve(&Throttle, SCY, curve1); »)));
Bon ça semble un peu barbare (et ça l’est…) mais ici on change la courbe d’un axe (en l’occurrence le slew) en fonction de l’appui sur une touche. Et tous les axes et boutons peuvent subir les mêmes changements de façon dynamique. Une application possible de cette possibilité la réduction de la sensibilité du stick lorsque l’on a ouvert la trappe de ravitaillement de l’avion…
Le second :
Function_Autopilot = SEQ(EXEC(« apkey(); »), PULSE+L_ALT+’9′);
MapKey(&Throttle, APENG, Function_Autopilot);
int apkey()
{
if(Throttle[APPAT]) ActKey(KEYON+PULSE+Autopilot_Route_following);
else if(Throttle[APALT] & Throttle[RDRDIS]) ActKey(KEYON+PULSE+Autopilot_Barometric_Altitude_Hold);
else if (Throttle[APALT] & Throttle[RDRNRM]) ActKey(KEYON+PULSE+Autopilot_Radar_Altitude_Hold);
else ActKey(KEYON+PULSE+Autopilot_Altitude_And_Roll_Hold); // APAH
}
Cet exemple ressemble beaucoup plus a de la programmation pure et dure ! Pour ceux qui connaissent le langage de programmation C ça sera assez clair! Pas forcément pour les autres…
Dans cet exemple en fait on lance le pilote automatique de Lockcon FC2 en fonction de la position du bouton autopilot de la throttle, on comble donc par la programmation du Warthog les lacunes du simulateur.
Bien sûr comme dans foxy T.A.R.G.E.T prend en compte toutes les fonctions d’impulsion, d’enchainement d’appuis de touches et de drapeaux logiques.
Finalement comme pour la GUI, l’éditeur de scripts T.A.R.G.E.T peut être utilisé à plusieurs niveaux, du mappage de touches tout simple à une interface de programmation avec interfaçage Joy / Simu complet en fonction de son niveau d’expertise.
Conclusions sur T.A.R.G.E.T
Le programme souffre de problèmes de compatibilité avec certains systèmes mais c’est encore une Release Candidate 2 donc à suivre… Les développeurs de Thrustmaster ont fait des grands efforts pour fournir une interface qui puisse répondre aux besoins de tous les utilisateurs qu’ils soient totalement néophytes ou ingénieurs de la Nasa…
Point positif et qui démontre la bonne volonté de Thrustmaster c’est la mise en place d’un site de remontée de bugs de T.A.R.G.E.T.
Je n’ai pas pris le temps de l’utiliser donc je ne saurais dire s’il est vraiment utile ou juste là pour faire joli.
Lors de la sortie de la version finale nous verrons bien le niveau de T.A.R.G.E.T mais en tout cas pour le moment ça promet d’être quelque chose de jamais vu même chez la concurrence. Espérons que la communauté de développeurs nous pondra des scripts d’interfaçage avec les simus pour voir si ce que Thrustmaster a promis est réalisable
Astuces : la version RC2 de T.A.R.G.E.T. permet d’adresser un clavier possédant 24 touches de fonction (F1 > F24).
Un clavier PC standard n’en comporte que 12..
Cela nous donne donc 12 touches que nous pouvons attribuer a un bouton en étant sur qu’ aucun simulateur n’ utilise..
Idéal donc pour Teamspeak ou des fonctions du track IR 😉
Laisser un commentaire