Home | Store | About | Progress | TNP | Videos | Visit | Links Main Menu TMRC Store About TMRC Progress About the TNP Videos Visit the Clubroom Links
System 3 Display

System 3 Display Software

This page is sorta dull. The next one has pictures. Feel free to skip ahead.

Development of the software cab

When the System 3 block cards were first connected to the rails in January, there was no easy way to send commands to the server. The System 3 server, written in Java, includes a telnet server, allowing other processes to connect to it through a network connection. The only way to send commands to the server, and through the server to the block cards, was to use an obscure and error-prone command line interface. The problem with this was that the server would kick you off for most any syntax error.

The initial objective in developing the display software was to make it possible to run trains without needing to use the command line interface. Python and the Tkinter GUI system were selected for their ease of use. In addition to Tkinter, the standard Python library includes many useful functions for opening network connections, starting and stopping threads, and lots of other things that would be useful as the program's functionality expanded.

Initially the program was simple. It opened a window on the computer and connected to the server. Through the window a user could enter a train name and a block number. The program would then send a message to the server telling it to create a train in that block (this command tells the server that it should consider the objects, usually locomotives, occupying the specified block as a train). The program would then create a second window, called a software cab, that displayed basic controls the operator could use to set the speed and direction of the train, or cause ot to drop out of the system. At this point, the program made no attempt to process any of the data the server was sending its way. So the prorgam had no idea if the block the user entered was occupied, or if the server actually responded to the commands sent to it. But it was a great improvement in usability, allowing users to create and run trains using a software cab, or SCab, giving the display software the unpleasant name of SCab Picker.

Over the course of several months, more functionality has been added to the SCab program. The program now processes messages from the server, telling it the status of the system and layout, displays a graphical view of the layout, allows switch throwing and train creation by clicking on the layout diagram, provides a means to edit the graphical layout display and other useful things. The display software has now replaced all the functionality present in RSIG, making it a practical tool to operate the layout and run trains.


Tech Model Railroad Club of MIT
MIT Room N52-118
265 Massachusetts Avenue
Cambridge, MA 02139

+1 617 253-3269
Email: tmrc-web@mit.edu