Table of Contents
Supporto Gamepad
- Menu | Configurazione | Aggiornamento programma | Pannello locomotive | Scorciatoie da tastiera | Stato centrale digitale | Utilizzo di più client di visualizzazione | Rapporti | Connessione ad un server remoto | Cartelle di lavoro | Opzioni linea di comando | Rappresentare un problema
Gamepad
Rocrail supporta fino a 4 gamepad per controllare 4 locomotive indipendenti. Se un gamepad è connesso, può essere associata una locomotiva tramite la finestra di selezione visualizzabile premendo il tasto 10 del gamepad. Con il D-pad (frecce di direzione) si può scorrere l'elenco delle locomitive presenti nella finestra di selezione.
Mappatura delle azioni predefinite
Pulsante | Azione |
1 - 4 | funzione decoder 1 - 4 |
5 | cambio direzione |
6 | luci on/off |
7 | ferma loco (porta la velocità a 0) |
8 | dai alimentazione al tracciato |
9 | togli alimentazione al tracciato |
10 | seleziona locomotiva (apre/chiude finestra di selezione) |
D-pad | aumenta/diminuisce velocità, scorre elenco locomotive |
I pulsanti predefiniti possono essere modificati nella sezione <jsmap> del file rocrail.ini, http://www.rocrail.net/doc/rocgui-wrappers/wrapper-en.html#jsmap. L'indice dei valori parte da 0. (mapping 0 è il pulsante 1)
Come mappare un GamePad
Dopo aver connesso il GamePad, alla pressione dei tasti e delle direzioni otterrete i seguenti messaggi nel registro eventi:
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 è un pulsante, type 2 è una direzione. Il numero è il valore che dovrebbe essere inserito nel jsmap. Dalla versione 966 è possibile impostare quei valori nella finestra proprietà di Rocview: http://rocrail.sourceforge.net/rocguiini.mpg
In questo modo, qualora si volesse associare una azione ad un tasto, immettere in jmap il numero mostrato nella finestra degli eventi.
Impostazione tramite la finestra di Rocview
Possibili valori:
- V: tasto usato per accelerare/decelerare
- Repeti: intervallo di ripetizione automatica in caso il tasto di accelerazione è tenuto premuto, il valore è in msec.
- numeri piccoli innalzano la velocità di ripetizione higher repeat rate.
- "0" significa autorepeat = off
- Direzioni: tasto per cambiare la direzione, alla pressione la locomotiva rallenterà, fermerà e ripartirà nella direzione opposta
- Arresta: tasto per fermare la locomotiva
- Passi Decoder: definisce quanti passi decoder sono accelerati/decelerati ad ogni pressione del tasto
- Luci: tasto per scambiare le luci
- F1-12: tasto per passare da F1 a F12
- "-1" per dissattivare
- on/off: tasto per accendere/spegnere la centrale digitale (non tutte le le centrali digitali possono supportare questa funzione)
Risoluzione problemi
Provare il seguente test in linux:
- aprile una console
- collegare il gamepad
- digitare il comando:
cat /dev/input/js0 oppure cat /dev/js0
- press all buttons one after another starting with button 1
- press the D-Pad in all direction.
L'output della console dovrebbe mostrare qualcosa del genere (dipende dalle impostazioni della console):
Il Gamepad non è utilizzabile se non ci sono output alla pressione di un tasto o del D-Pad.
Eseguire Rocview in una console:
./rocview -debug
- collegare il the gamepad
- toccare tutti i tasti e il D-Pad come nella precedente prova.
Problemi di mappatura:
http://www.rocrail.net/doc/rocrail-wrappers/wrapper-en.html#jsmap
Se il D-Pad genera differenti valori come i seguenti: (eventi rocview con linee di 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
Mappatura dei tasti funzione: (eventi 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
Il numero corrisponde al numero dei tasti del gamepad button ridotto di 1. Nell'esempio i tasti da 1 a 4 erano premuti e riportano i valori di default del jsmap.
Impostare jsmap nel rocgui.ini per riconoscere il vostro gamepad. Esempio:
<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"/>