<
From version < 17.1 >
edited by nbw
on 2014/06/22 18:54
To version < 14.1 >
edited by Alexander Schulz-Rosengarten
on 2014/06/18 13:11
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.nbw
1 +XWiki.als
Content
... ... @@ -1,5 +1,177 @@
1 -To get informations about general controller design and composition of the different SCCharts please refer to [[doc:Basic design]].
1 +== Trains ==
2 2  
3 -For more informations about the defined Interfaces and the rulesets, the group has agreed upon, see [[doc:Interfaces and Rulesets]].
3 +Each train has a trainnumber. The trainnumber is for prioritization, when multiple trains compete for the same track. Lower numbers mean higher priorities, e.g. train 0 has the highest priority. Priorities can't be changed dynamicly.
4 +Each train has one home-track at each station.
4 4  
5 -Informations about building the controller and the C interface are presented at [[doc:Interfacing and Building]].
6 +=== Train numbering ===
7 +
8 +Variable **trainNum** is used to identify trains.
9 +
10 +The assignment of numbers to trains is chosen as followed
11 +
12 +|=(((
13 +trainNum
14 +)))|=(((
15 +Starting track
16 +)))
17 +|(((
18 +0
19 +)))|(((
20 +KH_ST_1
21 +)))
22 +|(((
23 +1
24 +)))|(((
25 +KH_ST_2
26 +)))
27 +|(((
28 +2
29 +)))|(((
30 +KH_ST_3 (r)
31 +)))
32 +|(((
33 +3
34 +)))|(((
35 +KH_ST_4 (r)
36 +)))
37 +|(((
38 +4
39 +)))|(((
40 +IC_ST_3
41 +)))
42 +|(((
43 +5
44 +)))|(((
45 +IC_ST_2
46 +)))
47 +|(((
48 +6
49 +)))|(((
50 +OC_ST_2
51 +)))
52 +|(((
53 +7
54 +)))|(((
55 +OC_ST_1
56 +)))
57 +|(((
58 +8
59 +)))|(((
60 +KH_ST_5
61 +)))
62 +|(((
63 +9
64 +)))|(((
65 +IC_ST_1
66 +)))
67 +|(((
68 +10
69 +)))|(((
70 +OC_ST_3
71 +)))
72 +
73 +== Logging ==
74 +
75 +Variable **debug** indicates verbose logging.
76 +
77 +Prefix of all log messages must be :** [trainnum][ST-ST]**
78 +
79 +Use **println** function to produce textual output. Do not use printf or other io functions, because output may not be flushed correctly.
80 +
81 +== Tracks ==
82 +
83 +Stopping on tracks without contacts is permitted. Therefore they must be reserved and used with an adjacent track.
84 +Each station has one drive-through track for each possible direction:
85 +
86 +|=(((
87 +station
88 +)))|=(((
89 +drive-through track
90 +)))
91 +|(((
92 +IC_station
93 +)))|(((
94 +IC_ST_1
95 +)))
96 +|(((
97 +OC_station
98 +)))|(((
99 +OC_ST_3
100 +)))
101 +|(((
102 +KH_station
103 +)))|(((
104 +KH_ST_5
105 +)))
106 +|(% colspan="1" %)(% colspan="1" %)
107 +(((
108 +KH_station(r)
109 +)))|(% colspan="1" %)(% colspan="1" %)
110 +(((
111 +KH_ST_1
112 +)))
113 +
114 +=== Station-to-Station ===
115 +
116 +Fuctions **void railArrival(int train, int station)** and **int railDeparture(int train)** should be used at the end of every Station-to-Station-Controller.
117 +
118 +At the end of every Station-to-Station-Controller the trains should stand in one station, because every controller starts with the train in standstill.
119 +
120 +=== TrainController ===
121 +
122 +Train-Schedules should be modelled by putting together the Station-to-Station-Controllers for every train in individual regions.
123 +
124 +=== Speed: ===
125 +
126 +* SLOW: for the stations
127 +* CAUTION: for slowdown (and optional points)
128 +* NORMAL: for the other tracks
129 +
130 +== Codestyle ==
131 +
132 +Use entry-/exit-actions instead of actions on transitions, if possible.
133 +If using hostcode, only use functions delivered by our own C-Interface and not the Höhrmann-API.
134 +
135 +== Mutual Exclusion ==
136 +
137 +bool <track>_req[<trainAmount>] contains the requests for each track and train. Before the availability of arrays, we used bool <train>_<track>_req.
138 +int <track>_perm contains the trainnumber of the train, who is allowed to drive on <track>.
139 +
140 += C Controller =
141 +
142 +The C controller wraps the basic railway interface and creates an correct environment to run the generated controller.
143 +
144 +== Make Script ==
145 +
146 +A make script written in Python is located in rail-repo: code/make.py
147 +
148 +This script will compiel the whole controller for simulation or real railway and optionally executes it.//
149 +//
150 +
151 +Calling**// python// //make.py//** without further command-line arguments will print a help message with all available command line options.
152 +
153 +Make Script Features:
154 +
155 +* Header-file will be included automatically
156 +
157 +Results are located in //rail-repo: code/build///
158 +
159 +== Railway Interface ==
160 +
161 +Provided functions are defined in// rail-repo: code/hostcode/controller.h//
162 +
163 +== Interaction ==
164 +
165 +=== Quit, Pause and Cleanup ===
166 +
167 +Quit, pause and cleanup functionality is handled in the c interface.
168 +
169 +**CTRL+C** (SIGINT)** **quits the controller
170 +
171 +**CTRL+\** (SIGQUIT)** **cleans up
172 +
173 +**CTRL+Z **(SIGSTP) pauses and continues
174 +
175 +
176 +
177 +
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -9471515
1 +9471001
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471515/Documentation
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471001/Documentation