Alarm Criteria Syntax
Alarm Criteria can include many different arithmetic and logical operations on pulse- and pass-level criteria as well as on the prefix assigned to each microphone.
Numerical Boolean Operators
| Operator | Definition |
|---|---|
= |
Equals |
!= or <> |
Does not equal |
< |
Is less than |
<= |
Is less than or equal to |
> |
Is greater than |
>= |
Is greater than or equal to |
Numerical Arithmetic Operators
You can use addition, subtraction, and parentheses to construct logical tests using pulse and pass characteristics and numerical constants.
Example: Using Parentheses and Subtraction to Test Call Bandwidth
The following expression returns true if the difference between the maximum frequency and minimum frequency is less than 15,000 Hz.
( Fmax - Fmin ) < 15000 # Call bandwidth less than 15 kHz
Pulse and Pass Characteristics
Pulse and pass characteristics in Alarm Criteria are case-insensitive. For example, fc, Fc, fC, and FC all mean characteristic frequency.
With the exception of N, pass-level alarms operate on the averages of these characteristics across all pulses in a single pass.
| Operand | Unit | Definition |
|---|---|---|
| N | Pulses | Number of pulses in a pass (equal to 1 for pulse-level alarms) |
| Fc | Hertz | Characteristic frequency |
| Sc | Octaves per second | Characteristic slope |
| Fmax | Hertz | Maximum frequency |
| Fmin | Hertz | Minimum frequency |
| Fmean | Hertz | Mean frequency |
| TBC | Seconds | "Time between calls," or time between individual pulses (equal to 0 for pulse-level alarms) |
| Fk | Hertz | Knee frequency |
| Tk | Seconds | Time of the knee after the pulse onset |
| S1 | Octaves per second | Slope before the knee |
| Tc | Seconds | Time of the characteristic after the pulse onset |
| Dur | Seconds | Pulse duration |
String Operands
Currently, the only string operand is prefix (case-insensitive), which is the identifying name given to each microphone.
String Boolean Operators
| Operator | Definition |
|---|---|
= |
Equals (case-sensitive) |
~ |
Includes substring (case-sensitive) |
Example: Boolean Operators on Prefix
Applying Alarm criteria to prefix means you can apply separate logic for each microphone connected to a single SMART System.
Say a SMART System includes two microphones with prefixes TowerHigh and TowerLow, respectively.
The following expressions will return true for any pulses recorded by the TowerHigh microphone:
prefix = "TowerHigh"
prefix ~ 'High'
The following expression will always return false because string boolean operators are case-sensitive:
prefix ~ "high"
Combining Boolean Expressions
Boolean expressions can be combined using the following operators:
ANDORNOT
These operators are case-insensitive.
Comments
The # marks everything to its right as a comment until the end of
the line.
Example
Prefix = "TowerHigh" # Only test recordings from high microphone
AND Fc > 40000 # Characteristic frequency > 40 kHz
