Model Train-related Notes Blog -- these are personal notes and musings on the subject of model train control, automation, electronics, or whatever I find interesting. I also have more posts in a blog dedicated to the maintenance of the Randall Museum Model Railroad.

2022-08-03 - Conductor 2: An Update on Implementation

Category Rtac

Although I haven’t posted anything here lately, I’ve spent most of the summer time completing the implementation of the engine for Conductor 2. The new kotlin engine is working well, with a suitable battery of unit tests, and I have a functional simulator to exercise the engine before I try it at the museum. I also converted the latest Conductor 1 script to the new Conductor 2 DSL. It’s all in the bitbucket repo under the dev branch:

We can compare the Conductor 1 vs Conductor 2 scripts right here:

Todo list so far:

  • ✅ Block sequence management.
  • ✅ Implement regular timers.
  • ✅ Implement after-timers.
  • ✅ Remove the need for “reset timer” that can’t work in 2k.
  • ✅ Simulator: display sensors, blocks, turnouts + simulation toggle.
  • ✅ Simulator: display engines + location on track (current node + direction).
  • ✅ Simulation: Simulate engine movement.
  • ✅ Implement Throttle to JMRI. Daggerize.
  • ✅ Implement Sensors / blocks. Daggerize.
  • ✅ Blocks are a copy-paste of Sensors right now.
  • ✅ Implement Turnouts. Daggerize.
  • ✅ Support error recovery mode.
  • ✅ Store current state / reload.
  • ✅ Compute start state + recovery method.
  • ✅ Throttle customization for light, bell, sound. Done via functions for now.
  • ❌ Timeout detection (from node to node).
  • ❌ “Flaky sensor” detection and compensation.

Actual deployment:

  • ✅ Integration with JrmiProvider.
  • ✅ Throttles, Sensors, Turnouts.
  • ✅ KV Server.
  • ✅ Export variables in onExecHandle.
  • ✅ ZeroConf advertising.
  • ✅ JSON Server.
  • ✅ GA export.

There are only two items left to complete on the list. More importantly, this is now ready for actual trial at the museum.


 Generated on 2024-04-22 by Rig4j 0.1-Exp-e7e2d73