The train arrives to Gärsnäs and is supposed to enter the track Sim-GarW at end position (12000). It should move to position 0 and enter Simrishamn. However, it enters the track at start position (Simrishamn) and moves towards Gärsnäs.
The train state model needs to handle the reversed scenario. A bool reversedTraffic with a get/set method is added to the track object.
I made changes in the methods train::readyToRunning, train::runningState and train::runningToOpening.
The train needs to consider its direction (normal or reversed) when entering a track. |
- virtualPosition = position, if train isn't travelling in reversed direction,
- virtualPosition = track length - position, if train is travelling in reversed direction
With these changes, the train is able to travel in reversed direction.
A crash was found for train::setTrackPosition(0). When it is updating the position, the method track::getCoordinatesFromPosition asserted if the position was 0, since it was trying to access coordinates at index -1.
No comments:
Post a Comment