Thrustmaster TARGET "Script Editor" : besoin d'aide

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

Topic author
Mamy la Puce
Nouvelle Recrue
Nouvelle Recrue
Messages : 5
Inscription : 17 avril 2023

Thrustmaster TARGET "Script Editor" : besoin d'aide

#1

Message par Mamy la Puce »

Bonjour à tous !!

Encore un sujet autour de Thrustmaster et de son logiciel TARGET je sais ^^ mais le Script Editor cette fois-ci. Je me suis lancé dessus il y a peu et j'apprécie énormément les possibilités de configuration déjà du soft dit 'graphique' (GUI). J'ai lu le manuel en entier, très bien fait, on y parle à la fin du Script Editor (SE) et j'y ai donc forcément fourré mon nez dedans. Il y a également un manuel, en anglais, pour apprendre et comprendre le langage de script du soft qui est codé en C si je me trompe pas.

Mon sujet porte sur le jeu X4 Foundations et non sur une simu. d'aviation, mais les principes de paramétrages restent les mêmes, voilà pourquoi je suis venu sur ce forum car sur le forum officiel d'Egosoft je ne trouve pas spécialement de réponses à ma problématique, bon nombre de joueurs ne s’embêtent pas autant que moi faut croire ^^

Je fais donc appel à celles et ceux qui auraient des connaissances dans le langage C et/ou qui auraient déjà utilisé le Script Editor de Thrustmaster. Je suis en train de créer un profil pour le T16000M + le Throttle TWCS, j'ai le Joystick et je compte me procurer le TWCS bientôt, cela n’empêche pas de créer un profil quand même. Voilà ce que je souhaiterais :


CE QUE J'AI COMPRIS ET FAIS :
  • J'ai donc créé un profil dans le GUI, un profil de type 'Avancé' pour pouvoir paramétrer les différentes couches permettant d'associer jusqu'à 6 commandes différentes par touche (I/O et U/M/D pour ceux qui connaissent).
  • Pour le moment, seul le T16000M est terminé dans le GUI, le TWCS je vais m'y atteler mais pas avant d'avoir les infos que je cherche.
  • J'ai exporté le script de mon profil, celui proposé dans le GUI, de manière à l'utiliser dans le SE, en effet, comme le dit le manuel cette méthode est bien pratique pour apprendre à l'utiliser et à le comprendre graduellement.
  • Pour factoriser le code, j'ai créé un fichier .tmc qui est donc le main file du profil, son contenu n'est autre que le script généré par le GUI et que je vais modifier pour l'améliorer,
  • Un fichier .ttm pour y regrouper toutes les macros du profil,
  • Un fichier .tmh pour regrouper les différentes fonctions qu'il me faut générer.

CE QUE JE VOUDRAIS FAIRE OU COMPRENDRE
  • Je voudrais plus globalement trouver un moyen simple de tester mes fonctions, de vérifier mes variables lors du lancement du script, j'ai essayé avec printf() mais sans succès, mes connaissances en codages et surtout en C sont insuffisantes... pour le moment je passe par le Device Analyzer proposé par le SE, c'est la seule solution qui me dépanne pour l'instant mais s'il y a moyen de faire plus simple je prends !!
  • Je souhaiterais savoir aussi comment concaténer des chaînes de caractères en C !! Il est clair qu'on est pas sur la simplicité d'un PHP avec un simple '.' ou JS avec un '+' non ça marche pas comme ça en C ^^ J'ai farfouillé des choses sur le net mais alors je suis encore bien perdu !! On utilise souvent strcpy() ou strcat() comme méthodes mais j'ai pas encore saisi le concept... pourquoi faire simple quand on peut faire compliqué ^^

CE QUE J'AIMERAIS FAIRE BIENTÔT
  • Une fois que j'aurais compris et maitrisé au moins les 2 choses citées plus haut, mon but serait ensuite de parvenir à faire lire le fichier 'inputmap.xml' par le script, c'est le fichier de X4 dans : Mes Documents/Egosoft/X4, regroupant les paramètres de contrôles actuels en jeu.
  • Via des fonctions qu'il me faudra construire bien sûr, de cette façon le script ira chercher lui-même les paramètres de contrôle pour chaque joueur du coup plus besoin de venir faire de modif manuelles dans le profil en cas de changement et cela s'adaptera à tout personne souhaitant en profiter ;-)

Les langages bas niveau sont effectivement complexes, C et C++ en font partie, bien que considérés autant bas niveau que haut niveau, ils sont bien loin de ce que je connais en tout cas... :crying:
Avatar de l’utilisateur

cerealk
Jeune Pilote
Jeune Pilote
Messages : 1265
Inscription : 07 mai 2010

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

#2

Message par cerealk »

salut, alors la première partie de création du script est correct, ensuite pour tester les macros moi j'utilises l'EventTester , tu peux créer un raccourci dessus directement dans le répertoire Target , par contre pour le reste je n'ai pas les compétences en C pour t'aiguiller, mais je te souhaites bon courage pour ton projet :yes:
I5 13600KF , 32Go DDR5 6400 CL32 , MSI Z790 Tomahawk, MSI 4070TI, W11 pro ,track IR 4 , Hotas Warthog, MFDx2, Clavier k95 RGB
Saitek Rudders, Écran: ACER XB281HK, Philips 244E

Mon Panel Desktop
Avatar de l’utilisateur

BeR1
Apprenti-Mécano
Apprenti-Mécano
Messages : 351
Inscription : 08 octobre 2015

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

#3

Message par BeR1 »

