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,875 @@ 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 -947163 71 +9471639 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/947163 7/Basic design1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/SS14Railway/pages/9471639/Basic design