Sometimes you want to create interaction between devices using Reactor, or use the state of a device to change Variables in the system (eg changing the visible layer depending on the currently active camera)
This is what Virtual Triggers are for, providing the ability to use Conditions and Values of Devicecores to change other values in the system or even on other devices
Virtual Triggers in Reactor can be created on Layers in the Configurator and have 3 modes:
In Binary mode a condition will be interpreted like a Binary trigger (basically imitating a button).
While the condition is true the VirtualTrigger is "pressed" and while its false it is "released"
In Analog mode the selected parameter becomes an Analog Trigger (basically imitating a fader).
Everytime the value is changed a new Analog Value is sent to the defined Behavior
In Schedule mode you can configure a schedule of when your trigger will be executed using cron like syntax.
Everytime the specified time is reached the Virtual trigger will send a Binary trigger (basically a buttonpress) to the defined behavior
Cron is a UNIX utility that schedules a command or script on your server to run automatically at a specified time and date.
Not only does it allow for precise timing of unattended events, but it has a straightforward syntax
|Field name||Seconds||Minutes||Hours||Day of month||Month||Day of week|
|Allowed values||0-59||0-59||0-23||1-31||1-12 or
|Allowed special characters||* / , -||* / , -||* / , -||* / , - ?||* / , -||* / , - ?|
All 6 points of information is required.
Allowed special characters explained:
Asterisk ( * )
The asterisk indicates that the cron expression will match for all values of the field; e.g., using an asterisk in the 5th field (month) would indicate every month.
Slash ( / )
Slashes are used to describe increments of ranges. For example 3-59/15 in the 1st field (minutes) would indicate the 3rd minute of the hour and every 15 minutes thereafter. The form "*\/..." is equivalent to the form "first-last/...", that is, an increment over the largest possible range of the field. The form "N/..." is accepted as meaning "N-MAX/...", that is, starting at N, use the increment until the end of that specific range. It does not wrap around.
Comma ( , )
Commas are used to separate items of a list. For example, using "MON,WED,FRI" in the 5th field (day of week) would mean Mondays, Wednesdays and Fridays.
Hyphen ( - )
Hyphens are used to define ranges. For example, 9-17 would indicate every hour between 9am and 5pm inclusive.
Question mark ( ? )
Question mark may be used instead of '*' for leaving either day-of-month or day-of-week blank.
Alternatively we also allow these inputs:
|@yearly (or @annually)||Run once a year, midnight, Jan. 1st||0 0 0 1 1 *|
|@monthly||Run once a month, midnight, first of month||0 0 0 1 * *|
|@weekly||Run once a week, midnight between Sat/Sun||0 0 0 * * 0|
|@daily (or @midnight)||Run once a day, midnight||0 0 0 * * *|
|@hourly||Run once an hour, beginning of hour||0 0 * * * *|