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 or Disable

The trigger is never met.

HasFlag, HasFlags, Flag, or Flags

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 or LacksFlags

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, or Instant

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 or TimeRange

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 or All

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 or Any

Activate when any sub-trigger is active, in the form of a logical OR operation.

Triggers

An array of further triggers to test.

Less or Lessthan

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 or LessThanOrEqual

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 or GreaterThan

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 or GreaterThanOrEqual

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 or EqualTo

Compare two inputs, activating when their values are equal.

Left

The first input to compare.

Right

The second input to compare.

NotEqual or NotEqualTo

Compare two inputs, activating when their values are not equal.

Left

The first input to compare.

Right

The second input to compare.

Range or InsideRange

Compare a value with a bound specification, activating when it is between the lower and upper bounds.

Start

The start of the comparison range.

End

The end of the comparison range.

Value

The input value to check.

ModularRange or InsideModularRange

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

Compare a value with a bound specification, activating when it is outside the bounds defined by the lower and upper limits.

Start

The start of the comparison range.

End

The end of the comparison range.

Value

The input value to check.

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.

Always active
/Type,"Always"
Remove specific minutes after the hour
/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 or Add

Add together set of inputs to produce a final sum of their values.

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 sum.

Inputs

An array of inputs to sum together.

Difference or Subtract

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 or Multiply

Multiply together set of inputs to produce a final product of their values.

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 product.

Inputs

An array of inputs to multiply together.

Quotient or Divide

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.

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 ignored for the calculation.

Inputs

An array of inputs to inspect and select from.

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.

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 ignored for the calculation.

Inputs

An array of inputs to inspect and select from.

First, FirstValid, or Valid

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, or Cal

Apply a calibration value to an input value.

Input

The input value to the calibration.

Calibration

The calibration applied to the input.

PolynomialInvert, PolyInvert, or InvertCal

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 or ln

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, or AbsoluteValue

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 or sd

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 or min

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 or max

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, or Duration

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 or Smoothed

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.

Symmetric extended threshold
/Type,"GreaterThan"
/Left/Value/#0/Variable,"BsG_S11"
/Right,5.0
/Extend/Units,"Minute"
/Extend/Count,5
Asymmetric risk threshold
/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"