-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathModel.txt
52 lines (38 loc) · 1.26 KB
/
Model.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Entities: Interlocking, Train, RadioBlockCenter, Eurobalise, Controller
Types: MovementAuthority, EndOfAuthority, Track (CoordinateFrom, CoordinateTo, rbc, set of eb)
Controller
+ Run() - this sends random route requests to Interlocking every 500ms
+ AcknowledgeRouteRequest() : bool
Interlocking:
- Control table
- TrackOccupied(map track to bool)
- RoutesAvaliable : set of Route
- RouteSet
- PointsLocked
+ RequestToProceed(Route) : bool (If route set, lock route, send proceed granted to RBC)
+ RouteRequest(Route): void
+ TrackOccupied(Track) - from Eurobalise
Train
- Position
- Speed (0 and maxspeed)
- MaxSpeed
- MovementAuthorities : seq of MovementAuthority
- currentTrack : Track
- running : bool
- rbc: RadioBlockControl
- eb: Eurobalise
+ UpdateTrack(call rb, get track)
+ StopTrain() (speed:=0, running=false)
Route:
- set of Track
RadioBlockCenter
- eurobaliseesCoverered (set of Eurobalise)
- availableRoutes (set of routes) - from interlocking
- designatedRoutes (set of routes) - from trains
- occupiedRoutes(set of routes) - from interlocking
+ RequestMovementAuthoriy() : MovementAuthority
Eurobalise (trackside)
- BlockSection (Track1, Track2)
+ GetTrackPosition(set of Track)
+ Movement() - Track (from train)
+ SetTracks() - void (from interlocking)