Changes for page Documentation
Last modified by Soeren Domroes on 2025/01/30 12:05
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.n bw1 +XWiki.sna - Content
-
... ... @@ -1,13 +1,156 @@ 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 - Informationsaboutbuilding thecontroller and the Cinterface are presented at [[doc:Interfacingand Building]].6 +=== Train numbering === 6 6 7 - The (currently still developing)TCP Communication isdescribedat[[doc:TCPCommunication]].8 +Variable **trainNum** is used to identify trains. 8 8 9 - ----10 +The assignment of numbers to trains is chosen as followed 10 10 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 +))) 11 11 73 +== Logging == 12 12 13 -{{widget height="315" width="560" url="http://www.youtube.com/embed/Mb59Cvt9a6Q"/}} 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 + 121 + 122 +=== TrainController === 123 + 124 +Train-Schedules should be modelled by putting together the Station-to-Station-Controllers for every train in individual regions. 125 + 126 +=== Speed: === 127 + 128 + 129 + 130 +* SLOW: for the stations 131 +* CAUTION: for points and slowdown 132 +* NORMAL: for the other tracks 133 + 134 +== Codestyle == 135 + 136 +Use entry-/exit-actions instead of actions on transitions, if possible. 137 +If using hostcode, only use functions delivered by our own C-Interface and not the Höhrmann-API. 138 + 139 +== Mutual Exclusion == 140 + 141 +bool <track>_req[<trainAmount>] contains the requests for each track and train. Before the availability of arrays, we used bool <train>_<track>_req. 142 +int <track>_perm contains the trainnumber of the train, who is allowed to drive on <track>. 143 + 144 +== Quit, Pause and Cleanup == 145 + 146 +Quit, pause and cleanup functionality is handled in the c interface. 147 + 148 +**CTRL+C** (SIGINT)** **quits the controller 149 + 150 +**CTRL+\** (SIGQUIT)** **cleans up 151 + 152 +**CTRL+Z **(SIGSTP) pauses and continues 153 + 154 + 155 + 156 +
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -947 15161 +9470996 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/947 1516/Documentation1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9470996/Documentation