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