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:

  • AND
  • OR
  • NOT

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