SDI12Timing struct

Normative SDI-12 timing limits in microseconds.

These compile-time integral constants have no object storage. The transport, recorder, and sensor layers use the same limits when producing or validating traffic.

Public types

enum (anonymous): uint32_t { kGeneralToleranceMicros = 400UL, kBitWidthMicros = 833UL, kBreakMinMicros = 12000UL, kLineReleaseMaxMicros = 7500UL, kPreCharacterMarkingMinMicros = 8330UL, kResponseStartMaxMicros = 15000UL, kInterCharacterMarkingMaxMicros = 1660UL, kSensorWakeMaxMicros = 100000UL, kSensorStandbyMarkingMinMicros = 100000UL, kBreakRequiredAfterMarkingMicros = 87000UL, kNormalResponseMaxMicros = 380000UL, kRecorderDefaultTransactionTimeoutMillis = 3000UL, kRecorderSimpleTransactionTimeoutMillis = 5000UL, kRecorderDataTransactionTimeoutMillis = 12000UL, kRecorderRawResponseTimeoutMicros = 2000000UL, kHighVolumeDataResponseMaxMicros = 810400UL, kRecorderResponseStartMaxMicros = 17070UL, kNoResponseRetryMinMicros = 16670UL }

Enum documentation

enum SDI12Timing::(anonymous): uint32_t

Enumerators
kGeneralToleranceMicros

General timing tolerance, except where the specification disallows it.

kBitWidthMicros

The size of a bit in microseconds; 1200 baud = 1200 bits/second ~ 833.333 µs/bit

kBreakMinMicros

Minimum duration of a valid spacing break.

kLineReleaseMaxMicros

Maximum time in which a transmitter must relinquish the data line.

kPreCharacterMarkingMinMicros

Minimum marking before the first character of a command or response.

kResponseStartMaxMicros

Maximum time from command completion to the response start bit.

kInterCharacterMarkingMaxMicros

Maximum marking between the stop bit of one character and the start bit of the next character; no general tolerance applies.

kSensorWakeMaxMicros

Maximum time for a sensor to wake after detecting a break.

kSensorStandbyMarkingMinMicros

Marking duration after which a sensor must return to standby.

kBreakRequiredAfterMarkingMicros

Marking duration after which the next recorder command requires a break.

kNormalResponseMaxMicros

Maximum completion time for an ordinary ASCII response.

kRecorderDefaultTransactionTimeoutMillis

Conservative recorder transaction guard before command-derived deadlines.

kRecorderSimpleTransactionTimeoutMillis

Recorder deadline that permits all retries of an ordinary typed response.

kRecorderDataTransactionTimeoutMillis

Recorder deadline that permits all retries of one maximum-length data response.

kRecorderRawResponseTimeoutMicros

Conservative recorder response deadline for a raw extended command.

kHighVolumeDataResponseMaxMicros

Maximum transmission time for an extended ASCII data response with CRC.

kRecorderResponseStartMaxMicros

Recorder wait for observing the complete first response start bit.

kNoResponseRetryMinMicros

Earliest recorder retry after a command receives no response.