Changes for page Documentation
Last modified by Soeren Domroes on 2025/01/30 12:05
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. nbw1 +XWiki.als - Content
-
... ... @@ -1,5 +1,177 @@ 1 - Toget informationsabout 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 -9471 5151 +9471001 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471 515/Documentation1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471001/Documentation