In the previous blog post you’ll remember we discussed changes to push to make switches, specifically dropping support for the state machine and choosing instead to send a “switch pressed” event across the network.
This works great for our boards, however it was noted that JMRI needs to see a “throws” or “closed” message. This is incompatible with our desire for stateless operation.
We’ve back pedalled a little and added both stateless and stateful modes for pushbuttons, thereby restoring the love for JMRI.
Inputs to the Panel Controller or Input-32 modules can now be any of the following:
|Push to make (stateless)
|Send a button is pressed message every time. It’s up to the receiving device to toggle or take appropriate action, such as move a servo from one side to the other. This is the default option.
|Push to make (stateful)
|A local state machine will send an ON or an OFF with each button press.
|ON OFF switch
|Block detector for train on track indication.
|Points position sensor
|Points position for those why choose to measure it at the point blade instead of the motor position.
|Start of day
|Sends a global request for each board’s status. If all System boards came online at the exact time this would not be necessary, however Wi-Fi tends to make the board boot up duration less predictable. When the button is pressed, System2 builds a list of all boards on the network and coordinates requests asking each board to transmit their status. Every board that’s interested will receive an update of the actual position reported thereby synchronising your system. This option tends to be of use to larger layouts with many System2 boards.
Use the feedback channels to indicate the position of a device. This is automatically configured if using the EasyConfig option.