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 20/11/2018 16:08:18

denis_06
Membre
Lieu : Nice
Inscription : 3/12/2017
Messages : 84

[Résolu] Fichier joystick.

bonjour,


Je change d'avions, et j'aimerai avoir un fichier joystick adapté à mes avions.  FG lit par exemple systématiquement le fichier

.fgfs/Input/Joysticks/Thrustmaster-T16000M.xml   

J'aimerai indiquer au lancement dans les commandes le chemin et le nom du fichier joystick propre à chaque avion.

Y'aurait il un équivalent de l'option   --fg-aircraft =chemin ver avions    pour le joystick.

./run_fgfs.sh  --fg-aircraft=//home/denis/.fgfs/Avion_perso --aircraft=Cap10B --airport=LFMN  --timeofday=noon --disable-auto-coordination --disable-terrasync


Sinon méthode classique :
1) copier le     

cp   joytisck_Cap10B.xml   Thrustmaster-T16000M.xml

puis
2)

 ./run_fgfs.sh  [b]--fg-aircraft=//home/denis/.fgfs/Avion_perso[/b] --aircraft=Cap10B --airport=LFMN  --timeofday=noon --disable-auto-coordination --disable-terrasync

Ou plus fréquent :
Etape 2, puis on se rend compte que le joystick ne correspond pas,  donc Etape 1   puis re Etape 2 !

Merci d'avance pour vos traditionnels conseils avisés.

Denis.

Dernière modification par denis_06 (2/01/2019 22:23:16)


Denis PC portable.   Systeme Linux Mint 19     64 bits
carte graphique de base : Intel Corporation 4th Gen Core Processor Integrated Graphics Controller
Flight Gear 2020.4.0
Intel(R) Celeron(R) CPU 2970M @ 2.20GHz     RAM : 8GiB

Hors ligne

#2 20/11/2018 17:29:06

ctesc356
Membre
Inscription : 18/05/2010
Messages : 3 483

Re : [Résolu] Fichier joystick.

Bonjour,
je pense qu'il faut voir du côté de "fgdata/joysticks.xml"

Pour remplacer ou ajouter des pilotes de manette de jeu "nommés", répertoriez-les dans
<js-named> entrées avec des chemins relatifs au répertoire où
le fichier joysticks.xml réside (premier exemple). Tel "nommé"
les pilotes ne sont récupérés que si l’un des matchs de leur <nom>
le joystick (voir la sortie de l’application js_demo).
Ces pilotes ont la priorité sur les pilotes existants
avec le même <nom>. (Vous pouvez également ajouter un <name> default </ name>
entrée dans le pilote pour en faire le choix par défaut.)

Le deuxième exemple montre comment charger un pilote directement sur
position 0. Ceci sera alors utilisé pour le premier joystick sur
votre système et FlightGear ne l’écrasera pas.

Si je comprends bien avec "<js n="0" include= chemin vers ton fichier "/>" il sera prioritaire.


Intel i5-9400F, 16Go Ram, Nvidia GTX1660Ti, Linux Mint

Hors ligne

#3 21/11/2018 12:35:09

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

Re : [Résolu] Fichier joystick.

Bonjour Denis, bonjour ctesc356.

J'ai rencontré quelque part que les axes (et les boutons ?) pouvaient être affectés conditionnellement.  (sans l'avoir mis en œuvre personnellement, donc non essayé)
Cette forme

<axis n="1">
    <desc type="string">Elevator</desc>

    <binding> <!--EC135-->      
      <condition>	
            <equals>
                <property>/sim/aircraft</property>
                <value type="string">ec135p2</value>
            </equals>	    
       </condition>       
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/elevator</property>
      <dead-band type="double">0</dead-band>
      <factor type="double">-0.4</factor>
      <offset type="double">0</offset>
    </binding>    
    
    <binding> <!--autres-->      
      <condition>	
              <not-equals>
                  <property>/sim/aircraft</property>
                  <value type="string">ec135p2</value>
              </not-equals>	     
      </condition>      
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/elevator</property>
      <dead-band type="double">0</dead-band>
      <factor type="double">-1</factor>
      <offset type="double">0</offset>
    </binding>   
