Forum Flightgear France

Une communauté prend son envol

Vous n'êtes pas identifié(e).

Annonce

Futur nouvel inscrit, tu dois au préalable lire l'intégralité des 10 articles des règles, s'il te plaît. Tout nouveau compte qui ne respecte pas les règles sera supprimé par l'administration.

#1 9/11/2023 13:43:25

aco
Membre
Inscription : 23/12/2010
Messages : 178

-RESOLU-JS Thrustmaster Airbus Edition

Bonjour,
J'ai donc reçu mon nouveau JS big_smile
A ma grande surprise presque tout fonctionne parfaitement et c'est un vrai changement par rapport à mon vieux Saitek, souplesse, progressivité, sensation de pilotage.
Bien sûr j'ai quand même quelques petites interrogations wink
1 - Comme l'avait prévu Dany 93 la reverse ne fonctionne pas. Je peux l'armer en programmant un bouton et l'utiliser classiquement en augmentant la puissance, mais la zone arrière de la manette de puissance est inactive. Ce n'est pas un problème et je préfère rester comme ça.
2 - La manette de puissance paraît très fragile, on verra à l'usage mais je pense acheter le bloc séparé pour plus de précision et de commodité.
3 - Le chapeau chinois ne fonctionne pas en mode "vues", ou je ne sais pas l'associer sad Je souhaiterais pouvoir afficher la vue de l'avion en vol, voici mon fichier JS tel que "fabriqué" par FG :

<?xml version="1.0"?>

<PropertyList>
  <name type="string">Thrustmaster T.A320 Pilot</name>
  <axis>
    <desc type="string">Aileron</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/aileron</property>
      <factor type="double">1</factor>
      <offset type="double">0</offset>
      <power type="double">1</power>
    </binding>
  </axis>
  <axis n="1">
    <desc type="string">Elevator</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/elevator</property>
      <factor type="double">-1</factor>
      <offset type="double">0</offset>
      <power type="double">1</power>
    </binding>
  </axis>
  <axis n="2">
    <desc type="string">Rudder</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/rudder</property>
      <factor type="double">1</factor>
      <offset type="double">0</offset>
      <power type="double">1</power>
    </binding>
  </axis>
  <axis n="3">
    <desc type="string">Throttle All Engines</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/engines/throttle-all</property>
      <factor type="double">1</factor>
      <offset type="double">0</offset>
      <power type="double">1</power>
    </binding>
  </axis>
  <button>
    <desc type="string">Brakes</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.applyBrakes(1);</script>
    </binding>
    <mod-up>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.applyBrakes(0);</script>
      </binding>
    </mod-up>
  </button>
  <button n="2">
    <desc type="string">Parking brakes</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.parkingBrakeToggle(0);</script>
    </binding>
    <mod-up>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.parkingBrakeToggle(1);</script>
      </binding>
    </mod-up>
  </button>
  <button n="3">
    <desc type="string">Reverser Toggle</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.reverserTogglePosition();</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
  <button n="4">
    <desc type="string">Flaps Up</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.flapsDown(-1);</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
  <button n="9">
    <desc type="string">Flaps Down</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.flapsDown(1);</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
  <button n="10">
    <desc type="string">Gear Up</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.gearDown(-1);</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
  <button n="12">
    <desc type="string">Elevator Trim Down</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.elevatorTrim(1);</script>
    </binding>
    <repeatable type="double">1</repeatable>
  </button>
  <button n="13">
    <desc type="string">Elevator Trim Up</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.elevatorTrim(-1);</script>
    </binding>
    <repeatable type="double">1</repeatable>
  </button>
  <button n="15">
    <desc type="string">Gear Down</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.gearDown(1);</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
</PropertyList>

Bonne journée
Jean-Marie

Dernière modification par aco (11/11/2023 23:18:47)


Linux Ubuntu 23-10 FG 2020-3.18 -Thrustmaster TA320- NVIDIA GeForce GTX750i (pilote 346.59) - CPU Intel Core I5 4430 - Carte mère Gigabyte Intel H97 express - 8Go RAM - 240Go SSD

Hors ligne

#2 9/11/2023 16:50:45

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

Bonjour aco,

Je n'ai pas retrouvé rapidement mais en tombant sur une notice j’avais vu de que l'activation du "reverse" pouvait se faire par déconnexion, puis reconnexion du JS en appuyant simultanément sur deux boutons (de mémoire).
Vois, tu devrais avoir une notice.

Après, si je comprends bien, cela devrait faire comme un bouton (virtuel). Décelable par jstest-gtk, Joystick configuration ou autre.

