ait.core.limits module

AIT Limits

The ait.core.limits module provides limit definitions for telemetry fields.

The expected limits.yaml should follow this schema:

  • !Limit source: – telemetry source for the limit. should follow format ‘Packet.field_name’ desc: – description of the limit units: – the units used for possible conversion depending on the units set in the

    telemetry dictionary

    lower: – lower limits

    error: – trigger error if telemetry value exceeds this lower bound (exclusive) warn: – trigger warning if telemetry value exceeds this lower bound (exclusive)

    upper: – upper limits

    error: – trigger error if telemetry value exceeds this upper bound (exclusive) warn: – trigger warning if telemetry value exceeds this upper bound (exclusive)

    value: – enumerated values to trigger error/warning

    error: – trigger error if telemetry value == or in list of strings warn: – trigger warning if telemetry value == or in list of strings

    when: – when condition for specifying the necessary state when this limit applies persist: – number of seconds the value must persist before limits trigger

For example:

  • !Limit source: 1553_HS_Packet.Voltage_A desc: Voltage A units: Kelvin lower:

    error: 5.0 warn: 10.0

    upper:

    error: 45.0 warn: 40.0

    when: 1553_HS_Packet.BankA == ‘ON’ persist: 5

  • !Limit source: Ethernet_HS_Packet.product_type desc: tbd value:

    error: FOOBAR warn:

    • FOO
    • BAR
class ait.core.limits.LimitDefinition(*args, **kwargs)

Bases: ait.core.json.SlotSerializer, object

__init__(*args, **kwargs)

Creates a new LimitDefinition.

convert(value, new_unit, old_unit)
error(value, units=None)
warn(value, units=None)
desc
lower
persist
source
units
upper
value
when
class ait.core.limits.LimitsDict(*args, **kwargs)

Bases: dict

__init__(*args, **kwargs)

Creates a new Limits Dictionary from the given limits dictionary filename or YAML string.

add(defn)

Adds the given Limit Definition to this Limits Dictionary.

load(content)

Loads Limit Definitions from the given YAML content into this Telemetry Dictionary. Content may be either a filename containing YAML content or a YAML string.

Load has no effect if this Limits Dictionary was already instantiated with a filename or YAML content.

toJSON()
class ait.core.limits.Thresholds(**kwargs)

Bases: ait.core.json.SlotSerializer, object

__init__(**kwargs)

x.__init__(…) initializes x; see help(type(x)) for signature

toJSON()
ait.core.limits.YAMLCtor_LimitDefinition(loader, node)
ait.core.limits.getDefaultDict(reload=False)
ait.core.limits.getDefaultDictFilename()
ait.core.limits.getDefaultSchema()