BaltechScript / RunSequence Protocol Frame

This command allows to run complex switch sequences for IO-Ports. A switch sequence can be one or multiple (nested) loops (with separate timing each) that are controlling one or multiple different LEDs.

A sample for a switch sequence is:

  1. toggle green LED 3 times with 10 Hz frequency
  2. enable red LED for 2 sec
  3. repeat from step 1 four times.
Currently it is not possible to run more than one switch sequence at the same time. All parameters of switch sequences (=frequencies, LED ids and repeat count) are static.

Properties

Format

Name Type/Size Description
Cmds Array This is a list of commands, that has to be finished with the EndOfSequence command. After the EndOfSequence command the Script may continue with regular BaltechScript commands.
Cmd.CmdCode Enumeration (8 bits) A command is a basic building block for switch sequences. Every command controls either a LED, delays execution or manages control flow (mainly loops).
Values:
  • EnablePort (0x01)
    Enable the port ID stored in the Field Param.
  • DisablePort (0x02)
    Disable the port ID of the Field Param.
  • RepeatLoop (0x05)
    Jumps back to the corresponding StartLoop a specified number of repetitions. The field Param specifies the number of loops (0-255).
  • WaitMs (0x08)
    Wait exactly the amount of ms specified in the field Param before going on.
  • WaitSec (0x09)
    Wait exactly the amount of seconds specified in Param before going on.
  • EndOfSequence (0xF1)
    End Of Script Marker. Has to be present at the end of every script.
  • StartLoop (0xF2)
    Starts a loop. Has to be followed by RepeatLoopX or RepeatLoop.
  • OnStop (0xF3)
    If execution of the sequence was aborted, jump to this label and run the following commands until EndOfSequence to restore a default LED state. The following commands must not contain WaitXXX commands as it has to finish immediately.
  • EnablePortGreenLed (0x10)
    This is a ShortCut for EnablePort GreenLed (requires only one byte intead of 2).
  • EnablePortRedLed (0x11)
  • EnablePortBeeper (0x12)
  • EnablePortRelay (0x13)
  • EnablePortBlue (0x16)
  • DisablePortGreenLed (0x20)
    This is a Shortcut for DisablePort GreenLed (requires only one byte intead of 2).
  • DisablePortRedLed (0x21)
  • DisablePortBeeper (0x22)
  • DisablePortRelay (0x23)
  • DisablePortBlue (0x26)
  • InvertPortGreenLed (0x30)
    This is a ShortCut for EnablePort GreenLed, if GreenLed is enabled otherwise DisablePort GreenLed.
  • InvertPortRedLed (0x31)
  • InvertPortBeeper (0x32)
  • InvertPortRelay (0x33)
  • InvertPortBlue (0x36)
  • Repeat1Times (0x51)
    This is a Shortcut for RepeatLoop 1 which is actually a dummy operation, as the repeat block is was already executed once.
  • RepeatLoop2Times (0x52)
    This is a ShortCut for RepeatLoop 2 . It repeats all operations since corresponding StartLoop exactly once. Thus in summary they were run twice (once the first time and once by repeating them).
  • RepeatLoop3Times (0x53)
  • RepeatLoop4Times (0x54)
  • RepeatLoop5Times (0x55)
  • RepeatLoop6Times (0x56)
  • RepeatLoop7Times (0x57)
  • RepeatLoop8Times (0x58)
  • RepeatLoop9Times (0x59)
  • RepeatLoop10Times (0x5A)
  • RepeatLoop11Times (0x5B)
  • RepeatLoop12Times (0x5C)
  • RepeatLoop13Times (0x5D)
  • RepeatLoop14Times (0x5E)
  • RepeatLoop15Times (0x5F)
  • Wait100Ms (0x81)
    This is a Shortcut for WaitMs 100 . It waits 100 ms before going on with the next operation.
  • Wait200Ms (0x82)
  • Wait300Ms (0x83)
  • Wait400Ms (0x84)
  • Wait500Ms (0x85)
  • Wait600Ms (0x86)
  • Wait700Ms (0x87)
  • Wait800Ms (0x88)
  • Wait900Ms (0x89)
  • Wait1000Ms (0x8A)
  • Wait1100Ms (0x8B)
  • Wait1200Ms (0x8C)
  • Wait1300Ms (0x8D)
  • Wait1400Ms (0x8E)
  • Wait1500Ms (0x8F)
  • Wait1600Ms (0x90)
  • Wait1700Ms (0x91)
  • Wait1800Ms (0x92)
  • Wait1900Ms (0x93)
  • Wait2000Ms (0x94)
  • Wait2100Ms (0x95)
  • Wait2200Ms (0x96)
  • Wait2300Ms (0x97)
  • Wait2400Ms (0x98)
  • Wait2500Ms (0x99)
  • Wait2600Ms (0x9A)
  • Wait2700Ms (0x9B)
  • Wait2800Ms (0x9C)
  • Wait2900Ms (0x9D)
  • Wait3000Ms (0x9E)
  • Wait3100Ms (0x9F)
  • Wait3200Ms (0xA0)
  • Wait3300Ms (0xA1)
  • Wait3400Ms (0xA2)
  • Wait3500Ms (0xA3)
  • Wait3600Ms (0xA4)
  • Wait3700Ms (0xA5)
  • Wait3800Ms (0xA6)
  • Wait3900Ms (0xA7)
  • Wait4000Ms (0xA8)
  • Wait4100Ms (0xA9)
  • Wait4200Ms (0xAA)
  • Wait4300Ms (0xAB)
  • Wait4400Ms (0xAC)
  • Wait4500Ms (0xAD)
  • Wait4600Ms (0xAE)
  • Wait4700Ms (0xAF)
  • Wait4800Ms (0xB0)
  • Wait4900Ms (0xB1)
  • Wait5000Ms (0xB2)
  • Wait5100Ms (0xB3)
  • Wait5200Ms (0xB4)
  • Wait5300Ms (0xB5)
  • Wait5400Ms (0xB6)
  • Wait5500Ms (0xB7)
  • Wait5600Ms (0xB8)
  • Wait5700Ms (0xB9)
  • Wait5800Ms (0xBA)
  • Wait5900Ms (0xBB)
  • Wait6000Ms (0xBC)
  • Wait6100Ms (0xBD)
  • Wait6200Ms (0xBE)
  • Wait6300Ms (0xBF)
