Table of Contents
Gamepad support
- Menubalk | Configuratie | Loc Overzicht | Sneltoetsen | Statusindicatie | Meer Instanties van Rocview | Documentatie
- Taalkeuze | Algemeen | Trace | Programmeren | SVG Symbolen | De Klok | Gamepad support | MIC | Sneltoets noodstop
Locomotieven met een gamepad besturen.
Rocrail ondersteunt tot 4 aangesloten gamepads die elk afzonderlijk een locomotief kunnen besturen. Als er een gamepad aangesloten is, kan middels functie 10 de selectie dialoog opgeroepen worden waarin alle beschikbare locomotieven in een lijst staan. D.m.v. het D-pad kan een locomotief worden geselecteerd en met functie 10 wordt deze selectie actief.
De volgende acties zijn beschikbaar:
Knop | Actie |
1 t/m 4 | decoder functie 1 t/m 4 |
5 | rij richting veranderen |
6 | verlichting aan/uit |
7 | stop (geen noodstop) |
8 | spoorbaan stroom uit |
9 | spoorbaan stroom aan |
10 | locomotief selecteren (dialoog open/sluiten) |
D-pad | snelheid hoog/laag, of bladeren door loc lijst |
Dit zijn de voor ingestelde knop toe wijzingen. Deze zijn te wijzigen in de rocrail.ini sectie http://www.rocrail.net/doc/rocgui-wrappers/wrapper-en.html#jsmap. Let op! Deze beginnen met nul. (mapping 0 is dus knop 1)
Het toewijzen van functies aan een button
Nadat de gamepad aangesloten is op een knop gedrukt wordt verschijnt er een boodschap als volgt:
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 is een knop, type 2 de joystick. Het getal is de waarde die in de jsmap gezet moet worden. Deze waarden kunnen ook gezet worden in het Rocview eigenschappen menu: http://rocrail.sourceforge.net/rocguiini.mpg
Dus kijk voor het toewijzen van een knop aan een fuctie naar het nummer dat weergegeven wordt als er op gedrukt wordt en zet dat nummer in de jsmap.
Hoe een GamePad definiëren
Nadat het GamePad aangesloten is en je op de knoppen gedrukt hebt, krijg je een volgende melding:
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 is een knop, type 2 zijn assen. Het nummer is de waarde welke gebruikt is in jsmap. Vanaf svn 966 kan je deze waarden in de Rocgui Eigenschappen Dialoog invoeren: http://rocrail.sourceforge.net/rocguiini.mpg
Dus indien je een knop wenst te koppelen aan een actie, gelieve te kijken welk nummer weergegeven is in jsmap.
Setup dmv het Rocgui Dialoog
Mogelijke ingaven:
V: knop gebruikt voor versnelling/vertraging
Repeat: auto herhaal interval in geval de snelheidsknop ingedrukt blijft, ingave in msec. - kleinere getallen geven hogere herhaalwaarden. - "0" betekend autorepeat = uit
Direction: knop om de lokrichting te veranderen, in geval van drukken dan zal de lok: vertragen, stoppen, versnellen in tegengestelde richting
Stop: knop om de lok te stoppen
Decoder steps: definieer in hoeveel stappen de decoder moet versnellen/vertragen per druk
Lights: knop om de lichten aan/af te zetten
F1-4: knop om de functies F1-F4 te schakelen
on/off: knop om de stroom van de centrale aan/af te zetten (niet alle command stations ondersteunen dit)
Gekende problemen
Probeer de volgende tests te doen bij gebruik in linux:
- open een console
- connecteer het gamepad
- type het commando:
cat /dev/input/js0 of cat /dev/js0
- druk op alle knoppen, één voor één, start met knop 1
- druk D-Pad in alle richtingen.
De console output zou het volgende moeten weergeven (afhankelijk van de console codepage settings):
De Gamepad is niet bruikbaar indien er geen output is bij het drukken van een knop of D-Pad.
Nu start je Rocgui in een console:
./rocgui -debug
- connecteer het gamepad
- druk op alle knoppen en D-Pad richtingen zoals in de vorige test.
Het is een kwestie van mapping:
http://www.rocrail.net/doc/rocrail-wrappers/wrapper-en.html#jsmap
Als je D-Pad andere waarden geeft: (rocgui trace with debug lines)
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
Function button mapping: (rocgui trace)
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
Het nummer correspondeert met het nummer van de gamepad knop vermindert met 1. In dit voorbeeld zijn de knoppen 1 tot 4 gedrukt en geven de standaard waarden van jsmap.
Pas jsmap aan in rocgui.ini voor jouw gamepad. Voorbeeld:
<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"/>