</axis>

Si ce que j'écris fonctionne, cela reviendrait à un seul fichier JS.xml mais avec des conditions pour chaque avion, plus une pour <autres> sous les <binding>. Un peu lourd mais peut-être à voir... Par contre, une fois codé, c'est automatique.


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

#4 21/11/2018 12:51:53

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

Re : [Résolu] Fichier joystick.

Pour les  "<js n="0" include= chemin vers ton fichier "/>",

Mes souvenirs (pas utilisé depuis longtemps...):

Les JS actuels semblent presque tous envoyer un nom spécifique (autre que quelque chose ou rien qui donne un générique). C'est ce nom qui sert à sélectionner le fichier JS.xml qui sera actif. Si un fichier JS.xml contient ce nom

  <name type="string">Thrustmaster T.16000M</name>

il sera chargé. Peu importe son nom de fichier.

La sélection en l'absence d'autres informations est (évidemment) un fichier de fgdata.

Si tu mets un fichier (personnalisé) dans /home/<user-name>/.fgfs/Input/Joysticks, c'est celui-ci qui sera chargé, s'il contient bien le nom envoyé par ton JS.

<js n="0" include="chemin vers ton fichier.xml"/> était surtout utilisé pour forcer l'adresse quand les JS envoyaient trop souvent un nom générique (qui pouvait aboutir au même pour deux JS). On peut toujours l’utiliser pour forcer, mais je ne vois pas encore si ça peut t'aider de manière commode.

[EDIT]
Je vois ce que ctesc356 veut dire.
Dans le fichier flightgear/fgdata/joysticks.xml, ajouter des lignes pour chaque avion1, avion2,...

    <js n="0" include="chemin/vers/joystick_avion1.xml"/>
    <!-- <js n="0" include="chemin/vers/joystick_avion2.xml"/> -->
    <!-- <js n="0" include="chemin/vers/joystick_avion3.xml"/> -->

On a ainsi un fichier de config par avion (fichier plus simple, mais largement dupliqué).
Les tags commentaires servent à désélectionner les fichiers non souhaités.
Mais ça t'oblige à modifier ce fichier joysticks.xml avant de lancer chaque avion.

Attention : tu modifies un fichier créé et entretenu par la compilation. Fais bien une sauvegarde par précaution, je ne sais pas comment git réagira.
[/EDIT]

Dernière modification par dany93 (21/11/2018 23:42:37)


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 21/11/2018 13:23:18

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 632

Re : [Résolu] Fichier joystick.

dany93 a écrit :

Si ce que j'écris fonctionne, cela reviendrait à un seul fichier JS.xml mais avec des conditions pour chaque avion, plus une pour <autres> sous les <binding>. Un peu lourd mais peut-être à voir... Par contre, une fois codé, c'est automatique.

Je confirme que ça fonctionne, j'utilise ce code pour les vols avec divers hélicos dont l'EC135.


Fg 2020.4.0 - Linux Mint 21.3 Victoria - Cinnamon et Mate en dual boot - CM Asus P8H67 MLE - CPU i7 3770K - 12 Go Ram - Nvidia Geforce GTX 1660TI - Driver Nvidia 525
+ Hp notebook-15 - Linux Mint 21.3 Victoria -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#6 21/11/2018 20:12:10

jano
Moderateur
Inscription : 13/11/2007
Messages : 963

Re : [Résolu] Fichier joystick.

pareil, j'utiilisais ça pour une manette des gaz avec un cran de PC, qu'il fallait adapter a chaque avion ...

regarde si il est possible de charger un fichier de config conditionnellement sur le nom de l'avion (avec un include ?) comme ça ça simplifie le fichier de joystick, plutot que de tout avoir dans un seul fichier.

jano

Hors ligne

#7 31/12/2018 0:46:17

