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.s na1 +XWiki.csp - Content
-
... ... @@ -54,884 +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 -\\ 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 -94716 401 +9471637 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/94716 40/Basic design1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471637/Basic design