A trigger is a condition applied to a data stream resulting in a "match or no match" output stream. The most common case for this is edit directives, where the trigger governs if the action of the edit applies or not.
The triggering mechanism is also re-used elsewhere, but it always has the same effect: evaluating if a condition is met or not on data.
The trigger condition is selected with the enumeration value Type
:
Always
-
The trigger is always met. This is the default when no type is selected.
Never
orDisable
-
The trigger is never met.
HasFlag
,HasFlags
,Flag
, orFlags
-
Test for the presence of all specified flags.
Flags
-
The flags to require.
Input
-
The data selection of the flags variable to test.
Path
-
The path in the selected variable to look for flags at.
Lacksflag
orLacksFlags
-
Test for the absence of all specified flags.
Flags
-
The flags to require to be absent.
Input
-
The data selection of the flags variable to test.
Path
-
The path in the selected variable to look for flags at.
Periodic
,Moment
, orInstant
-
Activate the trigger at specific moments within a repeating interval in time. For example, a trigger that activates on the 15th, 30th, and 45th minutes after the hour.
Interval
-
The time interval governing the inspection range. Enabling alignment is usually required for repeatable results.
MomentUnit
-
The enumeration setting the time interval units that the moments are specified in.
Moments
-
An array of integer units after the interval start to activate on.
PeriodicRange
orTimeRange
-
Activate the trigger for all data inside a range within a repeating interval in time. For example, a trigger that is active from 15 to 30 minutes after the hour.
Interval
-
The time interval governing the inspection range. Enabling alignment is usually required for repeatable results.
Start
-
The time offset after the beginning of the main interval to begin activation.
End
-
The time offset after the beginning of the main interval to end activation.
Exists
-
Activate the trigger when the specified data exists with any value, even undefined or invalid ones.
Input
-
The data selection of the value to test.
Path
-
The path within the values to inspect.
Defined
-
Activate the trigger when the specified data has a valid and non-missing value.
Input
-
The data selection of the value to test.
Undefined
-
Activate the trigger when the specified data exists but has an explicitly undefined value.
Input
-
The data selection of the value to test.
AND
orAll
-
Activate when all sub-triggers are also active, in the form of a logical AND operation.
Triggers
-
An array of further triggers to test.
OR
orAny
-
Activate when any sub-trigger is active, in the form of a logical OR operation.
Triggers
-
An array of further triggers to test.
Less
orLessthan
-
Compare a left and right input, activating when the left one is strictly less than the right one.
Left
-
The left hand side of the inequality.
Right
-
The right hand side of the inequality.
LessEqual
orLessThanOrEqual
-
Compare a left and right input, activating when the left one is less than or equal to the right one.
Left
-
The left hand side of the inequality.
Right
-
The right hand side of the inequality.
Greater
orGreaterThan
-
Compare a left and right input, activating when the left one is strictly greater than the right one.
Left
-
The left hand side of the inequality.
Right
-
The right hand side of the inequality.
GreaterEqual
orGreaterThanOrEqual
-
Compare a left and right input, activating when the left one is greater than or equal to the right one.
Left
-
The left hand side of the inequality.
Right
-
The right hand side of the inequality.
Equal
orEqualTo
NotEqual
orNotEqualTo
Range
orInsideRange
ModularRange
orInsideModularRange
-
Compare a value with a wrapped or modular bound specification, activating when it is between the lower and upper bounds. This also wraps the other inputs to a specific range, allowing the activation range to "pass through" the ends. For example, a specified as [0,360] with limits set to [350,10] activates on values of 355 and 5 but does not activate on 340.
Start
-
The start of the comparison range.
End
-
The end of the comparison range.
Value
-
The input value to check.
Modulus/Start
-
The lower limit of the total range.
Modulus/End
-
The upper limit of the total range.
OutsideRange
OutsideModularRange
-
Compare a value with a wrapped or modular bound specification, activating when it is outside the bounds defined by the lower and upper limits. This also wraps the other inputs to a specific range, allowing the activation range to "pass through" the ends. For example, a specified as [0,360] with limits set to [350,10] activates on values of 340 and 20 but does not activate on 355 or 5.
Start
-
The start of the comparison range.
End
-
The end of the comparison range.
Value
-
The input value to check.
Modulus/Start
-
The lower limit of the total range.
Modulus/End
-
The upper limit of the total range.
Script
-
A trigger defined by evaluating script code for incoming time segments. The trigger is considered met when the script code returns true.
Code
-
The script code to execute for each segment.
Input
-
The data selection of inputs sent to the script.
In addition a trigger accepts several parameters controlling its output activation:
Invert
-
A boolean controlling if the trigger is considered met when the condition is false and unmet when it is true.
Extend
-
A time interval setting how far the trigger is considered to be met before and after the actual hit. For example, if set to five minutes the trigger will report that it was met for five minutes on both sides of a single "actual" instance of it being met.
Extend/Before
-
A time interval setting the extension before the actual hit only.
Extend/After
-
A time interval setting the extension after the actual hit only.
/Type,"Always"
/Type,"Periodic" /Interval/Units,"Hour" /Interval/Count,1 /Interval/Align,TRUE /MomentUnit,"Minute" /Moments/#0,0 /Moments/#1,15 /Moments/#2,30 /Moments/#3,45
Editing Trigger Numeric Inputs
Edit triggers can include numeric comparisons. To perform these the triggers provide an input conversion mechanism.
The input conversion allows for both data extraction and function conversion. Since this can be nested, this allows for complex function construction.
The input conversion is selected with the enumeration value Type
within the input specification (e.g. Left/Type
):
Value
-
A value read from the input data. This is the default when no type is selected.
Value
-
The data selection to read values from.
Path
-
The path in the selected variable to get the value at.
Constant
-
A constant value.
Value
-
The real number value of the input.
Additionally, if no type is selected and the entire trigger is a number, that number is intercepted as a constant value.
Sum
orAdd
Difference
orSubtract
-
Subtract inputs sequentially from the first one.
RequireAll
-
The boolean indicating if all inputs are required to be valid to produce an output. When set explicitly to false, any invalid inputs are simply omitted from the final difference.
Inputs
-
An array of inputs to subtract. The first valid one is the initial value and further ones are subtracted from it (First - Second - Third … ).
Product
orMultiply
-
Multiply together set of inputs to produce a final product of their values.
Quotient
orDivide
-
Divide inputs to produce a final quotient value.
RequireAll
-
The boolean indicating if all inputs are required to be valid to produce an output. When set explicitly to false, any invalid inputs are simply omitted from the final value.
Inputs
-
An array of inputs to divide. The first valid input is the initial value and all subsequent ones are subsequent ones are divided from it (First / Second / Third … ).
Power
-
Raise inputs to powers to produce a final value.
RequireAll
-
The boolean indicating if all inputs are required to be valid to produce an output. When set explicitly to false, any invalid inputs are simply omitted from the final value.
Inputs
-
An array of inputs to raise to each others power. The first valid input is the initial value with subsequent ones being the powers the previous value is raised to ((First ^ Second) ^ Third …).
Largest
-
Select the largest value in a set of inputs. The final output value is the value of the largest (closest to +infinity) of the inputs.
Smallest
-
Select the smallest value in a set of inputs. The final output value is the value of the largest (closest to -infinity) of the inputs.
First
,FirstValid
, orValid
-
Select the first valid and defined input from a list.
Inputs
-
An array of inputs to inspect and select from. The first one in the order of the array that has a valid and defined value is the final value of the input.
Polynomial
,Calibration
,Poly
, orCal
-
Apply a calibration value to an input value.
Input
-
The input value to the calibration.
Calibration
-
The calibration applied to the input.
PolynomialInvert
,PolyInvert
, orInvertCal
-
Invert or back out a calibration from an input value. The result is the value before the calibration was applied.
Input
-
The input value to the calibration inversion.
Calibration
-
The calibration that is inverted.
Minimum
-
The real number minimum expected value of the uncalibrated (original reversed) input. This is used for root selection when reversing higher order polynomials.
Maximum
-
The real number maximum expected value of the uncalibrated (original reversed) input. This is used for root selection when reversing higher order polynomials.
sin
-
Apply sin(x) to an input value.
Input
-
The input to the function.
cos
-
Apply cos(x) to an input value.
Input
-
The input to the function.
log
orln
-
Apply ln(x) to an input value.
Input
-
The input to the function.
log10
-
Apply log⏨(x) to an input value.
Input
-
The input to the function.
exp
-
Apply eˣ to an input value.
Input
-
The input to the function.
abs
,Absolute
, orAbsoluteValue
-
Take the absolute value of an input.
Input
-
The input to the function.
Mean
-
Calculate the arithmetic mean of another input over some moving window of time. The value is centered at a given time of the input, with the inspected data extending backwards and forwards from that time.
Input
-
The input to inspect.
Interval
-
The time interval to inspect on both sides of the current time.
Before
-
The time interval to inspect before the current time. The value takes precedence over the symmetric one, if both are present.
After
-
The time interval to inspect after the current time. The value takes precedence over the symmetric one, if both are present.
Gap
-
The time interval governing the gap threshold. If there is a gap more than this amount of time between two values, the input buffer is split and considered discontinuous.
StandardDeviation
orsd
-
Calculate the standard deviation of another input over some moving window of time. The value is centered at a given time of the input, with the inspected data extending backwards and forwards from that time.
Input
-
The input to inspect.
Interval
-
The time interval to inspect on both sides of the current time.
Before
-
The time interval to inspect before the current time. The value takes precedence over the symmetric one, if both are present.
After
-
The time interval to inspect after the current time. The value takes precedence over the symmetric one, if both are present.
Gap
-
The time interval governing the gap threshold. If there is a gap more than this amount of time between two values, the input buffer is split and considered discontinuous.
Quantile
-
Calculate a quantile of another input over some moving window of time. The value is centered at a given time of the input, with the inspected data extending backwards and forwards from that time.
Input
-
The input to inspect.
Quantile
-
The real number quantile to calculate, in the range [0,1].
Interval
-
The time interval to inspect on both sides of the current time.
Before
-
The time interval to inspect before the current time. The value takes precedence over the symmetric one, if both are present.
After
-
The time interval to inspect after the current time. The value takes precedence over the symmetric one, if both are present.
Gap
-
The time interval governing the gap threshold. If there is a gap more than this amount of time between two values, the input buffer is split and considered discontinuous.
Median
-
Calculate the median of another input over some moving window of time. The value is centered at a given time of the input, with the inspected data extending backwards and forwards from that time.
Input
-
The input to inspect.
Interval
-
The time interval to inspect on both sides of the current time.
Before
-
The time interval to inspect before the current time. The value takes precedence over the symmetric one, if both are present.
After
-
The time interval to inspect after the current time. The value takes precedence over the symmetric one, if both are present.
Gap
-
The time interval governing the gap threshold. If there is a gap more than this amount of time between two values, the input buffer is split and considered discontinuous.
Minimum
ormin
-
Calculate the minimum (closest to -infinity) of another input over some moving window of time. The value is centered at a given time of the input, with the inspected data extending backwards and forwards from that time. The result is the minimum value of all values being considered.
Input
-
The input to inspect.
Interval
-
The time interval to inspect on both sides of the current time.
Before
-
The time interval to inspect before the current time. The value takes precedence over the symmetric one, if both are present.
After
-
The time interval to inspect after the current time. The value takes precedence over the symmetric one, if both are present.
Gap
-
The time interval governing the gap threshold. If there is a gap more than this amount of time between two values, the input buffer is split and considered discontinuous.
Maximum
ormax
-
Calculate the maximum (closest to +infinity) of another input over some moving window of time. The value is centered at a given time of the input, with the inspected data extending backwards and forwards from that time. The result is the maximum value of all values being considered.
Input
-
The input to inspect.
Interval
-
The time interval to inspect on both sides of the current time.
Before
-
The time interval to inspect before the current time. The value takes precedence over the symmetric one, if both are present.
After
-
The time interval to inspect after the current time. The value takes precedence over the symmetric one, if both are present.
Gap
-
The time interval governing the gap threshold. If there is a gap more than this amount of time between two values, the input buffer is split and considered discontinuous.
Slope
-
Calculate the slope of another input over some moving window of time based on linear regression in seconds. The value is centered at a given time of the input, with the inspected data extending backwards and forwards from that time. The result is the slope of a least squares regression fit with the X dimension being the time in seconds. So the final output value in is the input’s units per second.
Input
-
The input to inspect.
Interval
-
The time interval to inspect on both sides of the current time.
Before
-
The time interval to inspect before the current time. The value takes precedence over the symmetric one, if both are present.
After
-
The time interval to inspect after the current time. The value takes precedence over the symmetric one, if both are present.
Gap
-
The time interval governing the gap threshold. If there is a gap more than this amount of time between two values, the input buffer is split and considered discontinuous.
Elapsed
,Length
, orDuration
-
Calculate the amount of time in a moving window of time. The value is centered at a given time of the input, with the inspected data extending backwards and forwards from that time. The result is simply the end of the final value being considered minus the fist value, in seconds.
Input
-
The input to inspect.
Interval
-
The time interval to inspect on both sides of the current time.
Before
-
The time interval to inspect before the current time. The value takes precedence over the symmetric one, if both are present.
After
-
The time interval to inspect after the current time. The value takes precedence over the symmetric one, if both are present.
Gap
-
The time interval governing the gap threshold. If there is a gap more than this amount of time between two values, the input buffer is split and considered discontinuous.
Average
orSmoothed
-
Calculate the correctly weighted arithmetic mean of an input in a moving window of time. The value is centered at a given time of the input, with the inspected data extending backwards and forwards from that time. The result is the mean value with coverage and time contributions being considered. This allows for emulation of the final normal averaging applied to data.
Value
-
The data selection to read values from.
Path
-
The path in the selected variable to get the value at.
Interval
-
The time interval to inspect on both sides of the current time.
Before
-
The time interval to inspect before the current time. The value takes precedence over the symmetric one, if both are present.
After
-
The time interval to inspect after the current time. The value takes precedence over the symmetric one, if both are present.
Gap
-
The time interval governing the gap threshold. If there is a gap more than this amount of time between two values, the input buffer is split and considered discontinuous.
/Type,"GreaterThan" /Left/Value/#0/Variable,"BsG_S11" /Right,5.0 /Extend/Units,"Minute" /Extend/Count,5
/Type,"GreaterThan" /Left/Value/#0/Variable,"BsG_S11" /Extend/Before/Units,"Second" /Extend/Before/Count,30 /Right/Type,"Product" /Right/Inputs/#0,2.5 /Right/Inputs/#1/Type,"Mean" /Right/Inputs/#1/Interval/Units,"Minute" /Right/Inputs/#1/Interval/Count,15 /Right/Inputs/#1/Input/Type,"Value" /Right/Inputs/#1/Input/Value/Variable,"BsG_S11"