product: maestro audience: test-developer authority: normative
Measurement Patterns
Numeric measurement (default type)
Pass condition: value >= low_limit && value <= high_limit.
measurement:
name: "VOUT_5V" # REQUIRED — stored in every record
target: 5.05 # mock: used as measured value
value: "{{measured_v}}" # gRPC runners: template resolves to actual
low_limit: 4.75 # lower bound (inclusive)
high_limit: 5.25 # upper bound (inclusive)
unit: "V"
Numeric comparison operators
operator |
Aliases | Evaluation |
|---|---|---|
| (omitted) | — | value >= low_limit && value <= high_limit |
equal |
eq |
value == target |
notequal |
ne |
value != target |
greaterthan |
gt |
value > low_limit |
greaterthanorequal |
gte, ge |
value >= low_limit |
lessthan |
lt |
value < high_limit |
lessthanorequal |
lte, le |
value <= high_limit |
log |
— | Always PASS; informational only |
These operators apply to type: numeric only. For type: boolean and type: string
the only evaluation mechanism IS the expected: field — however, operator: log IS
supported on any type (numeric, boolean, string) to make the measurement informational-only.
Boolean measurement
Pass condition: value == expected.
Operators are NOT supported for type: boolean. Omitting expected: causes the
measurement to always PASS (informational-only).
measurement:
name: "RELAY_SELFTEST"
type: boolean
value: "true"
expected: "true"
String measurement
Pass condition: value == expected (exact, case-sensitive).
Operators are NOT supported for type: string. Omitting expected: causes the
measurement to always PASS.
measurement:
name: "FW_VERSION"
type: string
value: "v2.1.0"
expected: "v2.1.0"
Informational-only measurement (log operator)
operator: log applies to all measurement types. The measurement always evaluates
to PASS — the value IS recorded without any limit or expected-value check.
# Numeric — record a current draw without limits
measurement:
name: "SUPPLY_CURRENT_LOG"
target: 0.245
unit: "A"
operator: log
# String — record a MAC address
measurement:
name: "MAC_ADDRESS"
type: string
operator: log
value: "{{mac_address}}"
# Boolean — record a pin state
measurement:
name: "BOOT_FLAG"
type: boolean
operator: log
value: "{{boot_flag}}"
Multiple measurements from one step
Use measurements: (plural) when a single function returns several values:
- name: "Read all power rails"
runner: python
runner_type: python3.11
module: "instruments"
function: "read_power_rails"
outputs:
rail_3v3: "{{v3v3}}"
rail_5v0: "{{v5v0}}"
measurements:
- name: "RAIL_3V3"
value: "{{v3v3}}"
low_limit: 3.135
high_limit: 3.465
unit: "V"
- name: "RAIL_5V0"
value: "{{v5v0}}"
low_limit: 4.75
high_limit: 5.25
unit: "V"
measurements: takes precedence over measurement: when both are present.