Optional field, condition: CmdCode == CmdCode.RepeatLoop
Cmd.RepeatCnt Integer (8 bits) The number of repetitions of the code block between the matching tLoop this atLoop mand. If this number is 2 the interpreter jumps back to tLoop exactly one time (which results in summary in to repetitions).
Optional field, condition: (CmdCode == CmdCode.WaitMs) or (CmdCode == CmdCode.WaitSec)
Cmd.Param Integer (8 bits) This field represents a time (either in milliseconds or seconds). The UI-sequence interpreter will delay the amount of (milli-)seconds before going on.
Optional field, condition: (CmdCode == CmdCode.EnablePort) or (CmdCode == CmdCode.DisablePort)
Cmd.SwitchIoPort Enumeration (8 bits) I/O pins of the reader that can be controlled by the user.
Values:
  • GreenLed (0x00)
    Enable/disable/toggle the green LED (if available).
  • RedLed (0x01)
    Enable/disable/toggle the red LED (if available).
  • Beeper (0x02)
    Enable/disable/toggle the beeper (if available).
  • Relay (0x03)
    Enable/disable/toggle the relay (if available).
  • Input0 (0x04)
    Retrieve the state of the custom input 0.
  • Input1 (0x05)
    Retrieve the state of the custom input 1.
  • BlueLed (0x06)
    Enable/disable/toggle the blue LED (if available).
  • TamperAlarm (0x07)
    Retrieve the state of the tamper alarm.
  • Gpio0 (0x08)
    Refers to a general purpose I/O. The physical pin assigned to this logical I/O port depends on the physical setup of the device.
  • Gpio1 (0x09)
    Refers to a general purpose I/O. The physical pin assigned to this logical I/O port depends on the physical setup of the device.
  • Gpio2 (0x0A)
    Refers to a general purpose I/O. The physical pin assigned to this logical I/O port depends on the physical setup of the device.
  • Gpio3 (0x0B)
    Refers to a general purpose I/O. The physical pin assigned to this logical I/O port depends on the physical setup of the device.
  • Gpio4 (0x0C)
    Refers to a general purpose I/O. The physical pin assigned to this logical I/O port depends on the physical setup of the device.
  • Gpio5 (0x0D)
    Refers to a general purpose I/O. The physical pin assigned to this logical I/O port depends on the physical setup of the device.
  • Gpio6 (0x0E)
    Refers to a general purpose I/O. The physical pin assigned to this logical I/O port depends on the physical setup of the device.
  • Gpio7 (0x0F)
    Refers to a general purpose I/O. The physical pin assigned to this logical I/O port depends on the physical setup of the device.
  • CustomVled0 (0x40)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled1 (0x41)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled2 (0x42)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled3 (0x43)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled4 (0x44)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled5 (0x45)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled6 (0x46)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled7 (0x47)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled8 (0x48)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled9 (0x49)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled10 (0x4A)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled11 (0x4B)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled12 (0x4C)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled13 (0x4D)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled14 (0x4E)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.

  • CustomVled15 (0x4F)

    Custom Virtual LED (VLED) port. Allows RGB LEDs to be activated with a user-defined color.