Files
fpp/docs/spec/Specifiers/Telemetry-Packet-Set-Specifiers.adoc

86 lines
2.4 KiB
Plaintext

=== Telemetry Packet Set Specifiers
A *telemetry packet set specifier* arranges the telemetry channels of a
topology into a set of <<Specifiers_Telemetry-Packet-Specifiers,telemetry
packets>>.
A telemetry packet set specifier is part of a
<<Definitions_Topology-Definitions, topology definition>>.
==== Syntax
`telemetry` `packets`
<<Lexical-Elements_Identifiers,_identifier_>>
`{` _telemetry-packet-group-member-sequence_ `}`
_[_
`omit`
`{` _telemetry-channel-identifier-sequence_ `}`
_]_
_telemetry-packet-group-member-sequence_ is an
<<Element-Sequences,element sequence>> in
which each element is a *telemetry packet group member*,
and the terminating punctuation is a comma.
A telemetry packet group member is one of the following:
* An <<Specifiers_Include-Specifiers,include specifier>>.
* A <<Specifiers_Telemetry-Packet-Specifiers,telemetry packet specifier>>.
_telemetry-channel-identifier-sequence_ is an
<<Element-Sequences,element sequence>> in
which each element is a
<<Instance-Member-Identifiers_Telemetry-Channel-Identifiers,
telemetry channel identifier>>,
and the terminating punctuation is a comma.
==== Semantics
FPP recursively resolves any include specifiers in
_telemetry-packet-group-member-sequence_.
This action converts _telemetry-packet-group-member-sequence_ to a
list _L_ of telemetry packet specifiers,
each of which is a list of telemetry channel identifiers.
FPP then checks the following:
. Each telemetry packet specifier in _L_ is
<<Specifiers_Telemetry-Packet-Specifiers,valid>>,
. Each telemetry packet specifier in _L_ has
a distinct name and a distinct identifier.
. For every component instance _I_ in the enclosing topology after
<<Definitions_Topology-Definitions,resolving it to a partially numbered
topology>>,
<<Specifiers_Port-Interface-Instance-Specifiers,import>>,
for every telemetry channel _T_ that is a member of _I_,
exactly one of the following is true:
.. _T_ appears in at least one of the telemetry packet specifiers of _L_.
.. _telemetry-channel-identifier-sequence_ is present, and _T_ appears in
_telemetry-channel-identifier-sequence_.
==== Example
[source,fpp]
----
telemetry packets Packets {
packet CDH id 0 group 0 {
commandDispatcher.commandsDispatched
rateGroup1Hz.rgMaxTime
fileUplink.filesReceived
}
packet ADCS id 1 group 2 {
adcs.mode
adcs.attitude
}
include "PowerTelemetryPackets.fppi"
} omit {
adcs.extraTelemetry
}
----