Changes for page Basic design

Last modified by nfl on 2025/01/30 12:05

From version 10.1
edited by sna
on 2014/08/06 03:46
Change comment: There is no comment for this version
To version 9.1
edited by csp
on 2014/06/23 14:18
Change comment: updated figure of Mutex_KH, fixed typo

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.sna
1 +XWiki.csp
Content
... ... @@ -54,875 +54,3 @@
54 54  When arriving on a station the train controller **must** first call the function //void railArrival(int train, int station)//. This starts the waiting timer for the train.
55 55  Next the train **must** wait for// int railDeparture(int train)// to return 1.
56 56  After the waiting has finished the controller can reach a final state and pass the control back to the train controller.
57 -
58 -=== Structure ===
59 -
60 -----
61 -
62 -
63 -
64 -
65 -|=(((
66 -{{{input int *_perm;}}}
67 -
68 -{{{output bool *_req[11];}}}
69 -
70 -{{{input int trainNum;}}}
71 -
72 -{{{input int depTrack;}}}
73 -
74 -{{{input int destTrack;}}}
75 -
76 -{{{input bool cleanup;}}}
77 -
78 -{{{input bool debug;}}}
79 -
80 -{{{output int arrTrack;}}}
81 -
82 -{{{int i_arrOnTrack;}}}
83 -
84 -{{{ }}}
85 -
86 -{{{initial state *_ST {}}}
87 -
88 -{{{    entry debug / 'println([trainNum][ST-ST] ... )';}}}
89 -
90 -{{{ }}}
91 -
92 -{{{    initial state waitForPerm {}}}
93 -
94 -{{{        entry / *_ST_4_req[trainNum] = true;}}}
95 -
96 -{{{        entry / *_LN_0_req[trainNum] = true;}}}
97 -
98 -{{{    }}}}
99 -
100 -{{{    --> gotPerm with (*_ST_4_perm == trainNum) & (*_LN_0_perm == trainNum)}}}
101 -
102 -{{{    --> backOff with (*_ST_4_perm == trainNum) | (*_LN_0_perm == trainNum);}}}
103 -
104 -{{{ }}}
105 -
106 -{{{    state backOff}}}
107 -
108 -{{{    --> backOff1;}}}
109 -
110 -{{{ }}}
111 -
112 -{{{    state backOff1 {}}}
113 -
114 -{{{entry / *_ST_4_req[trainNum] = false;}}}
115 -
116 -{{{entry / *_LN_0_req[trainNum] = false;}}}
117 -
118 -{{{    }}}}
119 -
120 -{{{    --> waitForPerm;}}}
121 -
122 -{{{ }}}
123 -
124 -{{{final state gotPerm;}}}
125 -
126 -{{{}}}}
127 -
128 -{{{>-> Dep_*_ST;}}}
129 -
130 -{{{ }}}
131 -
132 -{{{state Dep_IC_ST {}}}
133 -
134 -{{{    entry / 'railPoint(*,STRAIGHT)';}}}
135 -
136 -{{{    entry / 'railSignal(*_LN_0, FWD, RED)';}}}
137 -
138 -{{{    entry / 'railTrack(*_LN_0,FWD,trainNum,NORMAL)';}}}
139 -
140 -{{{    entry / 'railTrack(*_ST_4,FWD,trainNum,NORMAL)';}}}
141 -
142 -{{{    entry depTrack == 1 / 'railSignal(*_ST_1, FWD, GREEN)';}}}
143 -
144 -{{{    entry depTrack == 2 / 'railSignal(*_ST_2, FWD, GREEN)';}}}
145 -
146 -{{{    entry depTrack == 3 / 'railSignal(*_ST_3, FWD, GREEN)';}}}
147 -
148 -{{{    ..........}}}
149 -
150 -{{{  } --> *_LN_0 with 'railContact(*_LN_0,0)';}}}
151 -
152 -{{{ }}}
153 -
154 -{{{  state *_LN_0 {}}}
155 -
156 -{{{    entry / 'println("[trainNum][ST-ST] Entering *_LN_0")';}}}
157 -
158 -{{{    entry debug / 'println("[trainNum][ST-ST] Requesting permission for *_LN_1")';}}}
159 -
160 -{{{    entry depTrack == 1 / 'railSignal(*_ST_1, FWD, RED)';}}}
161 -
162 -{{{    entry depTrack == 2 / 'railSignal(*_ST_2, FWD, RED)';}}}
163 -
164 -{{{    entry depTrack == 3 / 'railSignal(*_ST_3, FWD, RED)';}}}
165 -
166 -{{{    entry / *_LN_1_req[trainNum] = true;}}}
167 -
168 -{{{ }}}
169 -
170 -{{{    region Travel:}}}
171 -
172 -{{{      initial state Entry}}}
173 -
174 -{{{      --> Continue with 'railContact(*_LN_0,0)' & (*_LN_1_perm == trainNum)}}}
175 -
176 -{{{      --> Slowdown with 'railContact(*_LN_0,0)';}}}
177 -
178 -{{{ }}}
179 -
180 -{{{      state Slowdown {}}}
181 -
182 -{{{        entry debug / 'println("[trainNum][ST-ST] Slowing down on *_LN_0")';}}}
183 -
184 -{{{        entry / 'railTrack(*_LN_0,FWD,trainNum,CAUTION)';}}}
185 -
186 -{{{      }}}}
187 -
188 -{{{      --> Waiting with 'railContact(*_LN_0,1)'}}}
189 -
190 -{{{      --> Continue with *_LN_1_perm == trainNum;}}}
191 -
192 -{{{ }}}
193 -
194 -{{{      state Waiting {}}}
195 -
196 -{{{        entry debug / 'println("[trainNum][ST-ST] Stopping on *_LN_0")';}}}
197 -
198 -{{{        entry / 'railTrackBrake(*_LN_0)';}}}
199 -
200 -{{{      }}}}
201 -
202 -{{{      --> Continue with *_LN_1_perm == trainNum;}}}
203 -
204 -{{{ }}}
205 -
206 -{{{      final state Continue {}}}
207 -
208 -{{{        entry debug / 'println("[trainNum][ST-ST] Continuing on *_LN_0")';}}}
209 -
210 -{{{        entry / 'railSignal(*_LN_0,FWD,GREEN)';}}}
211 -
212 -{{{        entry / 'railTrack(*_LN_0,FWD,trainNum,NORMAL)';}}}
213 -
214 -{{{        entry / 'railTrack(*_LN_1,FWD,trainNum,NORMAL)';}}}
215 -
216 -{{{        entry / 'railSignal(*_LN_1, FWD, RED)';}}}
217 -
218 -{{{      };}}}
219 -
220 -{{{ }}}
221 -
222 -{{{    region Cleanup:}}}
223 -
224 -{{{      initial state Entry}}}
225 -
226 -{{{      --> cleanup with 'railContact(*_LN_0,0)';}}}
227 -
228 -{{{ }}}
229 -
230 -{{{      final state cleanup {}}}
231 -
232 -{{{      entry debug / 'println("[trainNum][ST-ST] Entered *_LN_0 completely")';}}}
233 -
234 -{{{      entry / 'railTrackOff(*_ST_4)';}}}
235 -
236 -{{{      entry / *_ST_4_req[trainNum] = false;}}}
237 -
238 -{{{      };}}}
239 -
240 -{{{  }>-> *_LN_0_*_LN_1;}}}
241 -
242 -{{{ }}}
243 -
244 -{{{  state IC_LN_0_IC_LN_1}}}
245 -
246 -{{{  --> IC_LN_1 with 'railContact(IC_LN_1,0)';}}}
247 -
248 -{{{ }}}
249 -
250 -{{{// ...................}}}
251 -
252 -{{{// Set of track segment controlling states such as before}}}
253 -
254 -{{{// ...................}}}
255 -
256 -{{{ }}}
257 -
258 -{{{state *_LN_5 {}}}
259 -
260 -{{{    int perm_all_next_segments = false;}}}
261 -
262 -{{{    entry / 'println("[trainNum][ST-ST] Entering *_LN_5")';}}}
263 -
264 -{{{    entry / 'railSignal(*_LN_4, FWD, RED)';}}}
265 -
266 -{{{ }}}
267 -
268 -{{{    region Travel:}}}
269 -
270 -{{{      initial state Entry}}}
271 -
272 -{{{      --> Continue with 'railContact(*_LN_5,0)' & perm_all_next_segments}}}
273 -
274 -{{{      --> Slowdown with 'railContact(*_LN_5,0)';}}}
275 -
276 -{{{ }}}
277 -
278 -{{{      state Slowdown {}}}
279 -
280 -{{{        entry debug / 'println("[trainNum][ST-ST] Slowing down on *_LN_5")';}}}
281 -
282 -{{{        entry / 'railTrack(*_LN_5,FWD,trainNum,CAUTION)';}}}
283 -
284 -{{{      }}}}
285 -
286 -{{{      --> Waiting with 'railContact(*_LN_5,1)'}}}
287 -
288 -{{{      --> Continue with perm_all_next_segments;}}}
289 -
290 -{{{ }}}
291 -
292 -{{{      state Waiting {}}}
293 -
294 -{{{        entry debug / 'println("[trainNum][ST-ST] Stopping on *_LN_5")';}}}
295 -
296 -{{{        entry / 'railTrackBrake(*_LN_5)';}}}
297 -
298 -{{{      }}}}
299 -
300 -{{{      --> Continue with perm_all_next_segments;}}}
301 -
302 -{{{ }}}
303 -
304 -{{{      final state Continue {}}}
305 -
306 -{{{        entry debug / 'println("[trainNum][ST-ST] Continuing on *_LN_5")';        }}}
307 -
308 -{{{        entry i_arrOnTrack == 1 / 'railTrack(*_ST_1,FWD,trainNum,NORMAL)';}}}
309 -
310 -{{{        entry i_arrOnTrack == 2 / 'railTrack(*_ST_2,FWD,trainNum,NORMAL)';}}}
311 -
312 -{{{        entry i_arrOnTrack == 3 / 'railTrack(*_ST_3,FWD,trainNum,NORMAL)';}}}
313 -
314 -{{{        ----------}}}
315 -
316 -{{{        entry / arrTrack = i_arrOnTrack;}}}
317 -
318 -{{{      };}}}
319 -
320 -{{{ }}}
321 -
322 -{{{    region Cleanup:}}}
323 -
324 -{{{      initial state Entry}}}
325 -
326 -{{{      --> cleanup with 'railContact(*_LN_5,0)';}}}
327 -
328 -{{{ }}}
329 -
330 -{{{      final state cleanup {}}}
331 -
332 -{{{        entry debug / 'println("[trainNum][ST-ST] Entered *_LN_5 completely")';}}}
333 -
334 -{{{        entry / 'railTrackOff(*_LN_4)';}}}
335 -
336 -{{{        entry / *_LN_4_req[trainNum] = false;}}}
337 -
338 -{{{      };}}}
339 -
340 -{{{ }}}
341 -
342 -{{{    region Permissions:}}}
343 -
344 -{{{      initial state checking {}}}
345 -
346 -{{{        entry / *_ST_0_req[trainNum] = true;}}}
347 -
348 -{{{        entry destTrack == 1 | !cleanup / *_ST_1_req[trainNum] = true;}}}
349 -
350 -{{{        entry destTrack == 2 | !cleanup / *_ST_2_req[trainNum] = true;}}}
351 -
352 -{{{        entry destTrack == 3 | !cleanup / *_ST_3_req[trainNum] = true;}}}
353 -
354 -{{{      }}}}
355 -
356 -{{{      --> success with destTrack == 1 & *_ST_0_perm == trainNum & *_ST_1_perm == trainNum / i_arrOnTrack = 1}}}
357 -
358 -{{{      --> success with destTrack == 2 & *_ST_0_perm == trainNum & *_ST_2_perm == trainNum / i_arrOnTrack = 2}}}
359 -
360 -{{{      --> success with destTrack == 3 & *_ST_0_perm == trainNum & *_ST_3_perm == trainNum / i_arrOnTrack = 3}}}
361 -
362 -{{{      --> success with *_ST_0_perm == trainNum & *_ST_1_perm == trainNum / i_arrOnTrack = 1}}}
363 -
364 -{{{      --> success with *_ST_0_perm == trainNum & *_ST_2_perm == trainNum / i_arrOnTrack = 2}}}
365 -
366 -{{{      --> success with *_ST_0_perm == trainNum & *_ST_3_perm == trainNum / i_arrOnTrack = 3}}}
367 -
368 -{{{      --> resolving with *_ST_0_perm == trainNum | *_ST_3_perm == trainNum | *_ST_2_perm == trainNum | *_ST_1_perm == trainNum;}}}
369 -
370 -{{{ }}}
371 -
372 -{{{      state resolving}}}
373 -
374 -{{{      --> resolving1;}}}
375 -
376 -{{{ }}}
377 -
378 -{{{      state resolving1 {}}}
379 -
380 -{{{        entry / *_ST_0_req[trainNum] = false;}}}
381 -
382 -{{{        entry / *_ST_1_req[trainNum] = false;}}}
383 -
384 -{{{        entry / *_ST_2_req[trainNum] = false;}}}
385 -
386 -{{{        entry / *_ST_3_req[trainNum] = false;}}}
387 -
388 -{{{      }}}}
389 -
390 -{{{      --> checking;}}}
391 -
392 -{{{ }}}
393 -
394 -{{{      state success}}}
395 -
396 -{{{      --> success1;}}}
397 -
398 -{{{ }}}
399 -
400 -{{{      final state success1 {}}}
401 -
402 -{{{        entry !(i_arrOnTrack == 1) / *_ST_1_req[trainNum] = false;      }}}
403 -
404 -{{{        entry !(i_arrOnTrack == 2) / *_ST_2_req[trainNum] = false;}}}
405 -
406 -{{{        entry !(i_arrOnTrack == 3) / *_ST_3_req[trainNum] = false;}}}
407 -
408 -{{{        entry / perm_all_next_segments = true;}}}
409 -
410 -{{{      };}}}
411 -
412 -{{{  }>-> *_LN_5_*_ST;}}}
413 -
414 -{{{ }}}
415 -
416 -{{{  state *_LN_5_*_ST}}}
417 -
418 -{{{  --> Arr_*_ST with i_arrOnTrack == 1 & 'railContact(*_ST_1,0)'}}}
419 -
420 -{{{  --> Arr_*_ST with i_arrOnTrack == 2 & 'railContact(*_ST_2,0)'}}}
421 -
422 -{{{  --> Arr_*_ST with i_arrOnTrack == 3 & 'railContact(*_ST_3,0)';}}}
423 -
424 -{{{ }}}
425 -
426 -{{{  state Arr_*_ST {}}}
427 -
428 -{{{    entry / 'railSignal(*_LN_5, FWD, RED)';}}}
429 -
430 -{{{    entry / 'railTrackOff(*C_LN_5)';}}}
431 -
432 -{{{    entry / 'railTrack(*_ST_0,FWD,trainNum,SLOW)';}}}
433 -
434 -{{{    entry i_arrOnTrack == 1 / 'railTrack(*_ST_1,FWD,trainNum,SLOW)';}}}
435 -
436 -{{{    entry i_arrOnTrack == 2 / 'railTrack(*_ST_2,FWD,trainNum,SLOW)';}}}
437 -
438 -{{{    entry i_arrOnTrack == 3 / 'railTrack(*_ST_3,FWD,trainNum,SLOW)';}}}
439 -
440 -{{{    entry / *_LN_5_req[trainNum] = false;}}}
441 -
442 -{{{ }}}
443 -
444 -{{{    initial state SlowEntry}}}
445 -
446 -{{{    --> Slow with i_arrOnTrack == 1 & 'railContact(*_ST_1,0)'}}}
447 -
448 -{{{    --> Slow with i_arrOnTrack == 2 & 'railContact(*_ST_2,0)'}}}
449 -
450 -{{{    --> Slow with i_arrOnTrack == 3 & 'railContact(*_ST_3,0)';}}}
451 -
452 -{{{ }}}
453 -
454 -{{{    state Slow {}}}
455 -
456 -{{{      entry / 'railTrackOff(*_ST_0)';}}}
457 -
458 -{{{      entry / *_ST_0_req[trainNum] = false;}}}
459 -
460 -{{{    }}}}
461 -
462 -{{{    --> Halt with i_arrOnTrack == 1 & 'railContact(*_ST_1,1)'}}}
463 -
464 -{{{    --> Halt with i_arrOnTrack == 2 & 'railContact(*_ST_2,1)'}}}
465 -
466 -{{{    --> Halt with i_arrOnTrack == 3 & 'railContact(*_ST_3,1)';}}}
467 -
468 -{{{ }}}
469 -
470 -{{{    final state Halt {}}}
471 -
472 -{{{      entry i_arrOnTrack == 1 / 'railTrackBrake(*_ST_1)';}}}
473 -
474 -{{{      entry i_arrOnTrack == 2 / 'railTrackBrake(*_ST_2)';}}}
475 -
476 -{{{      entry i_arrOnTrack == 3 / 'railTrackBrake(*_ST_3)';}}}
477 -
478 -{{{      entry i_arrOnTrack == 1 / 'railArrival(trainNum, *_ST_1)';}}}
479 -
480 -{{{      entry i_arrOnTrack == 2 / 'railArrival(trainNum, *_ST_2)';}}}
481 -
482 -{{{      entry i_arrOnTrack == 3 / 'railArrival(trainNum, *_ST_3)';}}}
483 -
484 -{{{    };}}}
485 -
486 -{{{  }}}}
487 -
488 -{{{  >-> done;}}}
489 -
490 -{{{ }}}
491 -
492 -{{{  state done}}}
493 -
494 -{{{  --> reallyDone with 'railDeparture(trainNum)';}}}
495 -
496 -{{{ }}}
497 -
498 -{{{  final state reallyDone;}}}
499 -)))|=(((
500 -~/~/ All permissiions variables
501 -
502 -~/~/ All request variables
503 -
504 -~/~/ Train number
505 -
506 -~/~/ Departure track number
507 -
508 -~/~/ Destination track number
509 -
510 -~/~/ Cleanup flag for selecting the track of destination
511 -
512 -~/~/ Debug flag for additional output
513 -
514 -~/~/ Arrival track
515 -
516 -~/~/ Variable (arrival track) for selecting correct station elements
517 -
518 -
519 -
520 -~/~/ Handles departing from a station
521 -
522 -~/~/ Additional output for debugging
523 -
524 -
525 -
526 -~/~/ State, which set requests for needed tracks
527 -
528 -
529 -
530 -
531 -
532 -
533 -
534 -~/~/ Transition for received **all** needed permissions
535 -
536 -~/~/ Tranisition for received **some** needed permissions
537 -
538 -
539 -
540 -~/~/ State for waiting an additional Tick
541 -
542 -
543 -
544 -
545 -
546 -~/~/ State, which releases the requests for needed tracks
547 -
548 -
549 -
550 -
551 -
552 -
553 -
554 -~/~/ Transition to trying the requesting again
555 -
556 -
557 -
558 -
559 -
560 -
561 -
562 -~/~/ Transition to the departure state
563 -
564 -
565 -
566 -~/~/ State, which handles the train departure
567 -
568 -~/~/ Set of entry-Actions to set tracks, points and signals according to depTrack
569 -
570 -
571 -
572 -
573 -
574 -
575 -
576 -
577 -
578 -
579 -
580 -
581 -
582 -
583 -~/~/ Transition to next track segment, if contact is readed
584 -
585 -
586 -
587 -~/~/ State for handling the train on track *_LN_0
588 -
589 -~/~/ Outputs for debugging
590 -
591 -
592 -
593 -~/~/ Entry-Actions to set the previous signals to RED
594 -
595 -
596 -
597 -
598 -
599 -~/~/ Requesting the next segment
600 -
601 -
602 -
603 -~/~/ Region for handling train driving
604 -
605 -
606 -
607 -~/~/ Transition to continuing state, if permitted
608 -
609 -~/~/ Transition to slowing down else
610 -
611 -
612 -
613 -~/~/ State for slowing down
614 -
615 -~/~/ Addtitional output for debugging
616 -
617 -~/~/ Entry-Action for slowing down the train
618 -
619 -
620 -
621 -~/~/ Transition to waiting state
622 -
623 -~/~/ Transition to continuing state, if permitted
624 -
625 -
626 -
627 -~/~/ Waiting state
628 -
629 -~/~/ Addtitional output for debugging
630 -
631 -~/~/ Entry-Action for stopping the train
632 -
633 -
634 -
635 -~/~/ Tranisition to continuing state
636 -
637 -
638 -
639 -~/~/ State to continuing driving on the track
640 -
641 -~/~/ Addtitional output for debugging
642 -
643 -~/~/ Entry-Actions to set tracks and signals for driving
644 -
645 -
646 -
647 -
648 -
649 -
650 -
651 -
652 -
653 -
654 -
655 -~/~/ Region for handling cleanup-functionalities
656 -
657 -
658 -
659 -~/~/ Transition to cleanup state
660 -
661 -
662 -
663 -~/~/ Cleanup state
664 -
665 -~/~/ Addtitional output for debugging
666 -
667 -~/~/ Entry-Action to switching off the previous track
668 -
669 -~/~/ Entry-Action to release the previous track
670 -
671 -
672 -
673 -~/~/ Transition to transitional state
674 -
675 -
676 -
677 -~/~/ Transitional state
678 -
679 -~/~/ Transition to next track segment, if contact is readed
680 -
681 -
682 -
683 -
684 -
685 -
686 -
687 -
688 -
689 -
690 -
691 -~/~/ State for entering a station
692 -
693 -~/~/ Variable for checking all needed permissions
694 -
695 -~/~/ Output
696 -
697 -~/~/ Setting signal to RED
698 -
699 -
700 -
701 -~/~/ Region for handling train driving
702 -
703 -
704 -
705 -~/~/ Transition to continuing state, if permitted
706 -
707 -~/~/ Transition to slowing down else
708 -
709 -
710 -
711 -~/~/ State for slowing down
712 -
713 -~/~/ Addtitional output for debugging
714 -
715 -~/~/ Entry-Action for slowing down the train
716 -
717 -
718 -
719 -~/~/ Transition to waiting state
720 -
721 -~/~/ Transition to continuing state, if permitted
722 -
723 -
724 -
725 -~/~/ Waiting state
726 -
727 -~/~/ Addtitional output for debugging
728 -
729 -~/~/ Entry-Action for stopping the train
730 -
731 -
732 -
733 -~/~/ Tranisition to continuing state
734 -
735 -
736 -
737 -~/~/ State to continuing driving on the track
738 -
739 -~/~/ Addtitional output for debugging
740 -
741 -~/~/ Set of entry-Actions for setting tracks, points and signals according to i_arrOnTrack
742 -
743 -
744 -
745 -
746 -
747 -
748 -
749 -~/~/ Setting the arrival track (output)
750 -
751 -
752 -
753 -
754 -
755 -~/~/ Region for handling cleanup-functionalities
756 -
757 -
758 -
759 -~/~/ Transition to cleanup state
760 -
761 -
762 -
763 -~/~/ Cleanup state
764 -
765 -~/~/ Addtitional output for debugging
766 -
767 -~/~/ Entry-Action to switching off the previous tracks
768 -
769 -~/~/ Entry-Action to release the previous tracks
770 -
771 -
772 -
773 -
774 -
775 -~/~/ Region for handling permissions of all needed tracks
776 -
777 -~/~/ State for requesting all needed tracks according to destination track and cleanup-Flag
778 -
779 -
780 -
781 -
782 -
783 -
784 -
785 -
786 -
787 -
788 -
789 -~/~/ Transitions for permitted tracks match wished tracks
790 -
791 -
792 -
793 -
794 -
795 -~/~/ Transitions for permitted tracks don't match wished tracks
796 -
797 -
798 -
799 -
800 -
801 -~/~/ Transition for not all tracks permitted
802 -
803 -
804 -
805 -~/~/ State for waiting an additional tick
806 -
807 -
808 -
809 -
810 -
811 -~/~/ State for releasing track requests
812 -
813 -
814 -
815 -
816 -
817 -
818 -
819 -
820 -
821 -
822 -
823 -~/~/ Transition for trying the requesting again
824 -
825 -
826 -
827 -~/~/ State for waiting an additional tick
828 -
829 -
830 -
831 -
832 -
833 -~/~/ State for releasing not used track requests and
834 -
835 -
836 -
837 -
838 -
839 -
840 -
841 -~/~/ Settting perm_all_next_segments to true
842 -
843 -
844 -
845 -~/~/ Transition to station entry states
846 -
847 -
848 -
849 -~/~/ State waiting for station entry
850 -
851 -
852 -
853 -
854 -
855 -
856 -
857 -
858 -
859 -~/~/ State for setting tracks, points and signals according to i_arrOnTrack
860 -
861 -~/~/ and releasing previous track request
862 -
863 -
864 -
865 -
866 -
867 -
868 -
869 -
870 -
871 -
872 -
873 -
874 -
875 -
876 -
877 -~/~/ State for slowing down, if train completely on track
878 -
879 -
880 -
881 -
882 -
883 -
884 -
885 -
886 -
887 -~/~/ State for switching off previous track and releasing the request
888 -
889 -
890 -
891 -
892 -
893 -
894 -
895 -~/~/ Transitions to halt states, if train at second contact of a track
896 -
897 -
898 -
899 -
900 -
901 -
902 -
903 -
904 -
905 -~/~/ Entry-Actions for braking the train on correct track
906 -
907 -
908 -
909 -
910 -
911 -~/~/ Entry-Actions for waiting for timer on correct track
912 -
913 -
914 -
915 -
916 -
917 -
918 -
919 -
920 -
921 -
922 -
923 -
924 -
925 -
926 -
927 -~/~/ Transition to final state, if timer is ready
928 -)))
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -9471639
1 +9471637
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471639/Basic design
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471637/Basic design