Support de la manette de jeu par Rocview

SommaireRocview Général



Obsolète


Rocrail supporte jusqu'à 4 manette de jeu connectées pour contrôler les locomotives.
Le support de la manette de jeu doit être activé.
Dans le cas ou une manette de jeu est connectée, vous pouvez sélectionner une locomotive avec la fonction 10 qui fait apparaître une fenêtre de sélection.
Avec la croix directionnelle de la manette vous pouvez sélectionner une locomotive d'une liste qui doit être activée avec le bouton de fonction 10.

Cartographie prédéfinis des actions

Bouton Action
1 to 4 fonctions du décodeur de 1 à 4
5 changer de direction
6 feux Marche/arrêt
7 arrêt (pas arrêt d'urgent)
8 arrêt de l'alimentation de la voie
9 Mise en service de l'alimentation de la voie
10 sélectionner une locomotive (fenêtre ouverte/fermée)
croix directionnelle augmenter/diminuer la vitesse, ou se déplacer à travers la liste de loco

Ce sont les définitions de boutons prédéfinies.
Les valeurs sont indexées sur le zéro. (le configuration 0 est le bouton 1)


Comment "cartographier" une manette de jeu

Après que la manette soit connectée et que l'on ai pressé sur les boutons et l'axe, vous recevrez un message dans la fenêtre de suivi comme celui-ci:

JsEvent dev=0, type=1, number=0, value=1, msec=50766908
JsEvent dev=0, type=1, number=1, value=1, msec=50773640
JsEvent dev=0, type=1, number=2, value=1, msec=50774584
JsEvent dev=0, type=1, number=3, value=1, msec=50775384
JsEvent dev=0, type=2, number=5, value=-32767, msec=50778792
JsEvent dev=0, type=2, number=5, value=0, msec=50779824

Type 1 est un bouton, type 2 sont les axes.


Configuration dans Rocview

Entrées possible:

  • V: Bouton utilisé pour l'accélération/décélération
  • Répéter: intervalle de répétition automatique dans le cas ou le bouton d'accélération reste pressé (entrée en msec).
    • les nombres plus petits donnent un taux de répétition plus grand.
    • “0” signifie PAS de répétition automatique
  • Direction: bouton pour changer la direction, dans le cas ou il est pressé la loco va: décélérer , arrêter , accélérer dans la direction opposée
  • Arrêter: le bouton arrête la loco
  • Crans de vitesse: définit de combien de crans de vitesse sot accélérés/décélérés par pression de touche
  • Feux: bouton pour allumer/éteindre les feux
  • F1-12: boutons pour les fonctions F1-F12
    • -1 si pas utilisé
  • marche/arrêt: bouton pour allumer ou éteindre l'alimentation de la voie par la centrale (toutes les centrales ne supportent pas ceci)


Problèmes

Essayer de faire le test suivant sous Linux:

  • ouvrir une console
  • connecter la manette de jeux
  • taper la commande:
  cat /dev/input/js0
or
  cat /dev/js0
  • pressertous les boutons l'un après l'autre en commençant par le bouton 1
  • presser le Pad de direction dans toutes les directions.

La console devrait afficher quelque chose comme ceci(dépend du apramétrage du codepage de la console):

La manette de jeux n'est pas utilisable si il n'y a pas quelque chose qui s'affiche lorsque l'on presse sur un bouton ou sur les directions.

Maintenant démarrer Rocview dans une console:

./rocview -debug
  • insérez la manette de jeux
  • touchez tous les butons et les directions comme vous l'avez fait dans le test précédent.

Tout est une question de mapping:

http://www.rocrail.net/doc/rocrail-wrappers/wrapper-en.html#jsmap

Si votre pad de direction génère des valeurs comme celles-ci (suivi rocview avec lignes de debug)

20071219.173903.558 g9999D js-reade OJS      0110 handle=9, devnr=0, type=2, number=4, value=0, msec=27128764
20071219.173903.559 g9999I main     js       0162 JsEvent dev=0, type=2, number=4, value=0, msec=27128764
20071219.173903.640 g9999D js-reade OJS      0110 handle=9, devnr=0,type=2,number=3, value=0, msec=27128844
20071219.173903.641 g9999I main     js       0162 JsEvent dev=0, type=2, number=3, value=0, msec=27128844

Mapping des boutons de fonction: (suivi rocview)

20071224.090542.371 g9999I js-reade Logitech 0069 JS 1(Logitech Logitech Dual Action) has 6 axes and 12 buttons. Driver version is 2.1.0.
20071224.090543.529 g9999I main     js       0162 JsEvent dev=0, type=1, number=0, value=1, msec=3162540
20071224.090543.720 g9999I main     js       0162 JsEvent dev=0, type=1, number=0, value=0, msec=3162724
20071224.090553.122 g9999I main     js       0162 JsEvent dev=0, type=1, number=1, value=1, msec=3172132
20071224.090553.313 g9999I main     js       0162 JsEvent dev=0, type=1, number=1, value=0, msec=3172316
20071224.090556.663 g9999I main     js       0162 JsEvent dev=0, type=1, number=2, value=1, msec=3175668
20071224.090556.824 g9999I main     js       0162 JsEvent dev=0, type=1, number=2, value=0, msec=3175828
20071224.090557.689 g9999I main     js       0162 JsEvent dev=0, type=1, number=3, value=1, msec=3176692
20071224.090557.852 g9999I main     js       0162 JsEvent dev=0, type=1, number=3, value=0, msec=3176860

Le numéro correspond au numéro du bouton de la manette soustrait de 1. Dans cet exemple, les boutons 1 à 4 ont été pressé et ont renvoyé leur valeur par défaut dans jsmap.

Ajuster le jsmap dans le fichier rocgui.ini pour rencontrer les besoins de votre manette de jeux. Exemple:

<jsmap step="1" updown="5" repeat="500" reverse="4" stop="6" light="5" f1="0" f2="1" f3="2" f4="3" poweron="8" poweroff="7"/>

Personal Tools