La versione 3.7 di Train Director introduce la funzionalità di server, con la quale altri programmi possono comunicare con il simulatore. Questa funzionalità è utile per interfacciare dispositivi esterni o per comunicare con programmi ausiliari per rendere ancora più realistica la simulazione. La funzione di server semplicemente invia tutte le linee testo ricevute al gestore dei comandi. Tale gestore è lo stesso che è già usato per i pedali e per la funzione "do" degli script. Perciò molte delle azioni che possono essere eseguite tramite i pedali e gli script ora possono anche essere eseguite tramite l'interfaccia server.

In aggiunta alla ricezione comandi, Train Director invia messaggi al programma remoto connesso ogni volta che l'utente opera sul programma, per esempio quando gira uno scambio o quando abilita un segnale.

Perciò il programma remoto può prendere decisioni in base a tali eventi. Con questa nuova funzione sono possibili nuovi scenari, come:

  • controllare Train Director da un banco ACEI fisico. Infatti questa è stata la ragione principale per cui ho implementato questa funzione, dato che alcuni utenti avevano espresso interesse nel costruirsi il proprio banco di controllo (chiaramente in versione casereccia).
  • collegare 2 o più simulatori per controllare uno scenario in più di una persona. Sebbene questo richieda l'uso di un programma aggiuntivo per far rimbalzare i vari eventi ai vari programmi collegati, almeno adesso è possibile fare cio senza dover cambiare i sorgenti di Train Director.
  • potrebbe diventare possibile automatizzare una simulazione semplicemente registrando tutti gli eventi man mano che il giocatore procede nella simulazione e quindi inviarli nuovamente a Train Director tramite l'interfaccia server.
  • diventa possibile usare diversi linguaggi di programmazione per interagire con Train Director, come per esempio python, perl, Visual Basic o C#. Non c'è piu' bisogno di imparare il C o il C++ e di conoscere i meandri dei sorgenti di Train Director (parte dei quali sono stati scritti piu' di 10 anni fa).

Come usare l'interfaccia server

Quando Train Director parte, apre una connessione alla porta 8900. Un programma esterno può connettersi a questa porta e comunicare con Train Director mandando semplici comandi al simulatore.

Su Windows si può usare il comando DOS telnet o l'emulatore di terminale PuTTY (gratis) e usare la seguente configurazione per connettersi a Train Director:

Su Linux e MacOS X si può usare telnet per connettersi al server:

  $   telnet localhost 8900
In ogni caso, una volta che la connessione è stabilita, si possono mandare comandi al simulatore:

La lista dei comandi e' indicata nella pagina degli script.

Se il giocatore manipola il simulatore tramite l'interfaccia grafica, per esempio cliccando su uno scambio, un evento verrà inviato al programma connesso con il tempo simulato al momento dell'esecuzione dell'evento, seguito dal comando corrispondente all'evento:

Questo è quanto per ora. E' possibile che in futuro vengano aggiunti altri messaggi e comandi per coprire casi nuovi, ma ciò sarà fatto in modo da mantenere la compatibilità con le vecchie versioni.


Questa pagina è mantenuta da g_caprino@gmail.com
(Togliere il _ prima di inviare la mail.)
Data di creazione: 11 Maggio 2010