Changes for page Basic design

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

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

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.csp
1 +XWiki.sna
Content
... ... @@ -54,3 +54,884 @@
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 +\\
357 +
358 +{{{      --> success with destTrack == 1 & *_ST_0_perm == trainNum & *_ST_1_perm == trainNum / i_arrOnTrack = 1}}}
359 +
360 +\\
361 +
362 +{{{      --> success with destTrack == 2 & *_ST_0_perm == trainNum & *_ST_2_perm == trainNum / i_arrOnTrack = 2}}}
363 +
364 +\\
365 +
366 +{{{      --> success with destTrack == 3 & *_ST_0_perm == trainNum & *_ST_3_perm == trainNum / i_arrOnTrack = 3}}}
367 +
368 +{{{      --> success with *_ST_0_perm == trainNum & *_ST_1_perm == trainNum / i_arrOnTrack = 1}}}
369 +
370 +{{{      --> success with *_ST_0_perm == trainNum & *_ST_2_perm == trainNum / i_arrOnTrack = 2}}}
371 +
372 +{{{      --> success with *_ST_0_perm == trainNum & *_ST_3_perm == trainNum / i_arrOnTrack = 3}}}
373 +
374 +
375 +\\
376 +
377 +{{{      --> resolving with *_ST_0_perm == trainNum | *_ST_3_perm == trainNum | *_ST_2_perm == trainNum | *_ST_1_perm == trainNum;}}}
378 +
379 +{{{ }}}
380 +
381 +{{{      state resolving}}}
382 +
383 +{{{      --> resolving1;}}}
384 +
385 +{{{ }}}
386 +
387 +{{{      state resolving1 {}}}
388 +
389 +{{{        entry / *_ST_0_req[trainNum] = false;}}}
390 +
391 +{{{        entry / *_ST_1_req[trainNum] = false;}}}
392 +
393 +{{{        entry / *_ST_2_req[trainNum] = false;}}}
394 +
395 +{{{        entry / *_ST_3_req[trainNum] = false;}}}
396 +
397 +{{{      }}}}
398 +
399 +{{{      --> checking;}}}
400 +
401 +{{{ }}}
402 +
403 +{{{      state success}}}
404 +
405 +{{{      --> success1;}}}
406 +
407 +{{{ }}}
408 +
409 +{{{      final state success1 {}}}
410 +
411 +{{{        entry !(i_arrOnTrack == 1) / *_ST_1_req[trainNum] = false;      }}}
412 +
413 +{{{        entry !(i_arrOnTrack == 2) / *_ST_2_req[trainNum] = false;}}}
414 +
415 +{{{        entry !(i_arrOnTrack == 3) / *_ST_3_req[trainNum] = false;}}}
416 +
417 +{{{        entry / perm_all_next_segments = true;}}}
418 +
419 +{{{      };}}}
420 +
421 +{{{  }>-> *_LN_5_*_ST;}}}
422 +
423 +{{{ }}}
424 +
425 +{{{  state *_LN_5_*_ST}}}
426 +
427 +{{{  --> Arr_*_ST with i_arrOnTrack == 1 & 'railContact(*_ST_1,0)'}}}
428 +
429 +{{{  --> Arr_*_ST with i_arrOnTrack == 2 & 'railContact(*_ST_2,0)'}}}
430 +
431 +{{{  --> Arr_*_ST with i_arrOnTrack == 3 & 'railContact(*_ST_3,0)';}}}
432 +
433 +{{{ }}}
434 +
435 +{{{  state Arr_*_ST {}}}
436 +
437 +{{{    entry / 'railSignal(*_LN_5, FWD, RED)';}}}
438 +
439 +{{{    entry / 'railTrackOff(*C_LN_5)';}}}
440 +
441 +{{{    entry / 'railTrack(*_ST_0,FWD,trainNum,SLOW)';}}}
442 +
443 +{{{    entry i_arrOnTrack == 1 / 'railTrack(*_ST_1,FWD,trainNum,SLOW)';}}}
444 +
445 +{{{    entry i_arrOnTrack == 2 / 'railTrack(*_ST_2,FWD,trainNum,SLOW)';}}}
446 +
447 +{{{    entry i_arrOnTrack == 3 / 'railTrack(*_ST_3,FWD,trainNum,SLOW)';}}}
448 +
449 +{{{    entry / *_LN_5_req[trainNum] = false;}}}
450 +
451 +{{{ }}}
452 +
453 +{{{    initial state SlowEntry}}}
454 +
455 +{{{    --> Slow with i_arrOnTrack == 1 & 'railContact(*_ST_1,0)'}}}
456 +
457 +{{{    --> Slow with i_arrOnTrack == 2 & 'railContact(*_ST_2,0)'}}}
458 +
459 +{{{    --> Slow with i_arrOnTrack == 3 & 'railContact(*_ST_3,0)';}}}
460 +
461 +{{{ }}}
462 +
463 +{{{    state Slow {}}}
464 +
465 +{{{      entry / 'railTrackOff(*_ST_0)';}}}
466 +
467 +{{{      entry / *_ST_0_req[trainNum] = false;}}}
468 +
469 +{{{    }}}}
470 +
471 +{{{    --> Halt with i_arrOnTrack == 1 & 'railContact(*_ST_1,1)'}}}
472 +
473 +{{{    --> Halt with i_arrOnTrack == 2 & 'railContact(*_ST_2,1)'}}}
474 +
475 +{{{    --> Halt with i_arrOnTrack == 3 & 'railContact(*_ST_3,1)';}}}
476 +
477 +{{{ }}}
478 +
479 +{{{    final state Halt {}}}
480 +
481 +{{{      entry i_arrOnTrack == 1 / 'railTrackBrake(*_ST_1)';}}}
482 +
483 +{{{      entry i_arrOnTrack == 2 / 'railTrackBrake(*_ST_2)';}}}
484 +
485 +{{{      entry i_arrOnTrack == 3 / 'railTrackBrake(*_ST_3)';}}}
486 +
487 +{{{      entry i_arrOnTrack == 1 / 'railArrival(trainNum, *_ST_1)';}}}
488 +
489 +{{{      entry i_arrOnTrack == 2 / 'railArrival(trainNum, *_ST_2)';}}}
490 +
491 +{{{      entry i_arrOnTrack == 3 / 'railArrival(trainNum, *_ST_3)';}}}
492 +
493 +{{{    };}}}
494 +
495 +{{{  }}}}
496 +
497 +{{{  >-> done;}}}
498 +
499 +{{{ }}}
500 +
501 +{{{  state done}}}
502 +
503 +{{{  --> reallyDone with 'railDeparture(trainNum)';}}}
504 +
505 +{{{ }}}
506 +
507 +{{{  final state reallyDone;}}}
508 +)))|=(((
509 +~/~/ All permissiions variables
510 +
511 +~/~/ All request variables
512 +
513 +~/~/ Train number
514 +
515 +~/~/ Departure track number
516 +
517 +~/~/ Destination track number
518 +
519 +~/~/ Cleanup flag for selecting the track of destination
520 +
521 +~/~/ Debug flag for additional output
522 +
523 +~/~/ Arrival track
524 +
525 +~/~/ Variable (arrival track) for selecting correct station elements
526 +
527 +
528 +
529 +~/~/ Handles departing from a station
530 +
531 +~/~/ Additional output for debugging
532 +
533 +
534 +
535 +~/~/ State, which set requests for needed tracks
536 +
537 +
538 +
539 +
540 +
541 +
542 +
543 +~/~/ Transition for received **all** needed permissions
544 +
545 +~/~/ Tranisition for received **some** needed permissions
546 +
547 +
548 +
549 +~/~/ State for waiting an additional Tick
550 +
551 +
552 +
553 +
554 +
555 +~/~/ State, which releases the requests for needed tracks
556 +
557 +
558 +
559 +
560 +
561 +
562 +
563 +~/~/ Transition to trying the requesting again
564 +
565 +
566 +
567 +
568 +
569 +
570 +
571 +~/~/ Transition to the departure state
572 +
573 +
574 +
575 +~/~/ State, which handles the train departure
576 +
577 +~/~/ Set of entry-Actions to set tracks, points and signals according to depTrack
578 +
579 +
580 +
581 +
582 +
583 +
584 +
585 +
586 +
587 +
588 +
589 +
590 +
591 +
592 +~/~/ Transition to next track segment, if contact is readed
593 +
594 +
595 +
596 +~/~/ State for handling the train on track *_LN_0
597 +
598 +~/~/ Outputs for debugging
599 +
600 +
601 +
602 +~/~/ Entry-Actions to set the previous signals to RED
603 +
604 +
605 +
606 +
607 +
608 +~/~/ Requesting the next segment
609 +
610 +
611 +
612 +~/~/ Region for handling train driving
613 +
614 +
615 +
616 +~/~/ Transition to continuing state, if permitted
617 +
618 +~/~/ Transition to slowing down else
619 +
620 +
621 +
622 +~/~/ State for slowing down
623 +
624 +~/~/ Addtitional output for debugging
625 +
626 +~/~/ Entry-Action for slowing down the train
627 +
628 +
629 +
630 +~/~/ Transition to waiting state
631 +
632 +~/~/ Transition to continuing state, if permitted
633 +
634 +
635 +
636 +~/~/ Waiting state
637 +
638 +~/~/ Addtitional output for debugging
639 +
640 +~/~/ Entry-Action for stopping the train
641 +
642 +
643 +
644 +~/~/ Tranisition to continuing state
645 +
646 +
647 +
648 +~/~/ State to continuing driving on the track
649 +
650 +~/~/ Addtitional output for debugging
651 +
652 +~/~/ Entry-Actions to set tracks and signals for driving
653 +
654 +
655 +
656 +
657 +
658 +
659 +
660 +
661 +
662 +
663 +
664 +~/~/ Region for handling cleanup-functionalities
665 +
666 +
667 +
668 +~/~/ Transition to cleanup state
669 +
670 +
671 +
672 +~/~/ Cleanup state
673 +
674 +~/~/ Addtitional output for debugging
675 +
676 +~/~/ Entry-Action to switching off the previous track
677 +
678 +~/~/ Entry-Action to release the previous track
679 +
680 +
681 +
682 +~/~/ Transition to transitional state
683 +
684 +
685 +
686 +~/~/ Transitional state
687 +
688 +~/~/ Transition to next track segment, if contact is readed
689 +
690 +
691 +
692 +
693 +
694 +
695 +
696 +
697 +
698 +
699 +
700 +~/~/ State for entering a station
701 +
702 +~/~/ Variable for checking all needed permissions
703 +
704 +~/~/ Output
705 +
706 +~/~/ Setting signal to RED
707 +
708 +
709 +
710 +~/~/ Region for handling train driving
711 +
712 +
713 +
714 +~/~/ Transition to continuing state, if permitted
715 +
716 +~/~/ Transition to slowing down else
717 +
718 +
719 +
720 +~/~/ State for slowing down
721 +
722 +~/~/ Addtitional output for debugging
723 +
724 +~/~/ Entry-Action for slowing down the train
725 +
726 +
727 +
728 +~/~/ Transition to waiting state
729 +
730 +~/~/ Transition to continuing state, if permitted
731 +
732 +
733 +
734 +~/~/ Waiting state
735 +
736 +~/~/ Addtitional output for debugging
737 +
738 +~/~/ Entry-Action for stopping the train
739 +
740 +
741 +
742 +~/~/ Tranisition to continuing state
743 +
744 +
745 +
746 +~/~/ State to continuing driving on the track
747 +
748 +~/~/ Addtitional output for debugging
749 +
750 +~/~/ Set of entry-Actions for setting tracks, points and signals according to i_arrOnTrack
751 +
752 +
753 +
754 +
755 +
756 +
757 +
758 +~/~/ Setting the arrival track (output)
759 +
760 +
761 +
762 +
763 +
764 +~/~/ Region for handling cleanup-functionalities
765 +
766 +
767 +
768 +~/~/ Transition to cleanup state
769 +
770 +
771 +
772 +~/~/ Cleanup state
773 +
774 +~/~/ Addtitional output for debugging
775 +
776 +~/~/ Entry-Action to switching off the previous tracks
777 +
778 +~/~/ Entry-Action to release the previous tracks
779 +
780 +
781 +
782 +
783 +
784 +~/~/ Region for handling permissions of all needed tracks
785 +
786 +~/~/ State for requesting all needed tracks according to destination track and cleanup-Flag
787 +
788 +
789 +
790 +
791 +
792 +
793 +
794 +
795 +
796 +
797 +
798 +~/~/ Transitions for permitted tracks match wished tracks
799 +
800 +
801 +
802 +
803 +
804 +~/~/ Transitions for permitted tracks don't match wished tracks
805 +
806 +
807 +
808 +
809 +
810 +~/~/ Transition for not all tracks permitted
811 +
812 +
813 +
814 +~/~/ State for waiting an additional tick
815 +
816 +
817 +
818 +
819 +
820 +~/~/ State for releasing track requests
821 +
822 +
823 +
824 +
825 +
826 +
827 +
828 +
829 +
830 +
831 +
832 +~/~/ Transition for trying the requesting again
833 +
834 +
835 +
836 +~/~/ State for waiting an additional tick
837 +
838 +
839 +
840 +
841 +
842 +~/~/ State for releasing not used track requests and
843 +
844 +
845 +
846 +
847 +
848 +
849 +
850 +~/~/ Settting perm_all_next_segments to true
851 +
852 +
853 +
854 +~/~/ Transition to station entry states
855 +
856 +
857 +
858 +~/~/ State waiting for station entry
859 +
860 +
861 +
862 +
863 +
864 +
865 +
866 +
867 +
868 +~/~/ State for setting tracks, points and signals according to i_arrOnTrack
869 +
870 +~/~/ and releasing previous track request
871 +
872 +
873 +
874 +
875 +
876 +
877 +
878 +
879 +
880 +
881 +
882 +
883 +
884 +
885 +
886 +~/~/ State for slowing down, if train completely on track
887 +
888 +
889 +
890 +
891 +
892 +
893 +
894 +
895 +
896 +~/~/ State for switching off previous track and releasing the request
897 +
898 +
899 +
900 +
901 +
902 +
903 +
904 +~/~/ Transitions to halt states, if train at second contact of a track
905 +
906 +
907 +
908 +
909 +
910 +
911 +
912 +
913 +
914 +~/~/ Entry-Actions for braking the train on correct track
915 +
916 +
917 +
918 +
919 +
920 +~/~/ Entry-Actions for waiting for timer on correct track
921 +
922 +
923 +
924 +
925 +
926 +
927 +
928 +
929 +
930 +
931 +
932 +
933 +
934 +
935 +
936 +~/~/ Transition to final state, if timer is ready
937 +)))
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -9471637
1 +9471640
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471637/Basic design
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471640/Basic design