This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
usage:nodes:atc_controller [2019-07-02 11:52] 82.67.173.193 |
usage:nodes:atc_controller [2019-11-06 14:49] blockhead |
||
---|---|---|---|
Line 6: | Line 6: | ||
===== Properties ===== | ===== Properties ===== | ||
- | Mod: **advtrains_train_track** \\ | + | Mod: '' |
- | Node name: **advtrains: | + | Node name: '' |
Other names: | Other names: | ||
- | * **advtrains: | + | * '' |
- | * **advtrains: | + | * '' |
- | * **advtrains: | + | * '' |
- | * **advtrains: | + | * '' |
===== Craft recipe ===== | ===== Craft recipe ===== | ||
Line 32: | Line 32: | ||
===== ATC command syntax ===== | ===== ATC command syntax ===== | ||
+ | |||
+ | In ATC commands, spaces are ignored and can be inserted as needed. | ||
+ | |||
==== Simple directives ==== | ==== Simple directives ==== | ||
=== S< | === S< | ||
- | Sets the target speed of driving train to **< | + | Sets the target speed of driving train to '' |
- | **< | + | '' |
* a number constituted only of digits. This represents an [[usage: | * a number constituted only of digits. This represents an [[usage: | ||
* the special value **M**, which represents the maximal speed of the train as defined by the entity definition passed to [[reference: | * the special value **M**, which represents the maximal speed of the train as defined by the entity definition passed to [[reference: | ||
Line 45: | Line 48: | ||
=== B< | === B< | ||
- | Brakes until the train speed reaches | + | Brakes until the train speed reaches |
- | **< | + | '' |
Execution of the ATC command continues **immediately**. | Execution of the ATC command continues **immediately**. | ||
Line 53: | Line 56: | ||
=== W === | === W === | ||
- | Pauses execution of the ATC command until **S** and **B** directives reached the desired speed. | + | Pauses execution of the ATC command until '' |
**Please use with caution. If the train is never able to reach the desired speed, this directive will probably break your ATC command.** | **Please use with caution. If the train is never able to reach the desired speed, this directive will probably break your ATC command.** | ||
Line 63: | Line 66: | ||
=== OL, OR === | === OL, OR === | ||
- | Open left or right doors. Whether doors are left or right are relative to ATC controller arrow direction. So if you try to drive in wrong direction (the " | + | Open left or right doors. Whether doors are left or right are relative to ATC controller arrow direction. So if you try to drive in wrong direction (the " |
- | If you open left doors with **OL**, however, you will not be able to open right doors using **OR**, and vice-versa. | + | If you open left doors with '' |
Execution of the ATC command continues **immediately**. | Execution of the ATC command continues **immediately**. | ||
Line 71: | Line 74: | ||
=== OC === | === OC === | ||
- | Close doors previously opened by **OL** or **OR**. | + | Close doors previously opened by '' |
==== Conditional statements ==== | ==== Conditional statements ==== | ||
Line 77: | Line 80: | ||
Advtrains only supports the **if** conditional statement. Such statements are expressed as follows: | Advtrains only supports the **if** conditional statement. Such statements are expressed as follows: | ||
- | **I< | + | '' |
- | where **< | + | where '' |
Notice the semi-colon which is required, otherwise you get two warnings like this: | Notice the semi-colon which is required, otherwise you get two warnings like this: | ||
Line 87: | Line 90: | ||
If you want to add an else branch, you can use this variant: | If you want to add an else branch, you can use this variant: | ||
- | **I< | + | '' |
=== +, - === | === +, - === | ||
Line 98: | Line 101: | ||
It is not currently possible to test directly the speed for equality or inequality. | It is not currently possible to test directly the speed for equality or inequality. | ||
+ | |||
+ | Although there is no direct command, it is possible to use nested conditional commands to test for equality or inequality: | ||
+ | < | ||
+ | I<8 | ||
+ | Not equal to 8 | ||
+ | E | ||
+ | | ||
+ | Not equal to 8 | ||
+ | E | ||
+ | Equal to 8 | ||
+ | ;; | ||
+ | </ | ||
+ | |||
+ | Unfortunately the command < | ||
==== Examples ==== | ==== Examples ==== | ||
=== S, B === | === S, B === | ||
- | * **SM**: accelerate to maximum speed | + | * '' |
- | * **S2**: set target speed to 2 (~ 8 km/h) | + | * '' |
- | * **S0**: roll to stand | + | * '' |
- | * **B0**: brake to stand | + | * '' |
- | * **S0 B3** or **B3S0**: brake to 3, then roll to stand. | + | * '' |
=== W, R === | === W, R === | ||
- | * **S5 W**: set target speed to 5 (~ 18 km/h), and wait for speed to be 5 | + | * '' |
- | * **B0 W R**: brake to stand, wait for speed to be 0, and reverse direction of train | + | * '' |
- | * **B0 W D10 SM**: brake to stand, wait 10 seconds after the train stopped, and reverse direction of train | + | * '' |
=== OL, OR, OC === | === OL, OR, OC === | ||
- | * **B0 W OL D10 OC D1 SM**: example of train stopping at a standard station with doors opening on the left | + | * '' |
- | * **B0 W OL R D20 OC D1 SM**: example of train stopping at a terminus station, with returning in opposite direction | + | * '' |
=== I, +/-, </< | === I, +/-, </< | ||
- | * **I + S2;**: if the train is going in the right direction, set target speed to 2 | + | * '' |
- | * **I + SM E B0;**: if the train is going in the right direction, accelerate, otherwise stop | + | * '' |
- | * **I <8 S8;**: if the train is slower than 8 (~ 30 km/h), set target speed to 8 | + | * '' |
===== Trivia ===== | ===== Trivia ===== | ||
- | * Although the node has three different modes (**static**, **mesecon** and **digilines**), only the static mode is supported. It is actually not possible to change directly the mode from the ATC controller. | + | * Although the node has three different modes ('' |
* The ATC controller rail has the same texture as the [[usage: | * The ATC controller rail has the same texture as the [[usage: | ||