denis_06
Membre
Lieu : Nice
Inscription : 3/12/2017
Messages : 84

Re : [Résolu] Fichier joystick.

Bonsoir,

Après un peu de temps je reprends la manip.

Je trouve simple et clair d'avoir un fichier de joystick par avion bien distinct.

Donc le fichier    joystick sous  fgdata est modifié comme indiqué (sauf erreur de ma part bien sûr).

<!--
	To override or add "named" joystick drivers list them in
	<js-named> entries with paths relative to the directory where
	the joysticks.xml file resides (first example). Such "named"
	drivers are only picked up if one of their <name>s matches
	the joystick hardware (see output of the js_demo application).
	These drivers have precedence over already existing drivers
	with the same <name>. (You can also add a <name>default</name>
	entry to the driver to make it the default choice.)

	The second example shows how to load a driver directly to
	position 0. This will then be used for the first joystick on
	your system and FlightGear will not overwrite it.
-->

<PropertyList>
<!--
	<js-named include="Input/Joysticks/Local/X45-modified.xml"/>

	<js n="0" include="Input/Joysticks/Local/joystick_0.xml"/>
-->

    <binding> <!--707-->      
      <condition>	
            <equals>
                <property>/sim/aircraft</property>
                <value type="string">707</value>
            </equals>	    
       </condition>       
       <js-named include="/home/denis/.fgfs/Input/Joysticks/Thrustmaster-T16000M_Manche_pour_le_707.xml"/>
    </binding>    
    
    <binding> <!--SenecaII-->      
      <condition>	
              <equals>
                  <property>/sim/aircraft</property>
                  <value type="string">SenecaII</value>
              </equals>	     
      </condition>      
      <js-named include="/home/denis/.fgfs/Input/Joysticks/Thrustmaster-T16000M_Manche_pour_le_SenecaII.xml"/>
    </binding>

    <binding> <!--Autres engins volants-->      
      <condition>	
              <not-equals>
                  <property>/sim/aircraft</property>
                  <value type="string">SenecaII</value>
              </not-equals>	     
      </condition>      
      <js-named include="/home/denis/.fgfs/Input/Joysticks/Thrustmaster-T16000M_MANCHE_autresbbbbbbb.xml"/>
    </binding>
</PropertyList>

Dans mon répertoire personnel     /home/denis/.fgfs/Input/Joysticks/   je crée les 3 fichiers   joystick , un pour le 707, le SenecaII et les autres.

Dans le .fgfsrc   je teste   avec   --aircraft=707  puis --aircraft=SenecaII    et dans les 2 cas les conditions ne sont jamais reconnues comme vérifiées.
Pour en être sûr , j'indique un  nom de fichier erroné pour la catégorie <!--Autres engins volants-->   et fgfs me retourne  bien l'erreur suivante.

Cannot open file /home/denis/.fgfs/Input/Joysticks/Thrustmaster-T16000M_MANCHE_autresbbbbbbbb.xml

En lisant le wiki FG  http://wiki.flightgear.org/Conditions , je ne vois pas mon erreur de syntaxe.

A cette heure tardive, je ne vois pas mon erreur. Merci d'avance pour votre aide.


Denis.

Dernière modification par denis_06 (31/12/2018 0:48:23)


Denis PC portable.   Systeme Linux Mint 19     64 bits
carte graphique de base : Intel Corporation 4th Gen Core Processor Integrated Graphics Controller
Flight Gear 2020.4.0
Intel(R) Celeron(R) CPU 2970M @ 2.20GHz     RAM : 8GiB

Hors ligne

#8 31/12/2018 9:33:59

ctesc356
Membre
Inscription : 18/05/2010
Messages : 3 483

Re : [Résolu] Fichier joystick.

Bonjour,
pas testé, mais en mettant un "include" dans "<avion>-set.xml" vers un fichier js spécifique dans le dossier <avion>?
Il sera (en principe) lu en priorité sur ce qui est dans fgdata, donc pas besoin de se soucier des cas génériques.


