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,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 -94716 371 +9471640 - 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/9471640/Basic design