J'ai trouvé
https://ts.thrustmaster.com/download/ac … _modes.pdf

3) Changement du mode de l’axe
Maintenez appuyé les boutons 6 et 12, puis branchez le TCA Sidestick Airbus Edition sur votre ordinateur pour activer le mode 2

Ensuite, voir ce message. Au moins pour vérifier que cette forme fonctionne.
Ou en essayant le code de ton bouton "3" ?
(A vérifier, j'ai un doute avec "toggle")
Je crois qu'il faut un "property-assign" avec "mod-up". J'essaie mais ça fait toujours "toggle"... Je m'étais gouré de fichier modifié !!!

Pour le "hat", les numéros d'axes Linux devraient être 4 et 5. Vérifiable aussi avec jstest-gtk ou Joystick configuration.

Dernière modification par dany93 (9/11/2023 20:06:57)


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#3 9/11/2023 19:46:49

aco
Membre
Inscription : 23/12/2010
Messages : 178

Re : -RESOLU-JS Thrustmaster Airbus Edition

Merci Dany, voici le résultat :
Position 1
Indication JS de 1(tout réduit) à -1(plein gaz)
sur l'avion poussée constamment croissante vers l'avant.Si j'appuie sur le bouton que j'ai programmé "reverse" poussée constamment croissante vers l'arrière.
Cette solution me convient assez.
Position 2
JS non reconnu

Pour le Hat ce sont bien les boutons 4 et 5 mais je ne sais pas leur assigner la fonction "vue en vol". Seules possibilités  : déplacements horizontal et vertical en utilisant FG.


Linux Ubuntu 23-10 FG 2020-3.18 -Thrustmaster TA320- NVIDIA GeForce GTX750i (pilote 346.59) - CPU Intel Core I5 4430 - Carte mère Gigabyte Intel H97 express - 8Go RAM - 240Go SSD

Hors ligne

#4 9/11/2023 20:01:43

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

(je n'avais pas vu ton message précédent)
Si JS non reconnu en position 2, c'est foutu. Et ce que je te propose ci-dessous aussi.

Reverse :
Essaie ça. (pour moi sur un bouton "ordinaire", active le reverse quand "pressé",  puis remet en normal quand "relâché" cad en <mod-up>)

 <button n="16">
    <desc>Reversers</desc>
    <binding>
        <desc>Reversers true</desc>
        <command>property-assign</command>
        <property>controls/engines/engine[0]/reverser</property>
        <value>1</value>
    </binding>
    <binding>
        <command>property-assign</command>
        <property>controls/engines/engine[1]/reverser</property>
        <value>1</value>
    </binding>
    <mod-up>
        <desc>Reversers false</desc>
        <binding>
            <command>property-assign</command>
            <property>controls/engines/engine[0]/reverser</property>
            <value>0</value>
        </binding>
        <binding>
            <command>property-assign</command>
            <property>controls/engines/engine[1]/reverser</property>
            <value>0</value>
        </binding>
    </mod-up>
 </button>

Peut-être perfectible dans la forme mais ça devrait fonctionner (si ton bouton 16 est bien activé par reverse)

Dernière modification par dany93 (9/11/2023 20:04:02)


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#5 9/11/2023 20:15:23

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

Position 2
JS non reconnu

Donc, le bouton "virtuel" du throttle n'est pas reconnu comme un bouton ! On est contraint d’utiliser un bouton ordinaire. C'est bête, tu as choisi ce JS pour ça... hmm

Je suppose que tu as recopié le code de ce message. [EDIT] : Non. [/EDIT]
On peut aussi coder ça pour que l'appui maintenu sur le bouton fasse "Reverse" et que son simple relâchement rétablisse la poussée normale. C'est mon code plus haut

Si tu voulais quelque chose de plus élaboré (plus sûr), lis ce message de Clml76. Si tu préfères, cela peut s'appliquer à la place du mien. En adaptant le code.

En revanche, le code en nasal de FG Joystick config est probablement plus polyvalent (YASim, JSBSim, nombre de moteurs).

Dernière modification par dany93 (9/11/2023 20:49:39)


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#6 9/11/2023 20:32:10

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

aco a écrit :

Pour le Hat ce sont bien les boutons 4 et 5 mais je ne sais pas leur assigner la fonction "vue en vol"

Je suppose que tu veux dire 'Helicopter view" du simulateur ?

Ce sont les touches clavier "V" (v minuscule) pour vue extérieure et "Ctrl-V" pour revenir.
En s'inspirant du fichier flightgear/fgdata/keyboard.xml, cela me semble possible.

Mais je trouve que c'est une utilisation restrictive du Hat. C'est un "axe" double qui peut prendre les valeurs 0 et +/-1 sur chaque axe. Personnellement, je l'ai codé pour elevator-trim et aileron-trim, c'est mieux utilisé à mon avis.

Je mettrais plutôt ces changements de vue sur deux boutons plus ordinaires. Mais c'est toi qui décide. Et on essaie.


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#7 10/11/2023 0:59:09

aco
Membre
Inscription : 23/12/2010
Messages : 178

Re : -RESOLU-JS Thrustmaster Airbus Edition

Bonsoir Dany,
Pour la reverse il faut que je fasse des essais plus poussés...
La touche ""helicopter view" est suffisante en effet, un codage JS n'est pas nécesaire.
Le hat est effectivement mieux utilisé pour la compensation. C'était ma première idée mais j'avais confondu "elevator/aileron position" avec "elevator/aileron inc.". Et cela ne me donnait pas la progressivité du réglage! Je suis donc revenu à un codage identique au tien.
Merci pour tes conseils avisés, je reviens vers toi pour la reverse après réflexion... wink
Cordialement,
Jean-Marie


Linux Ubuntu 23-10 FG 2020-3.18 -Thrustmaster TA320- NVIDIA GeForce GTX750i (pilote 346.59) - CPU Intel Core I5 4430 - Carte mère Gigabyte Intel H97 express - 8Go RAM - 240Go SSD

Hors ligne

#8 10/11/2023 2:41:05

zakharov
Membre historique du forum.
Inscription : 11/09/2005
Messages : 962

Re : -RESOLU-JS Thrustmaster Airbus Edition

salut aco et dany93,

aco a écrit :

Position 2
JS non reconnu

est-ce que tu as regardé si par hasard le nom du JS ne changeait pas ? FG reconnaît la conf à appliquée en fonction du nom renvoyée par le pilote (il peut y avoir plusieurs nom pour un même modèle de joystick).

Pour le connaître exactement (espace, majuscules, minuscules) je crois me souvenir que FG te le donne dans un menu de Fichier > Config du joystick, tu peux scanner et retrouver ton modèle. js_demo fourni par FG aide aussi en ligne de commande.

Pour faire appliquer la config aux petits oignons à ce nom de joystick particulier tu ajoutes la balise

<name>ici tu mets le vrai nom du joystick  position 2 avec les espaces (même en début ou fin de nom !) et avec les majuscules et minuscules</name>

dans le fichier de conf idoine

@+
bons vols
zakh


le zkv1000
Debian Bookworm sur i7-9750H, 16G, NV GeForce GTX 1660 Ti MaxQ 6Go
FG next compilé à la mano
Joystick TM T. Stick X avec fichier de conf perso

Hors ligne

#9 10/11/2023 17:31:24

aco
Membre
Inscription : 23/12/2010
Messages : 178

Re : -RESOLU-JS Thrustmaster Airbus Edition

Salut Zakh et dany93,
Alors, il y a un seul nom de JS : "Thrustmaster-TA320-Pilot.xml". Il est reconnu et fonctionne correctement avec une manette de puissance qui va de 0 à 100% pour une indication de 1 à -1.
Si j'utilise le bouton que j'ai programmé "reverse" le fonctionnement est identique mais orienté vers l'arrière.
J'ai essayé d'introduire dans le fichier les lignes de code du bouton virtuel (N°17 pour moi) telles que les a écrites Dany.
Le JS est maintenant reconnu en position 1 et en position 2 mais rien ne change dans le fonctionnement de la manette de puissance.
La notice d'utilisation dit que les pilotes ne sont fournis que pour windows 11 et 12
Voilà les dernières nouvelles!
@+
Bonne journée
Jean-Marie


Linux Ubuntu 23-10 FG 2020-3.18 -Thrustmaster TA320- NVIDIA GeForce GTX750i (pilote 346.59) - CPU Intel Core I5 4430 - Carte mère Gigabyte Intel H97 express - 8Go RAM - 240Go SSD

Hors ligne

#10 10/11/2023 18:48:46

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

Bonjour aco, bonjour zakh.

J'en viens à me (re-) demander comment fonctionne le reverse de ton JS.
Normalement, on met la manette en "reverse" et on pousse plus ou moins les gaz.
Avec ton JS, on met les gaz sous 20%, on est (censé être...) en reverse, mais si on pousse les gaz, on sort de la position reverse !!! ==>??? effet "toggle" jusqu'au retour à moins de 20% pour retrouver la poussée normale ?

aco a écrit :

bouton virtuel (N°17 pour moi)

Tes boutons sont donc numérotés de 1 à 17 ? J'aurais cru 0 à 16... (0 à 15 pour les boutons "physiques", 16 pour le virtuel reverse)

Il faut cerner le fonctionnement de ce "bouton" reverse.
Le plus simple : gstest-gtk.
Que se passe t-il quand tu réduis les gaz en position reverse ? (moins de 20%). Un bouton 17 ou 16 s'allume t-il ?
Si rien ne s'allume, inutile de chercher plus loin.

Si un bouton s'allume, tu as le numéro vu de ton OS et de FG.
Je t'ai envoyé deux formes de code : celui-ci et celui-ci. Pas sûr qu'aucun des deux soit satisfaisant fonctionnellement, mais il serait déjà encourageant de constater qu'ils font quelque chose.

Dans le simulateur, le plus simple est d'observer les témoins "ARM" (et autres) du tableau de bord.
Tu dois les voir changer à coup sûr au moins en pressant la touche "Suppr" du clavier.
La question est de savoir si le JS donne un effet...

Aussi, dans "Joystick Configuration", voir si un  "Input" quelconque se coche avec les gaz à moins de 20%.

Ces deux tests sont en principe suffisants (les suivants sont moins simples).

Plus sophistiqué : (mais peu d'espoir si les témoins ne s'allument pas)
Tester dans le simulateur en observant les "Internal properties". Touche "/" pour les ouvrir.
Observer (au moins un des deux)
controls/engines/engine/reverser = 'false" ou 'true'
controls/engines/engine/reverser = 'false" ou 'true'

Aussi :
devices/status/joysticks/joystick (je suppose que tu n'en vois qu'un)
Vérifie en manipulant un axe que tu regardes le bon JS.
Descends jusqu'à voir les "buttons".
Met les gaz à moins de 20% :  Le 16 ou 17 passent-ils à button[N] = 'true' ?

Tu peux aussi faire un test rapide en affectant un des codes que je t'ai envoyés à un bouton physique. Là, ça devrait fonctionner (testé chez moi).


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#11 10/11/2023 19:13:07

zakharov
Membre historique du forum.
Inscription : 11/09/2005
Messages : 962

Re : -RESOLU-JS Thrustmaster Airbus Edition

salut,

aco a écrit :

il y a un seul nom de JS : "Thrustmaster-TA320-Pilot.xml"

désolé je reviens sur cette histoire d'identification de joystick, je parle pas du nom de fichier, mais bien du nom renvoyé par le matos via le pilote. Exemple chez moi avec le joystick principal et une manette venant de la box de mon FAI:

$  ./scripts/flightgear/install/flightgear/bin/js_demo
Joystick test program.
~~~~~~~~~~~~~~~~~~~~~~
Joystick 0: "Thrustmaster T.Flight Stick X"
Joystick 1: "DragonRise Inc.   Generic   USB  Joystick  "
Joystick 2 not detected
...

note-bien les espace sur-numéraires (ou inattendus) entre «Inc. Generic USB Joystick», et même à la fin («Joystick  "»)

Pour qu'un fichier de conf (en XML) le prenne il faut lui ajouter la balise

<name type="string">DragonRise Inc.   Generic   USB  Joystick  </name>

et là, paf!, la petite manette est reconnue. Tu peux mettre plusieurs balises <name>...</name> dans un même fichier de conf comme ça c'est la même conf utilisée pour différents noms, et tu peux même tester la valeur du "<name>"et donc ajouter, ou retirer des capacités en fonction du mode («si le nom est "mode2", alors la poignée des gaz fait ci ou ça, sinon ça fait ce truc ou un autre»).

Typiquement dans ton cas du reverse où il faut faire une manip: le nom doit changer, genre ça ajoute un truc du style "mode 2" ou que sais-je. Résultat: FG ne retrouve pas de fichier de conf qui correspond. Si tu veux garder le même fichier de conf pour les deux modes, il te suffit d'ajouter le nom complet exact (j'insiste lourdement sur le exact) dans ton fichier Thrustmaster-TA320-Pilot.xml, en-dessous de la balise qui doit fortement ressembler à

<name>Thrustmaster TA320 Pilot</name>

@+
bons vols
zakh

Dernière modification par zakharov (10/11/2023 19:14:08)


le zkv1000
Debian Bookworm sur i7-9750H, 16G, NV GeForce GTX 1660 Ti MaxQ 6Go
FG next compilé à la mano
Joystick TM T. Stick X avec fichier de conf perso

Hors ligne

#12 10/11/2023 20:42:32

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

(suite de notre entretien)

Mon bouton "détente", qui fait "freins" au sol, ou "zoom plongeant" sur les instruments quand maintenu pressé en vol :

 <button n="0">
    <desc>Brakes or dashboard zoom</desc>
    <binding>
        <command>nasal</command>
        <script>
            if (getprop("/gear/gear/wow") or getprop("/gear/gear[1]/wow") or getprop("/gear/gear[2]/wow")) {controls.applyBrakes(1);} 
            else {setprop("/sim/current-view/view-number",0);
                view.resetViewPos();
                view.resetViewDir();
                setprop("/sim/current-view/field-of-view", 50.35); <!-- 32 = zoom in a little, default is 50 -->
                setprop("/sim/current-view/heading-offset-deg", 0); <!-- 344 = looking 16 degrees to the right -->
                setprop("/sim/current-view/pitch-offset-deg", -20); <!-- -22 = looking 22 degrees downward -->
                }
        </script>
    </binding>
    <mod-up> <!-- Key release code follows -->
        <binding>
            <command>nasal</command>
            <script>
                if (getprop("/gear/gear/wow") or getprop("/gear/gear[1]/wow") or getprop("/gear/gear[2]/wow")) {controls.applyBrakes(0);}
                else {setprop("/sim/current-view/view-number",0);
                    view.resetViewDir();
                    view.resetFOV();
                    view.resetViewPos();
                    }
            </script>
        </binding>
    </mod-up>
</button>

Dernière modification par dany93 (11/11/2023 11:53:05)


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#13 11/11/2023 12:49:50

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

Bonjour aco,

Mon état de compréhension actuel :
- Le "reverse" par la manette gaz est sur le bouton 16. Au sens 0 à 16.  (pas 17)
- Fonctionnement : bascule durable entre "reverse" et "normal" à chaque sollicitation (activation du "bouton" virtuel 16 par la manette tout en bas), comme par la touche "Suppr" du clavier. Une fois basculé en reverse, on peut pousser la manette jusqu'en en haut pour contrôler les gaz avec poussée inversée. L'avion étant presque arrêté, on ramène la manette tout en bas pour rebasculer en "normal".

L'insuffisance de description de Thrustmaster est trompeuse. Ils parlent bien de "bouton" virtuel mais ils ne disent jamais comment la poussée inversée peut être montée en puissance. Et ce fonctionnement impose un code ou un autre.

L'intérêt est donc limité par rapport à ce qu'on aurait pu penser en première lecture.
- Quand même, l'avantage est de contrôler le reverse en agissant sur un seul élément : la manette, qu'on tient déjà, logiquement en position basse.  (mais pas trop basse, attention pour le TO/GA !)
- L'inconvénient est que la course "utile" pour la poussée normale est réduite (les 75 à 80% supérieurs du total), donc la précision du contrôle aussi. D'autant que la course de la manette est déjà assez réduite même avec 100%.

Si j'ai raison (??), c'est de toutes façons un fonctionnement à bascule ("Toggle"). A toi de voir quelle solution tu préfères, entre un vrai bouton comme tu as déjà en n=3 (équivalent à la touche "Suppr" du clavier) ou le contrôle par bouton virtuel avec la manette en bas.

Si tu choisis le contrôle en bascule par la manette, je pense (vu de loin, sans pouvoir tester) que le code FG via "JS config" que tu as déjà sur un bouton n=3 (rouge ?) devrait fonctionner de la même manière avec la manette + reverse. Avec le code en bouton 16.

  <button n="16">
    <desc type="string">Reverser Toggle</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.reverserTogglePosition();</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>

FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#14 11/11/2023 17:12:54

aco
Membre
Inscription : 23/12/2010
Messages : 178

Re : -RESOLU-JS Thrustmaster Airbus Edition

Bonjour Zakh et Dany, je crois que l'on a bien avancé sur la reverse smile
1- Observations dans mon système
Dans properties/ le bouton 16 passe de true à false quand on quitte la position plein AR et non pas 20% comme indiqué par le manuel.
Vu par le panneau config joystick de FG, une case s'allume manette plein AR puis s'éteint si on l'avance. J'ai configuré ce "bouton virtuel" en "Reverse toggle"
2 - Fonctionnement du système avec le Citation X
Il est assez proche de ce que j'ai connu dans la vie réelle (Douglas DC 8 notamment) à une différence près : Une fois la reverse armée par ce fameux bouton virtuel la puissance s'affiche vers l'AV puisque l'on est déjà en butée AR. Ce que promet le manuel, mais que l'on n'arrive pas à configurer, c'est que le bouton virtuel soit positionné à 20% de la course et que la reverse agisse vers l'AR à l'intérieur des 20% de course restant.
Dans un second post je vais joindre mon .fgfs actuel qui s'est probablement enrichi de lignes inutiles que votre oeil exercé ne va pas manquer de repérer big_smile
Au passage merci à Dany pour son petit fichier "loupe" sur les instruments principaux en vol. C'est tout simplement génial pour avoir un pilotage précis.
3 - Spécialement pour Zakh wink
J'ai installé jstest-gtk avec la méthode que tu m'as indiquée (sudo apt install). Le fichier apparaît effectivement dans mes applis mais je ne peux pas l'ouvrir. Faut-il le faire en ligne et comment?
Après quelques essais il fonctionne dans un terminal mais pas en application graphique sad
Aure chose, dans un post précédent tu as parlé de faire un "grep'. C'est quoi cette bête? tongue

Encore merci à tous les deux et bonne journée
Jean-Marie

Dernière modification par aco (14/11/2023 11:47:40)


Linux Ubuntu 23-10 FG 2020-3.18 -Thrustmaster TA320- NVIDIA GeForce GTX750i (pilote 346.59) - CPU Intel Core I5 4430 - Carte mère Gigabyte Intel H97 express - 8Go RAM - 240Go SSD

Hors ligne

#15 11/11/2023 17:19:30

aco
Membre
Inscription : 23/12/2010
Messages : 178

Re : -RESOLU-JS Thrustmaster Airbus Edition

Voici donc mon fichier :

<?xml version="1.0"?>

<PropertyList>
  <name type="string">Thrustmaster T.A320 Pilot</name>
  <axis>
    <desc type="string">Aileron</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/aileron</property>
      <factor type="double">1</factor>
      <offset type="double">0</offset>
      <power type="double">1</power>
    </binding>
  </axis>
   <button n="0">
    <desc>Brakes or dashboard zoom</desc>
    <binding>
        <command>nasal</command>
        <script>
            if (getprop("/gear/gear/wow") or getprop("/gear/gear[1]/wow") or getprop("/gear/gear[2]/wow")) {controls.applyBrakes(1);} 
            else {setprop("/sim/current-view/view-number",0);
                view.resetViewPos();
                view.resetViewDir();
                setprop("/sim/current-view/field-of-view", 50.35); <!-- 32 = zoom in a little, default is 50 -->
                setprop("/sim/current-view/heading-offset-deg", 0); <!-- 344 = looking 16 degrees to the right -->
                setprop("/sim/current-view/pitch-offset-deg", -20); <!-- -22 = looking 22 degrees downward -->
                }
        </script>
    </binding>
    <mod-up> <!-- Key release code follows -->
        <binding>
            <command>nasal</command>
            <script>
                if (getprop("/gear/gear/wow") or getprop("/gear/gear[1]/wow") or getprop("/gear/gear[2]/wow")) {controls.applyBrakes(0);}
                else {setprop("/sim/current-view/view-number",0);
                    view.resetViewDir();
                    view.resetFOV();
                    view.resetViewPos();
                    }
            </script>
        </binding>
    </mod-up>
</button>
  <axis n="1">
    <desc type="string">Elevator</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/elevator</property>
      <factor type="double">-1</factor>
      <offset type="double">0</offset>
      <power type="double">1</power>
    </binding>
  </axis>
  <axis n="2">
    <desc type="string">Rudder</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/rudder</property>
      <factor type="double">1</factor>
      <offset type="double">0</offset>
      <power type="double">1</power>
    </binding>
  </axis>
  <axis n="3">
    <desc type="string">Throttle All Engines</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/engines/throttle-all</property>
      <factor type="double">1</factor>
      <offset type="double">0</offset>
      <power type="double">1</power>
    </binding>
  </axis>
  <axis n="4">
    <desc type="string">Aileron Trim inc.</desc>
    <low>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.aileronTrim(-1);</script>
      </binding>
      <repeatable type="bool">true</repeatable>
    </low>
    <high>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.aileronTrim(1);</script>
      </binding>
      <repeatable type="bool">true</repeatable>
    </high>
  </axis>
  <axis n="5">
    <desc type="string">Elevator Trim inc.</desc>
    <low>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.elevatorTrim(1);</script>
      </binding>
      <repeatable type="bool">true</repeatable>
    </low>
    <high>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.elevatorTrim(-1);</script>
      </binding>
      <repeatable type="bool">true</repeatable>
    </high>
  </axis>
  <button>
    <desc type="string">Brakes</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.applyBrakes(1);</script>
    </binding>
    <mod-up>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.applyBrakes(0);</script>
      </binding>
    </mod-up>
  </button>
  <button n="2">
    <desc type="string">Parking brakes</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.parkingBrakeToggle(0);</script>
    </binding>
    <mod-up>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.parkingBrakeToggle(1);</script>
      </binding>
    </mod-up>
  </button>
  <button n="6">
    <desc type="string">View Up</desc>
    <binding>
      <command type="string">property-adjust</command>
      <property type="string">/sim/current-view/goal-pitch-offset-deg</property>
      <step type="string">20.0</step>
    </binding>
  </button>
  <button n="7">
    <desc type="string">View Down</desc>
    <binding>
      <command type="string">property-adjust</command>
      <property type="string">/sim/current-view/goal-pitch-offset-deg</property>
      <step type="string">-20.0</step>
    </binding>
  </button>
  <button n="10">
    <desc type="string">Gear Up</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.gearDown(-1);</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
  <button n="11">
    <desc type="string">Flaps Up</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.flapsDown(-1);</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
  <button n="14">
    <desc type="string">Flaps Down</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.flapsDown(1);</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
  <button n="15">
    <desc type="string">Gear Down</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.gearDown(1);</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
  <button n="16">
    <desc type="string">Reverser Toggle</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.reverserTogglePosition();</script>
    </binding>
    <repeatable type="double">0</repeatable>
  </button>
</PropertyList>

Linux Ubuntu 23-10 FG 2020-3.18 -Thrustmaster TA320- NVIDIA GeForce GTX750i (pilote 346.59) - CPU Intel Core I5 4430 - Carte mère Gigabyte Intel H97 express - 8Go RAM - 240Go SSD

Hors ligne

#16 11/11/2023 17:36:55

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

L'ensemble 

 <button n="0">
    <desc>Brakes or dashboard zoom</desc>
etc...

n'est pas à sa place. Il est parmi les axes (je ne sais pas si c'est grave, mais autant ordonner).

Plus gênant : tu as laissé les lignes

  <button>
    <desc type="string">Brakes</desc>
etc...

Ce qui veut dire que ton bouton n=0 est affecté deux fois (tu as peut-être de la chance, c'est le premier qui gagne). Il faudrait remplacer cette deuxième partie <button> par celle <button n="0"> ci-dessus.


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#17 11/11/2023 18:21:30

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

Dans properties/ le bouton 16 passe de true à false quand on quitte la position plein AR

Sur le coup cela m'a laissé perplexe mais tu parles du bouton. Qui, effectivement, cesse d'être activé quand tu avances la manette. C'est comme si tu pressais un bouton physique ou la touche "Suppr", puis que tu lâchais. Mais vu que le reverse est en "toggle", il devrait rester en reverse (les témoins tableau de bord, le sens de poussée) "bouton" lâché jusqu'à la prochaine sollicitation (prochain retour en AR ou prochain appui sur "Suppr"). Basculer, quoi...
Je dirais donc que c'est normal à première vue (pour ce que j'en ai compris).

Tu ne dis pas le plus important : résultat effectif sur la poussée reverse / normale à l'essai avion ?

et non pas 20% comme indiqué par le manuel.

J'aurais tendance à dire : 20% ou 5%, on s'en fout. Puisqu'il ne contrôle pas une poussée progressive. Alors, autant qu'il ne se déclenche que pour une position basse de la manette... (tant que le potard fonctionne correctement vers la position plein AR)
Si ça finit par fonctionner (espoir...) tu ne vas pas renvoyer ta manette pour les 15% en souffrance ? lol

Ce que promet le manuel, mais que l'on n'arrive pas à configurer, c'est que le bouton virtuel soit positionné à 20% de la course et que la reverse agisse vers l'AR à l'intérieur des 20% de course restant.

Où as-tu lu ça dans le manuel ? Je lis seulement

Un bouton virtuel (n° 17, schéma 3) s’active sur les 20 premiers pourcents afin d’activer les
inverseurs de poussée, par exemple.

Cette progressivité est ce qu'on pouvait imaginer, mais... ??? On a "un bouton virtuel". c'est tout.

Vu par le panneau config joystick de FG, une case s'allume manette plein AR puis s'éteint si on l'avance. J'ai configuré ce "bouton virtuel" en "Reverse toggle"

Même réponse que ci-dessus : la case qui se coche ou non, c'est pendant le "pressage" du bouton. Pas pour l'état "reverse" ou non, qui est commandé en "toggle" et doit conserver son état.
Donc, je dirais "normal" aussi.

Dernière modification par dany93 (11/11/2023 19:01:13)


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#18 11/11/2023 19:27:45

aco
Membre
Inscription : 23/12/2010
Messages : 178

Re : -RESOLU-JS Thrustmaster Airbus Edition

aco a écrit :

Ce que promet le manuel, mais que l'on n'arrive pas à configurer, c'est que le bouton virtuel soit positionné à 20% de la course et que la reverse agisse vers l'AR à l'intérieur des 20% de course restant.

Cela résulte du dessin sur la manette où l'on voit nettement 2 zones distinctes séparées par le fameux bouton virtuel.La partie supérieure va de 0 à 100% de la poussée vers l'AV,(dixit le manuel pour la position 2 du JS.) et la partie inférieure, hachurée, de 0 à 20% vers l'AR Cela représenterait ce que j'ai toujours connu sur avion... Mais, bon, le fonctionnement actuel est acceptable pour de la simulation, le seul risque étant de ne pas faire attention à la lampe reverse si on fait des touch and go!

dany93 a écrit :

Tu ne dis pas le plus important : résultat effectif sur la poussée reverse / normale à l'essai avion ?

La poussée reverse augmente linéairement avec le déplacement de la manette vers l'avant jusqu'à 100% si on veut... Il suffit de ramener la manette plein AR pour retrouver une possibilité de poussée basique.


Linux Ubuntu 23-10 FG 2020-3.18 -Thrustmaster TA320- NVIDIA GeForce GTX750i (pilote 346.59) - CPU Intel Core I5 4430 - Carte mère Gigabyte Intel H97 express - 8Go RAM - 240Go SSD

Hors ligne

#19 11/11/2023 20:33:24

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

aco a écrit :

La poussée reverse augmente linéairement avec le déplacement de la manette vers l'avant jusqu'à 100% si on veut... Il suffit de ramener la manette plein AR pour retrouver une possibilité de poussée basique.

Donc tu as le fonctionnement, même si ce n'est pas celui que tu imaginais et que tu aurais préféré.

C'est ainsi que je le comprends pour cette manette suite à mes réflexions et à tes observations rapportées.

Maintenant, si tu trouves mieux plus tard, on peut toujours essayer d'implémenter... Pour ça, il faudrait découvrir une possibilité de faire varier le throttle de 0 à 100% sans que le bouton virtuel 16 ne sorte de son état activé malgré les déplacements de la manette... hmm

Problème Linux ?
Il faudrait trouver un forum (?) ou interroger Thrustmaster pour connaître le fonctionnement nominal sous Windows.
Je ne suis pas très optimiste sur le fonctionnement tel que tu l'espérais. On peut tout faire en informatique mais, compte tenu de la conception (même potentiomètre pour les deux modes, simple interprétation des valeurs de ce potentiomètre) je n'y crois pas trop.

Dernière modification par dany93 (12/11/2023 12:12:44)


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#20 11/11/2023 23:17:46

aco
Membre
Inscription : 23/12/2010
Messages : 178

Re : -RESOLU-JS Thrustmaster Airbus Edition

dany93 a écrit :

Donc tu as le fonctionnement, même si ce n'est pas celui que tu imaginais et que tu aurais préféré.

Effectivement, je peux donc classer le sujet comme résolu smile
Merci encore!


Linux Ubuntu 23-10 FG 2020-3.18 -Thrustmaster TA320- NVIDIA GeForce GTX750i (pilote 346.59) - CPU Intel Core I5 4430 - Carte mère Gigabyte Intel H97 express - 8Go RAM - 240Go SSD

Hors ligne

#21 13/11/2023 13:22:19

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 043

Re : -RESOLU-JS Thrustmaster Airbus Edition

Thrustmaster Airbus Sidestick Reverse Thrust: How?
Pas clair tout ça....
Il y a bien un ou des réglages, forcément propres à Windows (plugin avec interface graphique), qui pourraient aller dans ton sens, mais le fonctionnement final est mal décrit.

Aussi
https://www.avsim.com/forums/topic/5811 … s-edition/
https://forums.x-plane.org/index.php?/f … se-thrust/


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#22 13/11/2023 13:45:01

aco
Membre
Inscription : 23/12/2010
Messages : 178

Re : -RESOLU-JS Thrustmaster Airbus Edition

Oui, ça devrait marcher comme dans la réalité sur Airbus mais...ce n'est pas le cas!
On a déjà un fonctionnement rationnel, ce sera suffisant: tongue
Bonne journée,
Jean-Marie

Dernière modification par aco (13/11/2023 13:45:31)


Linux Ubuntu 23-10 FG 2020-3.18 -Thrustmaster TA320- NVIDIA GeForce GTX750i (pilote 346.59) - CPU Intel Core I5 4430 - Carte mère Gigabyte Intel H97 express - 8Go RAM - 240Go SSD

Hors ligne

Pied de page des forums