Intel i5-9400F, 16Go Ram, Nvidia GTX1660Ti, Linux Mint

Hors ligne

#9 31/12/2018 13:16:34

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

Re : [Résolu] Fichier joystick.

Bonjour Denis,

denis_06 a écrit :

Je trouve simple et clair d'avoir un fichier de joystick par avion bien distinct.

Admettons, si tu préfères.

Tu as tout mélangé dans ta dernière description, ça va être un peu compliqué pour te corriger...
Tu as introduit des <condition> dans le fichier fgdata/joysticks.xml, je n'ai jamais vu ça et je ne sais pas si ça peut marcher. En tous cas, ce ne sont sûrement pas des <binding>.
Les explications qui suivent sont donc rédigées à partir de ce que je crois avoir compris, avec une méthode de sélection que je n'ai jamais utilisée.

Je vois que tu choisis la méthode proposée par ctesc356 et un peu plus détaillée dans ce message. (voir mon "EDIT")

dany93 a écrit :

Dans le fichier flightgear/fgdata/joysticks.xml, ajouter des lignes pour chaque avion1, avion2,...

    <js n="0" include="chemin/vers/joystick_avion1.xml"/>
    <!-- <js n="0" include="chemin/vers/joystick_avion2.xml"/> -->
    <!-- <js n="0" include="chemin/vers/joystick_avion3.xml"/> -->

On a ainsi un fichier de config par avion (fichier plus simple, mais largement dupliqué).
Les tags commentaires servent à désélectionner les fichiers non souhaités.
Mais ça t'oblige à modifier ce fichier joysticks.xml avant de lancer chaque avion.

Les seules lignes indispensables sont :
(joysticks.xml)

<?xml version="1.0"?>
<PropertyList>
    <js n="0" include="chemin/vers/joystick_avion1.xml"/>
    <!-- <js n="0" include="chemin/vers/joystick_avion2.xml"/> -->
    <!-- <js n="0" include="chemin/vers/joystick_avion3.xml"/> -->
</PropertyList>

Le fichier fgdata/joysticks.xml ne doit pas contenir d'autre ligne active. Il sert juste à diriger vers le bon fichier spécialisé.
Pour choisir, tu changes les tags "commentaires" en ne laissant qu'une ligne active. Et tu sauves. Opération manuelle à chaque fois.

Ensuite, tu as plusieurs fichiers "joystick_avionN.xml" dans lesquels il n'y a pas besoin de condition, puisque chaque fichier ne sert que pour un avion, et que ce choix est dirigé par le fichier /fgdata/joysticks.xml correctement modifié pour l'avion souhaité.

Chaque fichier spécialisé est complet,  semblable aux autres sauf pour l'axe concerné.
A l'intérieur de chaque fichier spécialisé avion (exemple: joystick_avion1.xml), tu modifies tes bindings d'axe comme si c'était le seul fichier existant, avec les valeurs adaptées à l'avion.

<axis n="1">
    <desc type="string">Elevator</desc>

    <binding>
        <command type="string">property-scale</command>
        <property type="string">/controls/flight/elevator</property>
        <dead-band type="double">0</dead-band>
        <factor type="double">-0.4</factor>
        <offset type="double">0</offset>
    </binding>    

</axis>

Les autres lignes du fichier doivent être là, mais inchangées.

Je ne sais pas si j'ai tout vu, mais essaie déjà comme ça, surtout en essayant de bien comprendre le fonctionnement. Pardon si j'en ai oublié, on avancera alors par étapes en fonction de tes résultats.

Les "condition", c'est seulement si tu fais le choix d'un seul fichier JS pour tous tes avions. Dans ce fichier JS unique, les bindings sous axis n="1" (ou / et autres) doivent alors être conditionnés. Mais ce n'est pas la méthode que tu sembles préférer.
L'avantage de cette méthode avec "condition" est que le choix est ensuite automatique, il n'y a pas à modifier et sauver le fichier joysticks.xml à chaque fois.
De plus, une éventuelle correction dans une quelconque autre partie du fichier "avion" n'a pas à être recopiée dans les autres fichiers pour être prise en compte.
Certes, au prix d'un fichier unique un peu plus difficile à écrire et à lire. Mais on se prend la tête un seule fois et, quand on a compris, avec pas mal de copier - coller, ça peut aller assez vite.


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

