JMRI: Conditional State Variables and Actions List
Author: Bob Jacobsen
Keywords: JMRI help Logix Conditional Add Edit

# Conditional State Variables and Actions List

  ## Available State Variables

  State variables that are currently available for use in Conditionals are listed below, along with information on each. State variables must always evaluate to either true or false. The condition resulting in true is given for each. If the condition is not met, the state variable evaluates to false. When a Logix is active, the states of entities (sensor, turnout, light, etc.) specified in state variables in its Conditionals are monitored, unless the Triggers Calculation checkbox of the state variable is unchecked. A calculation of all Conditionals in the Logix is triggered when any monitored state changes as noted below (if not obvious).

  - Sensor
    - Sensor Active: Evaluates to true if the state of the specified sensor is active.
    - Sensor Inactive: Evaluates to true if the state of the specified sensor is inactive.
  - Turnout
    - Turnout Thrown: Evaluates to true if the known state of the specified turnout is thrown.
    - Turnout Closed: Evaluates to true if the known state of the specified turnout is closed.
  - Light
    - Light On: Evaluates to true if the specified light is on.
    - Light Off: Evaluates to true if the specified light is off.
  - Signal Head
    - Signal Head Appearance equals: Evaluates to true if the appearance of the specified signal head matches the selected Variable Aspect (appearance).
    - Signal Head Lit: Evaluates to true if the specified signal head is lit.
    - Signal Head Held: Evaluates to true if the specified signal head is being held.
  - Signal Mast
    - Signal Mast Aspect Equals: Evaluates to true if the aspect of the specified signal mast equals the aspect specified in the state variable. Calculation is triggered when the aspect of the signal mast changes.
    - Signal Mast Lit: Evaluates to true if the specified signal mast is Lit.
    - Signal Mast Held: Evaluates to true if the specified signal mast is being held.
  - Memory
    - Memory-Value Compare: Compares the value saved in the specified memory to the value specified in the state variable using a specified comparison operator. Evaluates to true if the comparison is true. There are 5 comparison operators that may be used for the evaluation:
      - "less than"
      - "less than or equal"
      - "equals"
      - "greater than or equal"
      - "greater than"
      Calculation is triggered when the monitored memory value changes so that the comparison to the specified value changes.
    - Memory-Memory Compare: Compares the value saved in one specified memory to the value saved in a second memory location. There are 5 comparison operators that may be used for the evaluation:
      - "less than"
      - "less than or equal"
      - "equals"
      - "greater than or equal"
      - "greater than"
      Calculation is triggered when one of the monitored memory values changes so that the comparison value changes.
  - Conditional
    - Conditional True: Evaluates to true if the state of the specified Conditional is true.
    - Conditional False: Evaluates to true if the state of the specified Conditional is false.
  - Warrant
    - Route Free: Evaluates to true when the route is available.
    - Route Set: Evaluates to true when the route has bee set.
    - Route Allocated: Evaluates to true when the route has been allocated.
    - Route Occupied: Evaluates to true when the route has been occupied.
    - Train Running: Evaluates to true< when a train is running./li>
  - Fast Clock
    - Fast Clock Range: Evaluates to true if the current fast clock time is between the begin time and end time specified for the range. Times must be specified in hh:mm format, where hh is hours and mm is minutes, relative to a 24-hour clock. Calculation is triggered when the fast clock time enters the range and when the fast clock time exits the range.
  - Occupancy Block
    - Occupied: Evaluates to true when the block is occupied.
    - Power Error: Evaluates to true when a power error has occurred.
    - Out Of Service: Evaluates to true when a block is out of service.
    - Dark: Evaluates to true when a block is to dark.
    - Path Occupied: Evaluates to true when a path is occupied
    - Unoccupied: Evaluates to true when a path is not occupied.
    - Allocated: Evaluates to true when the block is allocated.
  - Entry Exit
    - Active: Evaluates to true when the Entry/Exit is active.
    - Inactive: Evaluates to true when the Entry/Exit is not active.

  ## Available Actions

  Actions that are currently available for use in Conditionals are listed below along with information on each:

  - Sensor
    - Set Sensor: Sets the specified sensor to the chosen state. Specify the sensor to set by entering its name. Specify the state to set by choosing Active or Inactive in the popup menu.
    - Delayed Set Sensor: Sets the specified sensor to the chosen state after waiting for a specified number of seconds. Specify the sensor to set by entering its name. Specify the state to set by choosing Active or Inactive in the popup menu. Specify the number of seconds to delay before setting the sensor by entering a number in the right-most field. If this Conditional is already waiting to set this sensor, this action is ignored, and the previous action continues as originally scheduled.(see also Reset Delayed Set Sensor below.)
    - Reset Delayed Set Sensor: Sets the specified sensor to the chosen state after waiting for a specified number of seconds. Specify the sensor to set by entering its name. Specify the state to set by choosing Active or Inactive in the popup menu. Specify the number of seconds to delay before setting the sensor by entering a number in the right-most field. This action is the same as Delayed Set Sensor, except if this Conditional is already actively waiting to set the specified sensor, the previous wait is cancelled, and a new wait period is started. In effect, the wait time is restarted. The sensor is not set until the most recent wait period expires.
    - Cancel Timers for Sensor: Cancels all timers waiting to set the specified sensor in all Conditionals in all Logixs. Specify the sensor by entering its name. The sensor is not set; all active delayed actions for setting the specified sensor are cancelled without setting the sensor.
  - Turnout
    - Set Turnout: Sets the specified turnout to the chosen state. Specify the turnout to set by entering its name. Specify the state to set by choosing Closed or Thrown in the popup menu.
    - Delayed Set Turnout: Sets the specified turnout to the chosen state after waiting for a specified number of seconds. Specify the turnout to set by entering its name. Specify the state to set by choosing Closed or Thrown in the popup menu. Specify the number of seconds to delay before setting the turnout by entering a number in the right-most field. If this Conditional is already waiting to set this turnout, this action is ignored, and the previous action continues as originally scheduled.(see also Reset Delayed Set Turnout below.)
    - Turnout Lock: Locks or unlocks a turnout. Enter the name for the turnout, and choose the operation from the popup menu. Note: To control the type of turnout lock go to the Turnout Table and select the Lock Mode.
    - Cancel Timers for Turnout: Cancels all timers waiting to set the specified turnouts in all Conditionals in all Logixs. Specify the turnout by entering its name. The turnout is not set; all active delayed actions for setting the specified turnout are cancelled without setting the turnout.
    - Reset Delayed Set Turnout: Sets the specified turnout to the chosen state after waiting for a specified number of seconds. Specify the turnout to set by entering its name. Specify the state to set by choosing Closed or Thrown in the popup menu. Specify the number of seconds to delay before setting the turnout by entering a number in the right-most field. This action is the same as Delayed Set Turnout, except if this Conditional is already actively waiting to set the specified turnout, the previous wait is cancelled, and a new wait period is started. In effect, the wait time is restarted. The turnout is not set until the most recent wait period expires.
  - Light
    - Set Light: Sets the specified light to the chosen state. Specify the light to set by entering its name. Specify the state to set by choosing On or Off in the popup menu.
    - Set Light Intensity: Sets the intensity of a specified variable intensity light to the entered intensity value. Specify the light to set by entering its name. Specify the intensity by entering the percent intensity as an integer in the range 0 to 100. If the specified light is not a variable light, or if the intensity value entered is not an integer in the required range, an error message is displayed.
    - Set Light Transition Time: Sets the transition time of a specified variable intensity light to the entered time. Specify the light to set by entering its name. Specify the transition time by entering the number of fast clock minutes needed to move from 0% intensity to 100% intensity. If the specified light is not a variable light, or if a positive integer is not entered for the number of fast clock minutes, an error message results.
  - Signal Head
    - Set Signal Appearance: Sets the specified signal head to the chosen appearance. Specify the signal head to set by entering its name. Specify the appearance to set by choosing from the popup menu.
    - Set Signal Held: Sets the specified signal head to hold. Specify the signal head to hold by entering its name.
    - Clear Signal Held: Clears the hold on the specified signal head. Specify the signal head by entering its name.
    - Set Signal Dark: Sets the specified signal head to not lit. Specify the signal head by entering its name.
    - Set Signal Lit: Sets the specified signal head to lit. Specify the signal head by entering its name.
  - Signal Mast
    - Set Signal Mast Aspect: Sets the specified signal mast to the chosen aspect. Specify the signal mast to set by entering its name. Select the aspect from the Signal Mast Aspect list.
    - Set Signal Mast Held: Sets the specified signal mast to hold. Specify the signal mast to hold by entering its name.
    - Clear Signal Mast Held: Clears the hold on the specified signal mast. Specify the signal mast by entering its name.
    - Set Signal Mast Dark: Sets the specified signal mast to not lit. Specify the signal mast by entering its name.
    - Clear Signal Mast Dark: Sets the specified signal mast to lit. Specify the signal mast by entering its name.
  - Memory
    - Set Memory: Sets the specified memory to the entered value. Specify the memory to set by entering its name. Specify the value to set in the memory by entering it in the right-most field.
    - Copy Memory To Memory: Copies the value of a memory variable to another memory variable. Specify the memory to be copied from by entering its name in the leftmost field. Specify the memory to receive the copied value by entering its name in the rightmost field.
  - Logix
    - Enable Logix: Enables the specified logix. Specify the logix to enable by entering its name.
    - Disable Logix: Disables the specified logix. Specify the logix to disable by entering its name.
  - Entry Exit
    - Set NX Pair Enabled: Enables the specified Entry/Exit Pair. Specify the Entry/Exit Pair to enable by entering its name.
    - Set NX Pair Disabled: Disables the specified Entry/Exit Pair. Specify the Entry/Exit Pair to enable by entering its name.
    - Set NX Pair Segment Active / Inactive: Request that the route segment for the specified Entry/Exit Pair be activated if not active or deactivated if active. Specify the Entry/Exit Pair to enable by entering its name.
  - Warrant
    - Allocate Warrant Route: Allocates (reserves) the OBlocks comprising the route of the warrant for use by the warrant. Specify the warrant by entering its System Name or User Name.
    - Deallocate Warrant: Deallocates the OBlocks comprising the route of the warrant so they may be allocated to other warrants. Specify the warrant by entering its System Name or User Name.
    - Set Route Turnouts: Sets all the turnouts comprising the route of the warrant. Specify the warrant by entering its System Name or User Name.
    - Auto Run Train: Starts playback of the recorded script for the train specified in the warrant. Specify the warrant by entering its System Name or User Name.
    - Manually Run Train: Serves a "clearance" to an operator that a humanly run train has running rights for the extent of the warrant's route. Specify the warrant by entering its System Name or User Name.
    - Control Auto Train: Issues the specified command to an auto run train. Specify the warrant of the train by entering its System Name or User Name. The Commands are:
      - Halt
      - Resume
      - Abort
    - Set Train ID: Set the train ID from the roster or the DCC address. When a DCC address is used, also specify Long or Short. Example: 1234(L) or 10(S).
    - Set Train Name: Set the train Name for the selected Warrant.
    - Set Throttle Factor: Increases or decreases the throttle settings of an auto run train by the specified factor. Specify the warrant of the train by entering its System Name or User Name.
  - Fast Clock
    - Set Fast Clock Time: Sets the time on the fast clock to the entered time. The time is entered as hh:mm where hh is hours and mm is minutes on a 24-hour clock. This action sets the fast clock to the specified time regardless of whether the fast clock is running or stopped.
    - Start Fast Clock: Starts the JMRI fast clock running. If the fast clock is already running, this action has no effect.
    - Stop Fast Clock: Pauses the JMRI fast clock. If the fast clock is not running, this action has no effect.
  - Occupancy Block
    - Deallocate Block: Deallocates an Occupancy block. Specify the OBlock by entering its System Name or User Name.
    - Set Block Value: Set a value for the selected block.
    - Set Block Error: Set the selected block status to "block error".
    - Clear Block Error: Remove the "block error" status for the selected block
    - Set Block OutOfService: Sets the status of an Occupancy block to Out-Of-Service. Specify the OBlock by entering its System Name or User Name.
    - Clear Block OutOfService: Sets the status of an Occupancy Block to the current normal status. Specify the OBlock by entering its System Name or User Name.
  - Audio
    - Play Sound File: Plays the specified sound file. Specify the sound file to play by entering its name in the field provided. Click Set to bring up a file selection dialog to aid in finding the file. Navigate to your sound file, then click your sound file's name in the dialog to copy it (including its path) to the field.
    - Control Audio object:
  - Script
    - Script: Run Script: Starts the specified script. Specify the script to start by entering its name in the field provided. Click Set to bring up a file selection dialog for finding the file. Navigate to your script file, then click your script file's name in the dialog to copy it (including its path) to the field.
    - Script: Execute Jython Command: Enter the command in the Script Command field.
  - Other
    - Trigger Route: Triggers the specified route. Specify the route by entering its name.

## Logix Documentation Pages Logically Listed