INICIO Train Simulator Lua Script Alternativa al RailDriver

Se ha llevado a cabo la migración total de los datos al nuevo sistema del foro, durante los próximos días se realizarán diversos trabajos internos, por ello los nuevos registros están desactivados y algunas funciones pueden presentar problemas. Rogamos disculpéis las molestias. (October 04, 2024) x

Alternativa al RailDriver

Alternativa al RailDriver

 
  • 0 voto(s) - 0 Media
 
eleektro
Junior Member
9
11-10-2017, 12:10 AM
#1
Buenas noches, os voy a hablar sobre lo que llevo un tiempo tramando. Estoy en desarrollo de un controlador totalmente personalizado para Train Simulator, alternativa al, en mi opinión, caro RailDriver. (Bueno, más que caro... es que me gusta meterme en fregaos)

Para esto, el proyecto tiene claramente dos vertientes: desarrollo software y desarrollo hardware. Os voy a hablar aquí de la primera: el software.

Llevo un tiempo implementando en C# un programa que comunica con la DLL del RailDriver con la que consigo pasar los parámetros del HUD de Train Simulator. Esto incluye los mandos del tren, valores del motor, datos de la ruta, posición geográfica... Todos estos datos, una vez capturados, hago dos cosas con ellos: por un lado los retransmito vía UDP para que otro equipo las recoja (otro equipo puede ser el procesador del propio controlador físico que construiré, una interfaz web, una panta LCD, lo que sea) y por otro lado los aprovecho en el propio programa para poder controlar el tren desde la misma aplicación.

Vale, ya os he dado lo suficiente la chapa con todo esto. Ahora es cuando - espero - algún veterano programador de este querido juego me pueda echar una mano. No estoy conforme con todos los parámetros que consigo, quiero más!!! Podéis aportarme algún enfoque? A través de un complemento en forma de script LUA - por ejemplo - con el que exportar datos sobre estados de señales, no sé, me vengo arriba y pienso en un controlador de desvíos... Me gustaría poder contar con los mismos datos que cuenta uno cuando escribe en LUA para el juego, por decir algo.

Os adjunto un par de capturas, la de la ventana principal que controla la conexión UDP por un lado y la conexión con RailDriver.dll por otro es esta que sigue:

   

Y esta otra muestra algún que otro mando del tren y un mapa con la ubicación:

   

No creo que haga falta decir que esto no es ni una beta, es alpha a tope! No me he centrado mucho en los controles en pantalla en sí, estoy dándole duro a la clase que controla la comunicación con RailDriver.dll que la verdad que para alguna cosa me trae de cabeza, pero está ya el tema encauzao.

Un saludo a todos, espero que me podáis dar luz sobre todo esto.

eleektro
11-10-2017, 12:10 AM #1

Buenas noches, os voy a hablar sobre lo que llevo un tiempo tramando. Estoy en desarrollo de un controlador totalmente personalizado para Train Simulator, alternativa al, en mi opinión, caro RailDriver. (Bueno, más que caro... es que me gusta meterme en fregaos)

Para esto, el proyecto tiene claramente dos vertientes: desarrollo software y desarrollo hardware. Os voy a hablar aquí de la primera: el software.

Llevo un tiempo implementando en C# un programa que comunica con la DLL del RailDriver con la que consigo pasar los parámetros del HUD de Train Simulator. Esto incluye los mandos del tren, valores del motor, datos de la ruta, posición geográfica... Todos estos datos, una vez capturados, hago dos cosas con ellos: por un lado los retransmito vía UDP para que otro equipo las recoja (otro equipo puede ser el procesador del propio controlador físico que construiré, una interfaz web, una panta LCD, lo que sea) y por otro lado los aprovecho en el propio programa para poder controlar el tren desde la misma aplicación.

Vale, ya os he dado lo suficiente la chapa con todo esto. Ahora es cuando - espero - algún veterano programador de este querido juego me pueda echar una mano. No estoy conforme con todos los parámetros que consigo, quiero más!!! Podéis aportarme algún enfoque? A través de un complemento en forma de script LUA - por ejemplo - con el que exportar datos sobre estados de señales, no sé, me vengo arriba y pienso en un controlador de desvíos... Me gustaría poder contar con los mismos datos que cuenta uno cuando escribe en LUA para el juego, por decir algo.

Os adjunto un par de capturas, la de la ventana principal que controla la conexión UDP por un lado y la conexión con RailDriver.dll por otro es esta que sigue:

   

Y esta otra muestra algún que otro mando del tren y un mapa con la ubicación:

   

No creo que haga falta decir que esto no es ni una beta, es alpha a tope! No me he centrado mucho en los controles en pantalla en sí, estoy dándole duro a la clase que controla la comunicación con RailDriver.dll que la verdad que para alguna cosa me trae de cabeza, pero está ya el tema encauzao.

Un saludo a todos, espero que me podáis dar luz sobre todo esto.


eleektro
Junior Member
9
01-28-2018, 10:04 PM
#2
Buenas! Sigo con el desarrollo de mi proyecto, hoy os escribo para contaros novedades. Lejos de estar parado todo este tiempo, he estado trabajando en la idea de obtener más datos del simulador. La novedad es que ahora puedo exportar/importar datos del simulador a mi aplicación, y por tanto, allá donde quiera a través de UDP. Al final he conseguido hacerlo inyectando código lua en forma de ScenarioScript. Esta técnica funciona tanto en un escenario que no tenga script o en uno que ya lo tenga existente agregándose a éste sin variarlo. Funciona estupendamente en todos los casos menos en un escenario de tipo Quick Drive... en este aspecto sigo trabajando.