#10 31/12/2018 17:53:07

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

Re : [Résolu] Fichier joystick.

Fichier JS unique, avec conditions (premier jet, non testé. Syntaxe des conditions multiples à confirmer).
Partie <axis n = "1">

<axis n="1">
    <desc type="string">Elevator</desc>

    <binding> <!--707-->      
      <condition>	
            <equals>
                <property>/sim/aircraft</property>
                <value type="string">707</value>
            </equals>	    
       </condition>       
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/elevator</property>
      <dead-band type="double">0</dead-band>
      <factor type="double">-0.4</factor>
      <offset type="double">0</offset>
    </binding>    

    <binding> <!--SenecaII-->      
       <condition>	
            <equals>
                <property>/sim/aircraft</property>
                <value type="string">SenecaII</value>
            </equals>	    
       </condition>       
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/elevator</property>
      <dead-band type="double">0</dead-band>
      <factor type="double">-0.7</factor>
      <offset type="double">0</offset>
    </binding>    
    
    <binding> <!--autres-->      
       <condition>
           <and>	
              <not-equals>
                  <property>/sim/aircraft</property>
                  <value type="string">707</value>
              </not-equals>	  
              <not-equals>
                  <property>/sim/aircraft</property>
                  <value type="string">SenecaII</value>
              </not-equals>	
           </and>      
      </condition>      
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/elevator</property>
      <dead-band type="double">0</dead-band>
      <factor type="double">-1</factor>
      <offset type="double">0</offset>
    </binding>   
</axis>

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 2/01/2019 22:22:29

denis_06
Membre
Lieu : Nice
Inscription : 3/12/2017
Messages : 84

Re : [Résolu] Fichier joystick.

Bonsoir et bonne année.

J'ai implémenté la méthode proposés à savoir , tout en automatique mais un très gros fichier pour le joystick avec les différents cas

Par exemple ci dessous le bouton 13 (en m'inspirant très fortement du pst précédent)  a une fonction sur le 707 et une autre sur le SenecaII (au passage j'ai testé la configuration autres en ajoutant une 3eme fonction juste pour le test). Donc la recommandation fonctionne. Un grand merci.

En revanche si une des commandes est répétable, alors c'est toutes les commandes. Par exemple sur le Seneca la régulation hélice est répétable ce qui de fait rend la mise en route des reverse répétable (c'est sans intérêt). Mais en essayant diverses position du    <repeatable type="double">1</repeatable>  dans et en dehors du binding, cela ne fonctionne plus .  Bon pas grave je ne vais pas m'endormir sur le bouton reverse.



<button n="13">

     <binding> <!--707-->      
        <condition>	
            <equals>
                <property>/sim/aircraft</property>
                <value type="string">707</value>
            </equals>	    
        </condition>       
        <desc>Toggle Reversers</desc>
        <command>nasal</command>
        <script>b707.togglereverser();</script>
    </binding> 

    <binding> <!--SenecaII--> 
        <desc type="string">Propeller Coarse</desc>     
        <condition>	
            <equals>
                <property>/sim/aircraft</property>
                <value type="string">SenecaII</value>
            </equals>	    
        </condition>  
         <command type="string">nasal</command>
        <script type="string">controls.adjPropeller(-1);</script>       
    </binding>
     <repeatable type="double">1</repeatable>

    <binding> <!--autres-->      
       <condition>
           <and>	
              <not-equals>
                  <property>/sim/aircraft</property>
                  <value type="string">707</value>
              </not-equals>	  
              <not-equals>
                  <property>/sim/aircraft</property>
                  <value type="string">SenecaII</value>
              </not-equals>	
           </and>      
      </condition>      
        <command type="string">nasal</command>
        <script type="string">controls.elevatorTrim(1);</script>
    </binding> 