Salut
Pour afficher la valeur d'une variable dans la console voila un exemple pour du int (très proche du C):
printf("Avion:%d ",AVION_COUR);
rajoute un \xa pour un retour ligne, exemple plus complet :
printf("Courbe:%d(1-lineaire/5-platcentre) Saturation:%d (0 total -4 reduit)\xa",BerJoyCourbe,BerJoySaturation);

Pour les chaines de caractères, je t'avoue ne pas avoir eu le besoin donc pas d'exemple dans mon code.
Mais vas jeter un coup d'oeil ici (et dans tout le sujet), je suis sur que tu vas y trouver tes réponses : https://forum.dcs.world/topic/60448-tar ... ng/page/6/



A+
i15-20900PQ NTM-2080TI Z990 256To RAMes
Avatar de l’utilisateur

Topic author
Mamy la Puce
Nouvelle Recrue
Nouvelle Recrue
Messages : 5
Inscription : 17 avril 2023

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

#4

Message par Mamy la Puce »

Merci cerealk, oui j'utilise aussi l'Event Tester avec le Device Analyzer, finalement ça convient bien et pour le moment comme ça me permet de savoir si mes macros sont bien prises en charge ça va, je m'en accommode. Le plus utile et urgent réside dans la suite : la compréhension du codage pour savoir faire des fonctions perso et les faire fonctionner bien sûr dans le SE.
Salut
Pour afficher la valeur d'une variable dans la console voila un exemple pour du int (très proche du C):
printf("Avion:%d ",AVION_COUR);
rajoute un \xa pour un retour ligne, exemple plus complet :
printf("Courbe:%d(1-lineaire/5-platcentre) Saturation:%d (0 total -4 reduit)\xa",BerJoyCourbe,BerJoySaturation);

Pour les chaines de caractères, je t'avoue ne pas avoir eu le besoin donc pas d'exemple dans mon code.
Je vais plutôt illustrer avec exemples, ça sera plus simple car j'ai encore du mal à déchiffrer ces lignes dans la fonction printf(). Pour la touche TS3 du T16000M par exemple, lorsque le joueur est en mode FPS, donc à pieds, en-dehors du vaisseau dans les stations, j'ai paramétré la touche TS3 du Joystick avec une macro séquentielle pour (dés)activer l'accroupissement du joueur en mode FPS :

1er appui : active la lettre 'c' du clavier et la maintient pour garder le joueur accroupi
2ème appui : relâche la lettre 'c' pour libérer le joueur en position debout

Le script s'avère être :

SEQ(DOWN+'c', UP+'c')

J'ai créé ma macro dans le .ttm comme ceci : (j'ai rajouté des points ci-dessous juste pour la lisibilité)

define Toggle_Crouch ............... SEQ(DOWN+'c', UP+'c')

Et voilà le résultat dans le .tmc (main) :

Image

Là dans l'image je parle bien de synthétisation, il est clair que le code entouré en orange ne correspond pas à celui du dessus entouré en jaune, je voudrais obtenir le même type de simplification et c'est surtout ça que les indications dans l'image veulent dire.

Et ça marche très bien, aucun souci ^^ En gros il me faut continuer dans ce sens pour toutes les macros que j'ai créé, mais je tiens à aller un peu plus loin. Maintenant dans mon fichier header .tmh sensé regrouper tout ce qui est déclarations de fonctions et variables, si j'ajoute :

char crouch = 'c';

Et que dans le .ttm je modifie ma macro comme ceci :

define Toggle_Crouch ............... SEQ(DOWN+crouch, UP+crouch)

Et bien ça aussi ça marche très bien ^^ Et maintenant je souhaite pousser encore plus loin, voilà mon idée dans le header (.tmh) :

Image

Et bien sûr il me faut modifier la macro dans le .ttm :

define Toggle_Crouch ............... func_crouch

Et boum, là ça bloque... l'idée est de construire la macro via une fonction et de renvoyer la chaîne de caractère construite à stocker dans une variable (donc de type char si je me trompe pas), ensuite il suffit de la lier à la macro 'Toggle_Crouch'.

Pourquoi je voudrais faire ça ? C'est simple, bon nombre de macros que j'ai paramétré sont constituées d'une association de touches type SHIFT + lettre ou CTRL + lettre, il est bien plus simple de passer par une fonction plutôt que devoir écrire pour chaque macro toute la syntaxe...

Plus tard, si je trouve le moyen de lire le fichier 'inputmap.xml' des contrôles du jeu, je tenterais de remplacer les lettres écrites pour chaque ligne comme par exemple :
char crouch = 'c'; par une ou des fonctions qui s'occuperont de décortiquer/déchiffrer le document pour aller chercher le bon paramètre... mais j'en suis encore loin tant que j'arrive même pas à faire fonctionner et comprendre mes propres fonctions dans ce soft et ce langage, et pourtant celles-ci sont assez simples au final ^^
Avatar de l’utilisateur

lefuneste
Pilote Philanthrope
Pilote Philanthrope
Messages : 2149
Inscription : 26 février 2005

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

#5

Message par lefuneste »

Je me demande si chatGPT te ferait un script qui marche...
Avatar de l’utilisateur

Topic author
Mamy la Puce
Nouvelle Recrue
Nouvelle Recrue
Messages : 5
Inscription : 17 avril 2023

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

#6

Message par Mamy la Puce »

Ah punaise j'y avais pas pensé à lui... mais en même temps ça me sert à apprendre, j'ai eu ma formation Dev Web y'a pas longtemps, alors le C n'est pas du tout un langage que j'ai abordé mais j'ai rien contre le fait d'apprendre, bien au contraire même ^^
Répondre

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