Changes for page Documentation
Last modified by Soeren Domroes on 2025/01/30 12:05
Change comment:
Update document after refactoring.
Summary
-
Page properties (3 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Parent
-
... ... @@ -1,0 +1,1 @@ 1 +SS14Railway.Railway Project (summer term 2014).WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. krat1 +XWiki.als - Content
-
... ... @@ -1,187 +1,4 @@ 1 - ==Trains==1 +The documentation of the Railway-Project is separated into two parts. 2 2 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. 5 - 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 -Contact reading in triggers should only used when it is clearly determined which train will fire the contact. 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 -* SLOW: for the stations 129 -* CAUTION: for slowdown (and optional points) 130 -* NORMAL: for the other tracks 131 - 132 -== Codestyle == 133 - 134 -Use entry-/exit-actions instead of actions on transitions, if possible. 135 -If using hostcode, only use functions delivered by our own C-Interface and not the Höhrmann-API. 136 - 137 -== Mutual Exclusion == 138 - 139 -bool <track>_req[<trainAmount>] contains the requests for each track and train. Before the availability of arrays, we used bool <train>_<track>_req. 140 -int <track>_perm contains the trainnumber of the train, who is allowed to drive on <track>. 141 - 142 -== Deadlock Prevention == 143 - 144 -An example controller for deadlock prevention is located in// rail-repo: docs/deadlocks/resolve_deadlock.sct// 145 - 146 -Sidings should only be used in one direction. 147 - 148 -Trains trying to leave a station in order to use KIO_LN_0 or KIO_LN_1 should, if they do not receive the locks for all segments, release them for two ticks. 149 - 150 -= C Controller = 151 - 152 -The C controller wraps the basic railway interface and creates an correct environment to run the generated controller. 153 - 154 -== Make Script == 155 - 156 -A make script written in Python is located in rail-repo: code/make.py 157 - 158 -This script will compiel the whole controller for simulation or real railway and optionally executes it.// 159 -// 160 - 161 -Calling**// python// //make.py//** without further command-line arguments will print a help message with all available command line options. 162 - 163 -Make Script Features: 164 - 165 -* Header-file will be included automatically 166 - 167 -Results are located in //rail-repo: code/build/// 168 - 169 -== Railway Interface == 170 - 171 -Provided functions are defined in// rail-repo: code/hostcode/controller.h// 172 - 173 -== Interaction == 174 - 175 -=== Quit, Pause and Cleanup === 176 - 177 -Quit, pause and cleanup functionality is handled in the c interface. 178 - 179 -**CTRL+C** (SIGINT)** **quits the controller 180 - 181 -**CTRL+\** (SIGQUIT)** **cleans up 182 - 183 -**CTRL+Z **(SIGSTP) pauses and continues 184 - 185 - 186 - 187 - 3 +1. [[Modelling of the controller logic in SCCharts>>doc:SCChart Controller]]. 4 +1. [[C code environment to connect to the railway and execute the compiled SCChart controller>>doc:C Controller]].
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -947 10431 +9470891 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/947 1043/Documentation1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9470891/Documentation