Merci à vous et bonne année.


Denis PC portable.   Systeme Linux Mint 19     64 bits
carte graphique de base : Intel Corporation 4th Gen Core Processor Integrated Graphics Controller
Flight Gear 2020.4.0
Intel(R) Celeron(R) CPU 2970M @ 2.20GHz     RAM : 8GiB

Hors ligne

#12 3/01/2019 8:51:14

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 632

Re : [Résolu] Fichier joystick.

Bonjour à tous et meilleurs vœux.

denis_06 a écrit :

En revanche si une des commandes est répétable, alors c'est toutes les commandes

Peut-être une réponse ici : https://forum.flightgear.org/viewtopic.php?f=30&t=20127


Fg 2020.4.0 - Linux Mint 21.3 Victoria - Cinnamon et Mate en dual boot - CM Asus P8H67 MLE - CPU i7 3770K - 12 Go Ram - Nvidia Geforce GTX 1660TI - Driver Nvidia 525
+ Hp notebook-15 - Linux Mint 21.3 Victoria -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#13 3/01/2019 11:58:52

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

Re : [Résolu] Fichier joystick.

Bonjour à vous tous et bonne année.

@Denis, aurais-tu un autre JS disponible pour les boutons ? (un vieux clou même avec les axes usés, ou un truc de bas de gamme)


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 3/01/2019 14:49:44

denis_06
Membre
Lieu : Nice
Inscription : 3/12/2017
Messages : 84

Re : [Résolu] Fichier joystick.

Bonjour,

