Skip to main content

IO references

Structure

IOreference characters and structure

  • IOreference strings shall match [a-zA-Z0-9_\.-:/{}] where : and / are used to tokenize and {} is used to nest other IOreferences in designated places. [] is a part of literal values.
  • Generally tokenized by colon. If no colon is found, it’s a literal value (or range of).

Literal values

  • Literal values: If enclosed in brackets [], it’s a slice with multiple values. Examples: “[red,green,blue]” = 3 values. “blue” = single value

Index 0 = Var

  • Index 1: Variable reference
  • Index 2-…: Modifiers

Example: "Var:Shift" = Value of variable "Shift"
Example: "Var:Shift:Current:Name" = Label of variable "Shift"

Index 0 = DC

String after “DC:” is split by “/“ and the parts will mean this:

  • Index 0: Device Core Key
  • Index 1: IOreference to device index (Optionally encapsulated in {})
  • Index 2: Parameter name
  • Index 3-…: Dimensions

(After the last trailing slash, if “:” is found the following will be used as modifiers)

Example: “DC:bmd-atem/Var:DeviceIndex/program/Var:MERow/:Current”
Example: “DC:dreamchip-cam/Var:DeviceIndex/PlayAtSpeed/{DC:dreamchip-cam/Var:DeviceIndex/CurrentBuffer}”

Index 0 = Preset

String after Preset:” is split by “/“ and the parts will mean this:
- Index 0: Preset reference (like variables)
- Index 1: Command
- Index 2: Preset number (IOreference, (Optionally encapsulated in {}))
- Index 3: Device Index (IOreference, (Optionally encapsulated in {}))
- Index 4-…: Dimensions
(After the last trailing slash, if “:” is found the following will be used as modifiers)

Index 0 = Flag

(TODO)

Index 0 = Behavior

Examples:
Behavior:LastEvent:Type == [Binary/Pulsed/Analog/Speed]

Behavior:LastEvent:TimeToNow:[Limit] < 500 (milliseconds); Limit is optional, but for performance reasons, please set it to the same value or higher as the one you compare with.

Behavior:LastEvent/Binary:Pressed == [true/false]

Behavior:LastEvent/Binary:Edge != NoEdge [NoEdge, Top, Left, Bottom, Right, Encoder]

Behavior:Events/[the eventHandlerKey]:TimeToNow:[Limit] < 500 (milliseconds) Last accepted event. Limit is optional, but for performance reasons, please set it to the same value or higher as the one you compare with.

Behavior:IOreference[:modifiers added to IO reference]

Behavior:Const:[constant]
Behavior:Path
Behavior:Name
Behavior:Id
Behavior:Panels - provides all panel IDs this behavior is mapped to.

Index 0 = System

System:Lock
System:IPAddress

Index 0 = Panels

String after Panels: is split by “/“ and the parts will mean this:

  • Index 0: Target of ID: "Canvas", "Panel", "CanvasOfPanel"
    • Canvas/[id]/ - forcing a given canvas id. Normally not used
    • Panel/[id]/ - forcing a particular panel only. May be used when canvas is not used to represent a coherent panel
    • CanvasOfPanel/[id]/ - normally the one used because Reactor knows the panel ID, but usually desires to target the canvas of the panel
      (Usual source of id is: Behavior:Panels)
  • Index 1: ID of target (IOreference, (Optionally encapsulated in {}))
  • Index 2: Parameter
    • SleepTime, minutes
    • DimTime, minutes
    • DisplayBrightness, 0-8
    • LEDBrightness, 0-8
    • GlobalBrightness, 0-8
    • Sleep (binary: "on", "off") - Is reset by the panel when it wakes up again. It's probed once a second, so it can feel a little like a "hold down" function
    • ResetSleepTimer (trigger)

General Modifiers

[] - Not adding any modifiers returns the values…
Name - Returns Name of the reference (like a parameter or variable name)
Mutable - Returns “true” if available for change
Assumed - Returns "true" if a parameter is assumed in the core
Exists - Returns “true” if exists
Default - Returns default values of IO reference
Default:Name - Returns names of default values of IO reference
FineSteps - For a DC this returns the recommended fine steps, else returns 1
CoarseSteps - For a DC this returns the recommended fine coarse, else returns 10
Current - Returns values (same as no modifier)
Current:Name - Returns names of values
Current:Normalized - Returns value normalized to value range 0-1000
Current:Index - Returns index of current value from option list, starting with zero
Current:BufferTimeToNow - Returns milliseconds from buffered value time out to current time.
Label - for constants, returns the label a given constant may have
All - Returns all option values for a parameter
Index:[int/HWC behaviour constant string ref] - Returns option value with index [int] or if its a string, the constant of the HWC Behavior (works only for HWC behaviours then) (starting with zero)
Index:[int/HWC behaviour constant string ref]:Name - Returns name of option value with index [int] (starting with zero)
Index:[int/HWC behaviour constant string ref]:Exists - Returns true if the index exists
Index:Last - Returns last option value
Confirm:[int] - If added to a setting, stepping or mapping values, it will change the value only locally and waiting to be confirmed for [int] milliseconds after which it will fall back. Confirmation happens if a trigger (valueless value setting) happens. (works only for Device Cores)
Wait:[int] - like Confirm, but the change is automatically accepted on the expiry of the time. (works only for Device Cores)
Script - returns "true" if there is an event script defined
Script:IsRunning - returns "true" if there is a script and if script is running.
ASCIIOnly - Returns true if only ascii characters are found in string (<127). Works also for Behavior:Const:[ConstantName]:ASCIIOnly
FineSteps - For Device Cores: Step size for fine steps (an integer value)
CoarseSteps - For Device Cores: Step size for coarse steps (an integer value)