Buchfahrplan generation

In the prototype, the train driver has a document that describes the route to be traveled and what can be expected along the way. This includes distances, stations, speed limits, level crossings and any other relevant data such as when the train is scheduled to arrive and depart at each station. In Germany this is known as the 'Buchfahrplan' (Book schedule). These used to be printed booklets and now electronic schedules are also used in some trains.

Here is an example of a printed Buchfahrplan. Column 1 shows the distance along the track, Ulm starts at km mark 94,0. Column 2 shows the maximum speed limit and the third column indicates what is to be expected, such as turnouts, signals, entry and exit speeds and of course the names of the stations. The last columns indicate the arrival and departure times, in this case for trains 1013 and also 1735.

Earlier this year I added a feature to my layout control software that would allow one to plan a schedule so that people could be responsible for operating a particular station on a layout, or to drive a train manually within such a planned schedule. In addition to generating the schedule for each station, I also decided to also generate a Buchfahrplan for any of the trains involved in the schedule. The Buchfahrplan is created as a text file so that one can print it out or even customize it further. Here is an example of the Buchfahrplan generated for a train leaving Wilsnack main station and travelling to Senklerdorf.
The sawtooth line indicates an upward grade of the track from 53.1 to 53.3. Until this week, the distances in column 1 always started at zero and went up from there based on the length of the tracks in the layout. I have now added a feature in which I can define any items along the track and their positions.

In the example above, the distance are increasing as the train moves further away from the 0,0 origin. A train running the other direction will of course show the distances decreasing from 53.8 to 52.3

Here is my screen for defining the items along any piece of track:

In this example, track 2 which is in Wilsnack Hbf. You can see how the data for Gleis 2 is used when generating the part of the trip in the Buchfahrplan.

In order to add some distance between points on the layout, I am placing the distance marker signs along the track at approximately 1:100 scale. This means that 1cm on the layout represents about 1m of distance. Signs are thus placed approximately every 2m along the layout, corresponding to the prototypical marking of every 200m of track.

The user interface compares the length of the track in question to the kilometer markings defined and shows how close I am to the 1:100 scale. This is useful as a check against entering a distance that is wildly incorrect.

Any text can be entered for any distance point but I have preset codes for the following objects: Bridge, Tunnel, Turnout, Signal (Hp/Vr/Ve), Whistle points, station entry and exit, level crossing, sharp curves, telephones, buffers, boarding limitations and also points where the distance points are not contiguous. This can occur when a railway is shortened or lengthened, creating a gap or an overlap of the distances.