Merci pour le retour,  d'apès le post de de clm  il faut écrire un peu de nasal pour avoir un répétable et l'autre pas (je vais m'y plonger).

Pour Dany : J'ai le joystick en très bon état de la boite internet Free. En le banchant et lançant FG, je consulte  le Menu   fichier    puis configuration du joystick , le fichier indiqué celui du pack FG se trouvant sous  :
/home/denis/6_FG_bis/install/flightgear/fgdata/Input/Joysticks/Default

Le joystick est reconnu sous le non dragonrise, generic USB   

Sinon comme vieux joystick voire préhistorique   je dois avoir le modèle Atari des années 80 à base carré... Mais bon sans espoir je pense pour ce vieux modèle.

Denis.


Denis PC portable.   Systeme Linux Mint 19     64 bits
carte graphique de base : Intel Corporation 4th Gen Core Processor Integrated Graphics Controller
Flight Gear 2020.4.0
Intel(R) Celeron(R) CPU 2970M @ 2.20GHz     RAM : 8GiB

Hors ligne

#15 3/01/2019 16:14:01

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

Re : [Résolu] Fichier joystick.

Joystick boîte Free :

fgdata/Input/Joysticks/Default

Tu donnes le chemin mais pas jusqu'au nom du fichier, j'en suis donc réduit à la supposition qui suit.

Un fichier de config de FG : joypad.xml (sous fgdata/Input/Joysticks/Default) contient ce nom :
(nom qui doit être rigoureusement conforme à celui envoyé par ton JS, plus précisément que ce que tu donnes)

<name>DragonRise Inc.   Generic   USB  Joystick  </name>

Ton JS est donc reconnu par son nom et un fichier existe (étonnant !).
As-tu pressé les boutons pour voir dans "Configuration des Joysticks" ?

En lisant les indications de Florent Rougon dans le fichier joypad.xml, ce fichier de configuration est très élaboré, avec les boutons 5 et 6 qui peuvent servir de "modifiers" (j'espère que tu n'auras pas besoin de ça, c'est pour multiplier le nombre de possibilités).
Avant de remplacer complètement le contenu du fichier, vois déjà si certaines fonctions programmées donnent quelque chose qui t'intéresserait.
Attention, je lis :

Don't forget to put the joypad in analog mode! This changes the center point of axes, for one.

(je ne sais pas si c'est indispensable pour toi, mais à connaître quand même)

Ce n'est peut-être pas trivial, mais en commençant simple et avec des tests il y a probablement moyen de lui faire envoyer des valeurs -1, 0, +1 exploitables pour ce que tu souhaites.

jstest-gtk te donne le nom et une représentation graphique facile à lire avec numéros des axes et boutons.
Attention : tout "bouton" qui donne -1, 0, +1 (comme le "hat") est considéré comme un axe.

js_demo (sous install/flightgear/bin)
Dans la console sous install/flightgear/bin (fenêtre suffisamment élargie sinon ça défile) :

./js_demo

Il t'affichera son nom et tu pourras au moins lire les valeurs envoyées par les axes (-1,..,0,..+1). Indépendamment (en amont) de tout fichier .xml de configuration.
Le numéro des boutons n'est pas facile à lire. Voir Wiki Input device.

Et, bien sûr, "Configuration des joysticks" (nom, valeurs envoyées par les axes, actions sur les boutons).

Il devrait alors être possible de lui créer un fichier .xml de config sous .fgfs/Input/Joysticks avec tes souhaits spécialisés sur les boutons. Peut-être (?) moins immédiat qu'avec les JS classiques... Le mieux est sans doute de commencer avec un fichier très simple.

Dernière modification par dany93 (5/01/2019 19:38:35)


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

#16 10/10/2021 13:22:02

Mystermind
Membre
Inscription : 9/10/2021
Messages : 4

Re : [Résolu] Fichier joystick.

Mieux:

1°]
Sous "/../Aircraft/MonAvion/" il y a un fichier nommé "monavion-set.xml".

L'éditer, et placer, APRÈS les balises <sim></sim>, les lignes:

<input>
	<keyboard include="Input/MonAvion-keyboard.xml"/>
	<joysticks include="Input/MonAvion-joystick.xml"/>
</input>

L'"include" keyboard ne sert que si vous voulez des touches claviers spécifiques pour un aéronef spécifique (ligne optionnel).

2°]
Créer sous "/../Aircraft/MonAvion/Input/" un fichier de renvoie vers le(s) fichier(s) de configuration des "Input" que vous nommerez justement : "MonAvion-joystick.xml"

En fonction du nombre de vos joysticks (un "include" par joystick), y placer le code suivant:

<?xml version="1.0"?>

<PropertyList>
	<js n= "0" include="MonAvion-joystick0.xml"/>
	<js n= "1" include="MonAvion-joystick1.xml"/>
	<js n= "2" include="MonAvion-joystick2.xml"/>
</PropertyList>

3°]
Enfin, créer sous "/../Aircraft/MonAvion/Input" les fichiers de commandes spécifiques à l'appareil :

a)
"MonAvion-joystick0.xml" pour le joystick js n="0"
"MonAvion-joystick1.xml" pour le joystick js n="1"
"MonAvion-joystick2.xml" pour le joystick js n="2"
"MonAvion-joystick3.xml" pour le joystick js n="3"

En fonction du nombre de vos joysticks.

Et y placer la configuration des commandes, selon le modèle "joystick.xml" du répertoire  "fgdata" d'origine, correspondant à chaque fichier associé à chaque joystick.

b) Toujours sous "/../Aircraft/MonAvion/Input/", créer : 

"MonAvion-keyboard.xml" pour les touches claviers, si vous voulez un fichier de configuration clavier spécifique pour un avion spécifique (fichier optionnel).

Et y placer la configuration des touches, selon le modèle "keyboard.xml" du répertoire  "fgdata" d'origine.

Note
Flightgear, va commencer par charger les configurations des fichiers "joystick.xml" et "keyboard.xml" du répertoire  "fgdata" d'origine. Puis, ceux spécifiques à votre aéronef, en complétant ainsi les touches et commandes non précédemment configurées, avec ces nouvelles ; et éventuellement en écrasant les premières par les dernières chargées.