[Imagen: 2018_01_28_22_57_05_TS16_UDPServer_Lua_S...udp_se.png]

Aquí arriba podéis ver un extracto del script que importa/exporta datos de Railworks, está escrito en Lua. Por el momento he desarrollado la lectura de datos del simulador hacia el exterior, el camino inverso vendrá después del ajuste fino de la lectura. Por el trabajo que hace, a esta parte del proyecto la llamo 'Lua Injector'.

También estoy trabajando con la idea de poder usar librerías de Lua 5.1 en adelante con la versión de Lua que ejecuta Railworks, que es 5.0.2. De momento consigo cargar el modulo que hace la compatibilidad entre versiones, esta es 'compat-5.1'. Pero no consigo cargar los módulos versión > 5.1... Sigo con ello.

[Imagen: 2018_01_28_20_56_08_TS16_UDPServer.png]

En esta otra captura podéis ver ya en la interfaz del programa los nuevos datos, los separo por categorías:
  • Datos sobre el propio script: tiempo de ejecución, debug...
  • Datos sobre el escenario: hora, estación (invierno, verano...)
  • Datos sobre la composición: peso, longitud...
  • Datos sobre la vía: radio, gradiente...
  • Datos sobre la velocidad: velocidad actual
  • Datos sobre los límites de velocidad: distancia, tipo, límite...
  • Datos sobre el estado de las señales: distancia, estado, tipo, aspecto...

Y de momento esto es todo, como veis sigo sin tocar apenas la interfaz, eso vendrá después. Todo el trabajo de momento está 'bajo el capó'. Esto es laborioso y yo no soy experto programador, sólo me defiendo!

Un saludo a todos!

eleektro
01-28-2018, 10:04 PM #2

Buenas! Sigo con el desarrollo de mi proyecto, hoy os escribo para contaros novedades. Lejos de estar parado todo este tiempo, he estado trabajando en la idea de obtener más datos del simulador. La novedad es que ahora puedo exportar/importar datos del simulador a mi aplicación, y por tanto, allá donde quiera a través de UDP. Al final he conseguido hacerlo inyectando código lua en forma de ScenarioScript. Esta técnica funciona tanto en un escenario que no tenga script o en uno que ya lo tenga existente agregándose a éste sin variarlo. Funciona estupendamente en todos los casos menos en un escenario de tipo Quick Drive... en este aspecto sigo trabajando.

[Imagen: 2018_01_28_22_57_05_TS16_UDPServer_Lua_S...udp_se.png]

Aquí arriba podéis ver un extracto del script que importa/exporta datos de Railworks, está escrito en Lua. Por el momento he desarrollado la lectura de datos del simulador hacia el exterior, el camino inverso vendrá después del ajuste fino de la lectura. Por el trabajo que hace, a esta parte del proyecto la llamo 'Lua Injector'.

También estoy trabajando con la idea de poder usar librerías de Lua 5.1 en adelante con la versión de Lua que ejecuta Railworks, que es 5.0.2. De momento consigo cargar el modulo que hace la compatibilidad entre versiones, esta es 'compat-5.1'. Pero no consigo cargar los módulos versión > 5.1... Sigo con ello.

[Imagen: 2018_01_28_20_56_08_TS16_UDPServer.png]

En esta otra captura podéis ver ya en la interfaz del programa los nuevos datos, los separo por categorías:

  • Datos sobre el propio script: tiempo de ejecución, debug...
  • Datos sobre el escenario: hora, estación (invierno, verano...)
  • Datos sobre la composición: peso, longitud...
  • Datos sobre la vía: radio, gradiente...
  • Datos sobre la velocidad: velocidad actual
  • Datos sobre los límites de velocidad: distancia, tipo, límite...
  • Datos sobre el estado de las señales: distancia, estado, tipo, aspecto...

Y de momento esto es todo, como veis sigo sin tocar apenas la interfaz, eso vendrá después. Todo el trabajo de momento está 'bajo el capó'. Esto es laborioso y yo no soy experto programador, sólo me defiendo!

Un saludo a todos!


TREME
Junior Member
30
02-01-2018, 01:35 PM
#3
Buenas, joder va genial, no lo habia visto hasta ahora pero vamos quedo impresionado, buen trabajo, espero resultados pronto o el enlace para probarlo

un saludo

Ivan

Trabajando en la señalización en cabina
TREME
02-01-2018, 01:35 PM #3

Buenas, joder va genial, no lo habia visto hasta ahora pero vamos quedo impresionado, buen trabajo, espero resultados pronto o el enlace para probarlo

un saludo

Ivan


Trabajando en la señalización en cabina

lobomorunga
Member
182
08-25-2018, 11:31 AM
#4
Genial, sigue asi. Que mentes tenemos :app:

lobomorunga
08-25-2018, 11:31 AM #4

Genial, sigue asi. Que mentes tenemos :app:


 
  • 0 voto(s) - 0 Media
Usuarios navegando en este tema:
 1 invitado(s)
Usuarios navegando en este tema:
 1 invitado(s)