Special Actions
What are Special Actions?
Special Actions are things that can be initiated automatically as a train running in automatic mode traverses the layout. One or more Special Actions may be requested for each Section in a Transit. If a Section is in a Transit multiple times, different Special Actions may be specified for each occurence of the Section. Special Actions only apply to automatically running trains with a virtual engineer. If running trains in automatic mode is of interest read on. If your trains will only be run manually with a human engineer, Special Actions aren't used.
Special Actions are in addition to the standard actions that also happen automatically when a train runs in automatic mode. Some standard actions are things like following signals and using stop sensors, that are specified with each Section. Standard actions occur automatically whenever a Section is traversed in automatic mode. Other standard actions include automatically requesting allocation of Sections, and automatically releasing Sections when they are no longer needed.
Special Actions are tied to Sections, but are specified at the Transit level to provide maximum user flexibility. A Section is a piece of physical track, that may, for example, be used by passenger trains, through freight trains, or locals. Each of these uses may need different Special Actions in a specific Section. For example, a passenger train may make a station stop in a particular Section, whereas a through freight train may go straight through. Placing Special Actions in Transits allows Active Trains traveling the same path through the layout to have different Special Actions.
Requesting a Special Action
A Special Action is requested by specifying what action to be initiated and when that action is to be initiated. Any when event may be combined with any what action, providing a wide variety of Special Actions. Currently available when events are:
- Entry to Section - When the automatic train enters the current Section.
- Exit from Section - When the automatic train exits the current Section. This means when the last detectable car leaves the Section, and the Section is unoccupied.
- Entry to Block in Section - When the automatic train enters a specified Block in the Section. For Sections with only one Block, this is equivalent to Entry to Section.
- Exit from Block in Section - When the automatic train exits a specified Block in the Section. This means when the last detectable car leaves the specified Block, and the Block is unoccupied. For Sections with only one Block, this is equivalent to Exit from Section.
- When Train Stops - When the automatic train stops. This may be used, for example, for stopping the bell in a sound decoder or initiating other actions when the train stops at a station.
- When Train Starts - When the automatic trains starts up after having been stopped. This may be used, for example, to initiate actions when a train starts up after a station stop.
- When Sensor goes Active - When the specified Sensor moves to the active state. The specified Sensor may be either internal or hardware, and must be in the Sensor Table. This might be used, for example, with a hardware Sensor connected to a fascia push button to resume automatic operation after being in manual mode, when the user pushes the fascia button to indicate manual operation work has been completed. It can also be used to trigger actions using position sensors on the layout.
- When Sensor goes Inactive - When the specified Sensor moves to the inactive state. This is the same as above, but with the opposite sensor state. Use the one that best fits your hardware.
- When Train is Within the Section - When the last detectable car enters the Section, and the previous Section goes unoccupied.
An optional delay, specified in milliseconds, is available for each when event. No delay is the default. If an optional delay time is not entered (or a delay time of zero is entered), the action will be initiated immediately after the when event occurs. If a delay time is specified, the program will wait for the specified time after the when event occurs before initiating the action.
Currently available what actions are:
- Pause - Stop the train for a specified number of fast clock minutes. This item may be used to request a station stop.
- Set Maximum Speed - Set the maximum speed to a specified percentage of the maximum hardware speed. When a train is run in automatic mode, the program will never exceed the maximum speed. For example, this item may be used to force an automatic train to run slower through a town. Setting maximum speed does not affect the current speed of the train if it is less than the specified maximum speed.
- Set Train Speed - Set the current train speed to the target value. The change will not occur instantaneously. The current speed will be changed to the target speed in a manner determined by the program. The target speed may be either lower or higher than the current value.
- Ramp Train Speed - Set the current train speed to the target value by ramping to the target value over a specified time period. The target speed may be either lower or higher than the current value.
- Go to Manual Mode - Drop out of automatic mode to allow a human engineer to perform work with a manual throttle. The train will remain in manual mode until the following action occurs.
- Resume Automatic Operation - Resume automatic operation after having been in manual mode to allow a human user to work with a manual throttle.
- Start Bell Ringing - Start bell ringing on a sound decoder. This item will turn throttle function 1 on.
- Stop Bell Ringing - Stop bell ringing on a sound decoder. This item will turn throttle function 1 off.
- Sound Horn - Sound the horn of a sound decoder for a specified time. This item is equivalent to holding down throttle function 2 for the specified time.
- Patterned Sound Horn - Sound the horn in a manner specified by a pattern. The pattern consists of short and long blasts, specified as "s" and "l" in the pattern. For example a pattern of "lsl" specifies long-short- long. The user sets the duration of the short and long blasts.
- Set Decoder Function - Press the specified decoder function button. The function button is specified by the user.
- Set Sensor Active - Set a specified Sensor active. The specified Sensor must be in the Sensor Table. If the specified Sensor is already in the active state, it is toggled. This action may be used, for example, with an internal sensor to trigger a Logix or a Route, or to set a Light. It offers access to a wide variety of actions not included here.
- Set Sensor Inactive - Set a specified Sensor inactive. The specified Sensor must be in the Sensor Table. This is equivalent to the action above, except with a different target Sensor state.
The View Special Actions Window
The View Special Actions window displays Special Actions that are currently set, and provides for adding, editing, or deleting Special Actions. The View Special Actions window (example below) is displayed for a specific Section in a Transit by pressing the View Special Actions button on that Section's row in the Add/Edit Transit window.
For all Special Events that have been created, the when event and the what action are described in the When and Action Requested columns. To add a new Special Action, click Add New Action to bring up the Add/Edit Action window. To edit an existing Special Action, click the Edit button in its row. To delete an existing Special Action, click the Delete button in its row. The order of the Special Actions is not important.
When the Special Actions are completely defined, click the Done button.