Vous pouvez donc configurer, dans les fichiers "keyboard.xml" et "joystick.xml" du répertoire "fgdata" d'origine, des touches et commandes génériques pour chaque aéronef qui n'aurait pas de fichiers de configurations spécifiques dans leurs répertoires spécifiques.

LIMITATION
Par cette méthode, les joysticks étant identifiés par leur numéro, et non plus par leur dénomination ; si vous les débranchez, et les rebranchez dans un ordre différent, leur numéro d'identification changera et la configuration, associée aux numéros js n="?", ne correspondra plus aux fichiers adéquates.

Il vous faudra, soit renommer les fichiers de configuration, soit modifier le fichier: "/../Aircraft/MonAvion/Input/MonAvion-joystick.xml".

Ou bien, rebrancher les joysticks dans leur ordre d'origine de création des fichiers.

De mémoire, remplacer le numéro d'identification js n="X", par son nom d'identifiant, js n="YYYY" ou  js name="YYYY" ; ne fonctionne pas (ce qui aurait résolu le problème).

Dernière modification par Mystermind (10/10/2021 14:17:22)


Linux Kernel: 4.19.0-17-amd64 x86_64 Distro: MX-19.4_x64 patito feo May 31 2020 Base: Debian GNU/Linux 10 (buster)
Quad Core model: Intel Core i5-2400 bits: 64 type: MCP arch: Sandy Bridge family: 6 L2 cache: 6144 KiB Speed min/max: 1600/3400 MHz Graphics: NVIDIA GP107 [GeForce GTX 1050 Ti] Memory: 7.75 GiB Flightgear : 2020.3.11

Hors ligne

#17 11/10/2021 0:47:16

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

Re : [Résolu] Fichier joystick.

Salut Mystermind,

Mystermind a écrit :

Mieux:

ben sans vouloir freiner ta volonté d'aider et en insistant sur le ton bienveillant de ma réponse, en fait c'est pas mieux du tout, c'est même le truc à pas faire en vrai tongue

Plusieurs raisons à ça:
1- tu modifies un fichier qui ne t'appartient pas dans le sens où une mise à jour peut être bloquée dans le meilleur des cas de conflit, mais subversion ayant une fâcheuse tendance à rajouter des lignes qui vont tout casser la structure xml ça va pas faire ce qui est attendu. Ou la mise à jour va complètement écraser tes modifs locales.
2- avec ta technique tu ne modifies pas la configuration avec tes périphériques à toi, tu modifie le comportement d'un appareil en particulier
3- corollaire du point 2, ce n'est pas appliqué sur tous les appareils, sauf à faire cette manip sur tous tes appareils
4- en cas de pépin, si quelqu'un a suivi ta méthode et demande pourquoi «FG ne fonctionne pas comme prévu», ça ajoute de la complexité pour aider à dépatouiller
5- il y a un espace tout dédié à la personnalisation des configs d'autant de joysticks et raccourcis-claviers que souhaité dans $FGHOME/Input/Joysticks [1], il suffit de récupérer une config existante et approchante et de modifier soit via un éditeur de texte, soit par l'UI de FG la config. FG reconnaît le joystick par le nom que le module du noyau (ou un pilote sous windows), tu peux mettre autant de noms que voulu si le module (ou pilote) renvoie un nom exotique (attention aux espaces et aux minuscules/majuscules), le nom doit correspondre parfaitement caractère par caractère espaces compris, js_demo aide sur ce sujet

Au passage,

Mystermid a écrit :

Sous "/../Aircraft/MonAvion/" il y a un fichier nommé "monavion-set.xml"

sur les fichiers *-set.xml, ce sont les fichiers d'entrée pour chaque appareil et ses différentes version, il peut y en avoir plein dans certains cas (différentes versions d'un même appareil, différents modèles de vol, etc.), parfois même ces fichiers s'incluent les uns les autres.

[1] sous les systèmes Linux c'est FGHOME est par défaut ~/.fgfs, pour les windows et mac je sais pas

@+
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

Pied de page des forums