The Hardwarecontrol should give an abstraction for controlling the Hardware which also makes sure some of the base rules apply.Tasks/Rules the Hardwarecontrol should manage:
Features
- train tracking
- block locking/crash avoidance
- speed control: slow down(/speed up?)/parking in a segment
- same speed policy (same speed on all tracks beneath a train)
- automatic signal management
- automatic point branching
...
Interacting parts
The track is split up into the track into following smaller interacting parts to achive this:
...
:
1 Track, 2 Points, has 1 incoming, 2 outgoing and 1 bi-directional track where outgoing trains come from the main track and incoming go to the side track
Segment | 1 Track, 2 Contacts, 1 Signal |
---|
...
Segment_bid (bi-directional) |
---|
...
1 Track, 2 Contacts, 2 Signals |
...
Track |
---|
...
1 Track |
...
Track_bid |
---|
...
1 Track |
...
Point_in |
---|
...
1 Point with 2 incoming and 1 outgoing tracks |
...
Point_out |
---|
...
1 Point with 1 incoming and 2 outgoing tracks |
...
Point_bid |
---|
...
1 Point, 2 to 1 bi-directional point |
...
Cross_in |
---|
...
1 Track, 2 Points, has 2 incoming, 1 outgoing and 1 bi-directional track where incoming trains get on the main track and outgoing come from the side track |
...
Cross_out |
---|
...
- ()
- ()
- ()
- ()
- ()
- ()
- ()
- ()
- ()
The differenciation of bi-directional and uni-directional Elements is done to have simpler Parts for the unidirectional parts.
...