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 : 40

[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 2018.3.0
Intel(R) Celeron(R) CPU 2970M @ 2.20GHz     RAM : 4GiB

Hors ligne

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

ctesc356
Membre
Inscription : 18/05/2010
Messages : 2 745

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 3570 3.4Mhz, Nvidia GTX 660, 8Go Ram, Linux Mint

Hors ligne

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

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 3 016

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 2019.2.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 8Go DDR2, GEFORCE GTX 650 1GB, OSG 3.4.2
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

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

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 3 016

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 2019.2.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 8Go DDR2, GEFORCE GTX 650 1GB, OSG 3.4.2
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

#5 21/11/2018 13:23:18

Clm76
Membre
Lieu : LFOH
Inscription : 22/10/2012
Messages : 1 048

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 2019.2.0 - LinuxMint 19.1 Tessa - CM Asus P8H67 MLE - CPU i3 2100T - 12 Go Ram - Nvidia Geforce GTX 770 - Driver Nvidia 430.26
+ Hp notebook-15-da0118nf -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

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

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

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 : 40

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 2018.3.0
Intel(R) Celeron(R) CPU 2970M @ 2.20GHz     RAM : 4GiB

Hors ligne

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

ctesc356
Membre
Inscription : 18/05/2010
Messages : 2 745

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 3570 3.4Mhz, Nvidia GTX 660, 8Go Ram, Linux Mint

Hors ligne

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

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 3 016

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 2019.2.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 8Go DDR2, GEFORCE GTX 650 1GB, OSG 3.4.2
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

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

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 3 016

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 2019.2.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 8Go DDR2, GEFORCE GTX 650 1GB, OSG 3.4.2
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

#11 2/01/2019 22:22:29

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

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 2018.3.0
Intel(R) Celeron(R) CPU 2970M @ 2.20GHz     RAM : 4GiB

Hors ligne

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

Clm76
Membre
Lieu : LFOH
Inscription : 22/10/2012
Messages : 1 048

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 2019.2.0 - LinuxMint 19.1 Tessa - CM Asus P8H67 MLE - CPU i3 2100T - 12 Go Ram - Nvidia Geforce GTX 770 - Driver Nvidia 430.26
+ Hp notebook-15-da0118nf -  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 : 3 016

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 2019.2.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 8Go DDR2, GEFORCE GTX 650 1GB, OSG 3.4.2
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

#14 3/01/2019 14:49:44

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

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 2018.3.0
Intel(R) Celeron(R) CPU 2970M @ 2.20GHz     RAM : 4GiB

Hors ligne

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

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 3 016

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 2019.2.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 8Go DDR2, GEFORCE GTX 650 1GB, OSG 3.4.2
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

Pied de page des forums