Hardware Components and Behaviors
What is a HardwareComponent (HWC) ?
Hardware Components are everything you can find on a SKAARHOJ controller or any RawPanel compatible device (eg: xpanel-applications).
Some physical components, such as a Joystick can be represented as multiple HardwareComponents in Reactor (in this case Up/Down, Left/Right and Rotate)
There are 4 basic types of hardware components:
- Buttons (Binary Inputs)
- Faders / potentiometers (Analog Inputs)
- Encoders (Pulsed Inputs)
- Joysticks (Speed Inputs)
Additionally these could have different kinds of displays linked to them.
Buttons can have different kinds of color LEDs to show status.
Larger Displays can also consist of different Tiles that allow you to configure individual parts separately in an easy way.
What is a Behavior ?
To configure what a specific component does and shows we need to configure it's Behavior. Click any Hardware component on the configurator view and you will get to the Behavior that is defined on it. In case there is no Behavior created yet for this component the inspector will show you a palette of pre-configured Behaviors based on the devices you have added on HomeScreen.
Clicked on a Component and found a purple Generator ? This component's behavior is likely defined by a table from home screen. You can simply overlay it by selecting the UserSection in the section dropdown. If you like to know more about this or modify the generator please see the chapter on generators
Selecting a Parameter
To select a Behavior simply select the component you want to change. If there is no behavior yet on the component you can see the behavior palette in the inspector. You can select any preconfigured parameter from the list of your devices.
If you have selected a component that already has a configured behavior you can click Change Behavior in the top right corner. This will reopen the behavior palette and lets you change to a different one.
Manually changing parameter in a Behavior
To edit the parameter inside of a behavior manually (without using the pre-configured behaviors from the palette) simply click the Show More button. A yellow pen icon will appear next to the name of the parameter field. Simply click it and use the parameter reference helper window to configure the parameter you want to choose.
Once you click submit you will be presented with this window:
If you click the green Continue button you will use the Automatic Behavior Configuration
This means reactor will automatically select a Template Behavior and add configuration constants to your behavior. This makes it very fast to add almost any parameter to a component.
In some cases you might want to keep the settings you have configured manually on the Behavior. In this cases just click Keep current and reactor will only change the parameter reference.
Changing Template Behavior
Reactor does it's best to choose the correct Template Behavior for your behavior. It does so based on what it knows about the type of component and the parameter you select. Sometimes you might still want to change this. To do so click Show More. This will show the Template Behavior dropdown
The Template Behavior shows the most commonly used templates at the top. If fou have created Template Behaviors yourself they will also be shown. If you can not find what you are looking for click Show All inside of the dropdown to show more included Template Behaviors of reactor
Available Template Behaviors
Here is a list of the most important Template Behaviors included in Reactor.
Set specific value
Use this template if you want any action on the component to set a specified value on the selected parameter.
Example: Setting a AUX of an ATEM to input 1 using a button
Set a value by index
Same as Set specific value, but you can specify an index of the option for the specific parameter.
Example: Setting the current Scene in OBS to the 5th scene from the start
Change by Step
Use this whe you want to move up and down a value using an encoder or 4way button.
Example: Use an encoder to control the current shutter speed of a camera
This Template Behavior is the most versatile one. It is almost always usable
Change by step for larger ranges
Same as Change by step, but for longer value ranges.
- Encoders will move more steps if rotated faster and a fine / coarse selection can be made by pressing down shortly.
- Buttons will continue to increment when held down.
Example: Changing the electronic shutter in .01 values of a degree
Change by step with limited values
Sometimes a parameter might have many options to choose from but you want to limit the possible options that can be selected with the current button or encoder. Use this Settings template to define several valid options that can be set for the parameter
Example: Making an Encoder only switch between 3 certain WhiteBalance modes (eg Manual/Preset1/Preset2)
Change by step with confirmation
Use this Template Behavior on encoders and 4 way buttons if you want to have them not immediately change the value, but let you select and change by pressing down.
If no change is confirmed the value shown will jump back to the current value after the specified time.1
Example: Loading a new setup file on an Arri Camera. On an encoder use left and right to select first then press down to confirm.
Change a value on fader / potentiometer
This is the default Template Behavior to use when mapping a parameter to a fader or LEDBar
Example: Controlling Gain on an RCP Joystick
Change a value with motorized fader
This is the default Template Behavior to use when mapping a parameter to a motorized fader. It will correctly send back the position to the fader if the value changes in the system.
Example: Controlling Iris using a ColorFlyV2 Fader
Toggle two options
Choose this Template Behavior for any kind of On/Off, Show/Hide, Enable/Disable scenarios. The button will light up bright once the function is activated and show dimmed if not.
Example: Turning on and off bars on a camera
Toggle on hold
This Template Behavior can be used similar to the above, but it will only react after pushing down for a specified amount of time, defaults to 1000 milliseconds
Example: A NETIO Power outlet shall only be toggled when the button is held down for one second
Trigger Action
Use this template for all kind of one-shot parameters (commands)
Example: Triggering OnePush Autofocus on a camera
Speed parameter
This is the default Template Behavior for mapping things to a speed component (Joysticks). But it can also be used to control speed commands from other components like encoders
Example: Control Pan Speed using a joystick
Binary Output (for GPO)
This Template Behavior uses the parameter to set or clear the Output of a GPO contact on RCPs or LinkIO boxes.
Example: map a TallyFlag to the closed contact on the back of an RCP
Hold-Down
Used for parameters with two options. When the button is pressed down the parameter is set to on. When it is released it is set to off.
Useful for GPI Inputs
Example: Mapping Record to the state of a GPI closed contact of an RCP
Display value (without control)
Show a value that does not provide control, or deliberately lock control of a value.
Example: Show the battery voltage of a camera
Custom Template Behaviors
You can also create your own Template Behaviors, see the chapter Template Behaviors in Advanced Configuration
Before Reactor v2.0.5-pre5 this needed a ':Confirm:1000' modifier and would only work on devicecore parameters. In any later versions this Masterbehavior will work without any extra config steps. The old SettingsTemplate used to be called 'SKAARHOJ:Confirm' while the new one is called 'SKAARHOJ:ConfirmValue'