Skip to content

DynDataStrMsg

Dyn Data Str Msg

AM Type: 82

Source Code


Field Bits Type Unit Condition Mutator Error Validator Description
ls_header Struct Always
├── uplink_version 4 UInt Always
├── node_id_high 4 Fragment Always
├── product_code 8 UInt Always
├── node_id 16 UInt Always
├── sequence_number 8 UInt Always
└── am_type 8 UInt Always
timestamp 32 TimestampField Always TimestampMutator
version 4 UInt Always RangeValidator[0, 2]
commonHeader Switch Always
├── reserved 2 Reserved version == 0
├── outputParameter 2 Enum version == 0 NO_ALGORITHM (0), MTVV (1), PPV (2), PGA (3), PSA (4)
├── reserved 1 Reserved version == 1
├── alertReport 1 Bool version == 1
├── outputParameter 2 Enum version == 1 NO_ALGORITHM (0), MTVV (1), PPV (2), PGA (3), PSA (4)
├── alertReport 1 Bool version == 2
└── outputParameter 3 Enum version == 2 NO_ALGORITHM (0), MTVV (1), PPV (2), PGA (3), PSA (4)
readings Switch Always
├── frameHeader Struct outputParameter == (MTVV, 0)
│   ├── frameNumber 1 UInt outputParameter == (MTVV, 0)
│   ├── totalEvents 4 UInt outputParameter == (MTVV, 0) RangeValidator[0, 9]
│   ├── nEvents 3 UInt frameNumber == 0 RangeValidator[0, 4]
│   └── nEvents 3 UInt frameNumber != 0 RangeValidator[0, 5]
├── transmissionThreshold 10 Mtvv dB frameNumber == 0 OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575)
├── Reporting Events [nEvents] Seq outputParameter == (MTVV, 0)
│   ├── timestampEvent 32 TimestampField TimestampMutator
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   ├── yAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   └── zAxis Struct
│       └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── frameHeader Struct outputParameter == (MTVV, 1)
│   ├── frameNumber 1 UInt outputParameter == (MTVV, 1)
│   ├── totalEvents 4 UInt outputParameter == (MTVV, 1) RangeValidator[0, 9]
│   ├── nEvents 3 UInt frameNumber == 0 RangeValidator[0, 4]
│   └── nEvents 3 UInt frameNumber != 0 RangeValidator[0, 5]
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047)
├── transmissionThreshold 10 Mtvv dB frameNumber == 0 OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575)
├── Reporting Events [nEvents] Seq outputParameter == (MTVV, 1)
│   ├── timestampEvent 32 TimestampField TimestampMutator
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   ├── yAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   └── zAxis Struct
│       └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── frameHeader Struct outputParameter == (MTVV, 2)
│   ├── frameNumber 1 UInt outputParameter == (MTVV, 2)
│   ├── totalEvents 3 UInt outputParameter == (MTVV, 2) RangeValidator[0, 4]
│   └── nEvents 2 UInt outputParameter == (MTVV, 2) RangeValidator[0, 2]
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047)
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575)
├── Reporting Events [nEvents] Seq outputParameter == (MTVV, 2)
│   ├── timestampEvent 32 TimestampField TimestampMutator
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   ├── yAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   └── zAxis Struct
│       └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── frameHeader Struct outputParameter == (PPV, 0)
│   ├── frameNumber 1 UInt outputParameter == (PPV, 0)
│   ├── totalEvents 3 UInt outputParameter == (PPV, 0) RangeValidator[0, 7]
│   ├── nEvents 3 UInt frameNumber == 0 RangeValidator[0, 3]
│   └── nEvents 3 UInt frameNumber != 0 RangeValidator[0, 4]
├── transmissionThreshold 13 Ppv mm/s frameNumber == 0 ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575)
├── Reporting Events [nEvents] Seq outputParameter == (PPV, 0)
│   ├── timestampEvent 17 UInt RelativeTimestampMutator RelativeTimestampValidator[0, 86399]
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   ├── yAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   └── zAxis Struct
│       ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│       └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
├── frameHeader Struct outputParameter == (PPV, 1)
│   ├── frameNumber 1 UInt outputParameter == (PPV, 1)
│   ├── totalEvents 3 UInt outputParameter == (PPV, 1) RangeValidator[0, 5]
│   ├── nEvents 3 UInt frameNumber == 0 RangeValidator[0, 2]
│   └── nEvents 3 UInt frameNumber != 0 RangeValidator[0, 3]
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047)
├── transmissionThreshold 13 Ppv mm/s frameNumber == 0 ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575)
├── Reporting Events [nEvents] Seq outputParameter == (PPV, 1)
│   ├── timestampEvent 17 UInt RelativeTimestampMutator RelativeTimestampValidator[0, 86399]
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   ├── yAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   ├── zAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   └── composedAxis Struct
│       └── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
├── frameHeader Struct outputParameter == (PPV, 2)
│   ├── frameNumber 1 UInt outputParameter == (PPV, 2)
│   ├── totalEvents 3 UInt outputParameter == (PPV, 2) RangeValidator[0, 4]
│   └── nEvents 2 UInt outputParameter == (PPV, 2) RangeValidator[0, 2]
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047)
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63)
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575)
├── Reporting Events [nEvents] Seq outputParameter == (PPV, 2)
│   ├── timestampEvent 17 UInt RelativeTimestampMutator EntryError(DATA_OUT_OF_RANGE, 131071)
│   ├── numWindowsEvent 8 UInt count EntryError(DATA_OUT_OF_RANGE, 255)
│   ├── xAxis Struct
│   │   ├── PPV 15 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 200.0]
│   │   └── predominantFrequency 10 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[0, 315]
│   ├── yAxis Struct
│   │   ├── PPV 15 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 200.0]
│   │   └── predominantFrequency 10 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[0, 315]
│   ├── zAxis Struct
│   │   ├── PPV 15 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 200.0]
│   │   └── predominantFrequency 10 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[0, 315]
│   └── composedAxis Struct
│       └── PPV 15 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 200.0]
├── frameHeader Struct outputParameter == (PGA, 2)
│   ├── frameNumber 1 UInt outputParameter == (PGA, 2)
│   ├── totalEvents 3 UInt outputParameter == (PGA, 2) RangeValidator[0, 4]
│   └── nEvents 2 UInt outputParameter == (PGA, 2) RangeValidator[0, 2]
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047)
├── numEventsCounted 6 UInt count frameNumber == 0
├── numActiveWindows 14 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 16383)
├── samplingRate 2 Enum frameNumber == 0 F62_5HZ (0), F125HZ (1), F250HZ (2), F500HZ (3)
├── samplingRate 2 Enum frameNumber != 0 F62_5HZ (0), F125HZ (1), F250HZ (2), F500HZ (3)
├── Reporting Events [nEvents] Seq outputParameter == (PGA, 2)
│   ├── timestampEvent 17 UInt RelativeTimestampMutator EntryError(DATA_OUT_OF_RANGE, 131071)
│   ├── composedPGAEvent 15 PGA mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│   ├── composedRMSEvent 14 RMS mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 1000.0]
│   ├── xAxis Struct
│   │   ├── PGA 15 PGA mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│   │   └── frequency 11 UInt Hz RawFrequencyToFrequencyMutator
│   ├── yAxis Struct
│   │   ├── PGA 15 PGA mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│   │   └── frequency 11 UInt Hz RawFrequencyToFrequencyMutator
│   └── zAxis Struct
│       ├── PGA 15 PGA mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│       └── frequency 11 UInt Hz RawFrequencyToFrequencyMutator
├── reportingInfo Struct outputParameter == (PSA, 2)
│   ├── temperature 12 Int Cel outputParameter == (PSA, 2) ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047)
│   ├── numEventsCounted 6 UInt count outputParameter == (PSA, 2)
│   ├── numActiveWindows 14 UInt count outputParameter == (PSA, 2) EntryError(DATA_OUT_OF_RANGE, 16383)
│   ├── samplingRate 2 Enum outputParameter == (PSA, 2) F62_5HZ (0), F125HZ (1), F250HZ (2), F500HZ (3)
│   └── acquisitionMode 1 Enum outputParameter == (PSA, 2) ALWAYS_ON (0), PERIODIC (1)
├── timestampEvent 17 UInt numActiveWindows > 0 RelativeTimestampMutator EntryError(DATA_OUT_OF_RANGE, 131071)
├── xAxis Struct numActiveWindows > 0
│   ├── PGA 15 PGA mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│   ├── RMS 14 RMS mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 1000.0]
│   └── Frequencies [5] Seq numActiveWindows > 0
│       └──  11 UInt Hz RawFrequencyToFrequencyMutator
├── yAxis Struct numActiveWindows > 0
│   ├── PGA 15 PGA mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│   ├── RMS 14 RMS mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 1000.0]
│   └── Frequencies [5] Seq numActiveWindows > 0
│       └──  11 UInt Hz RawFrequencyToFrequencyMutator
├── zAxis Struct numActiveWindows > 0
│   ├── PGA 15 PGA mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│   ├── RMS 14 RMS mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 1000.0]
│   └── Frequencies [5] Seq numActiveWindows > 0
│       └──  11 UInt Hz RawFrequencyToFrequencyMutator
└──  0 outputParameter == default
Field Bits Type Unit Condition Mutator Error Validator Description WF Address WF Name WF Unit Cloud DP Name
ls_header Struct Always
├── uplink_version 4 UInt Always
├── node_id_high 4 Fragment Always
├── product_code 8 UInt Always
├── node_id 16 UInt Always
├── sequence_number 8 UInt Always
└── am_type 8 UInt Always
timestamp 32 TimestampField Always TimestampMutator
version 4 UInt Always RangeValidator[0, 2]
commonHeader Switch Always
├── reserved 2 Reserved version == 0
├── outputParameter 2 Enum version == 0 NO_ALGORITHM (0), MTVV (1), PPV (2), PGA (3), PSA (4)
├── reserved 1 Reserved version == 1
├── alertReport 1 Bool version == 1
├── outputParameter 2 Enum version == 1 NO_ALGORITHM (0), MTVV (1), PPV (2), PGA (3), PSA (4)
├── alertReport 1 Bool version == 2
└── outputParameter 3 Enum version == 2 NO_ALGORITHM (0), MTVV (1), PPV (2), PGA (3), PSA (4)
readings Switch Always
├── frameHeader Struct outputParameter == (MTVV, 0)
│   ├── frameNumber 1 UInt outputParameter == (MTVV, 0)
│   ├── totalEvents 4 UInt outputParameter == (MTVV, 0) RangeValidator[0, 9]
│   ├── nEvents 3 UInt frameNumber == 0 RangeValidator[0, 4] a:20:02:00 backgroundEvent boolean is_background_event
│   └── nEvents 3 UInt frameNumber != 0 RangeValidator[0, 5] a:20:02:00 backgroundEvent boolean is_background_event
├── transmissionThreshold 10 Mtvv dB frameNumber == 0 OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 overThresholdEvents count num_events_above_report_threshold
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 underThresholdEvents count num_events_below_report_threshold
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575) a:20:02:00 activeTime s active_time_seconds
├── Reporting Events [nEvents] Seq outputParameter == (MTVV, 0)
│   ├── timestampEvent 32 TimestampField TimestampMutator
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   ├── yAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   └── zAxis Struct
│       └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── frameHeader Struct outputParameter == (MTVV, 1)
│   ├── frameNumber 1 UInt outputParameter == (MTVV, 1)
│   ├── totalEvents 4 UInt outputParameter == (MTVV, 1) RangeValidator[0, 9]
│   ├── nEvents 3 UInt frameNumber == 0 RangeValidator[0, 4] a:20:02:00 backgroundEvent boolean is_background_event
│   └── nEvents 3 UInt frameNumber != 0 RangeValidator[0, 5] a:20:02:00 backgroundEvent boolean is_background_event
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047) a:20:00:00 temperature Cel
├── transmissionThreshold 10 Mtvv dB frameNumber == 0 OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 overThresholdEvents count num_events_above_report_threshold
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 underThresholdEvents count num_events_below_report_threshold
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575) a:20:02:00 activeTime s active_time_seconds
├── Reporting Events [nEvents] Seq outputParameter == (MTVV, 1)
│   ├── timestampEvent 32 TimestampField TimestampMutator
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   ├── yAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   └── zAxis Struct
│       └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── frameHeader Struct outputParameter == (MTVV, 2)
│   ├── frameNumber 1 UInt outputParameter == (MTVV, 2)
│   ├── totalEvents 3 UInt outputParameter == (MTVV, 2) RangeValidator[0, 4]
│   └── nEvents 2 UInt outputParameter == (MTVV, 2) RangeValidator[0, 2] a:20:02:00 backgroundEvent boolean is_background_event
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047) a:20:00:00 temperature Cel
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 overThresholdEvents count num_events_above_report_threshold
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 underThresholdEvents count num_events_below_report_threshold
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575) a:20:02:00 activeTime s active_time_seconds
├── Reporting Events [nEvents] Seq outputParameter == (MTVV, 2)
│   ├── timestampEvent 32 TimestampField TimestampMutator
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   ├── yAxis Struct
│   │   └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
│   └── zAxis Struct
│       └── MTVV 10 Mtvv dB OffsetMutator(-55), MultiplierMutator(×20) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[55.0, 100.0]
├── frameHeader Struct outputParameter == (PPV, 0)
│   ├── frameNumber 1 UInt outputParameter == (PPV, 0)
│   ├── totalEvents 3 UInt outputParameter == (PPV, 0) RangeValidator[0, 7]
│   ├── nEvents 3 UInt frameNumber == 0 RangeValidator[0, 3] a:20:02:00 backgroundEvent boolean is_background_event
│   └── nEvents 3 UInt frameNumber != 0 RangeValidator[0, 4] a:20:02:00 backgroundEvent boolean is_background_event
├── transmissionThreshold 13 Ppv mm/s frameNumber == 0 ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 overThresholdEvents count num_events_above_report_threshold
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 underThresholdEvents count num_events_below_report_threshold
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575) a:20:02:00 activeTime s active_time_seconds
├── Reporting Events [nEvents] Seq outputParameter == (PPV, 0)
│   ├── timestampEvent 17 UInt RelativeTimestampMutator RelativeTimestampValidator[0, 86399]
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   ├── yAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   └── zAxis Struct
│       ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│       └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
├── frameHeader Struct outputParameter == (PPV, 1)
│   ├── frameNumber 1 UInt outputParameter == (PPV, 1)
│   ├── totalEvents 3 UInt outputParameter == (PPV, 1) RangeValidator[0, 5]
│   ├── nEvents 3 UInt frameNumber == 0 RangeValidator[0, 2] a:20:02:00 backgroundEvent boolean is_background_event
│   └── nEvents 3 UInt frameNumber != 0 RangeValidator[0, 3] a:20:02:00 backgroundEvent boolean is_background_event
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047) a:20:00:00 temperature Cel
├── transmissionThreshold 13 Ppv mm/s frameNumber == 0 ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 overThresholdEvents count num_events_above_report_threshold
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 underThresholdEvents count num_events_below_report_threshold
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575) a:20:02:00 activeTime s active_time_seconds
├── Reporting Events [nEvents] Seq outputParameter == (PPV, 1)
│   ├── timestampEvent 17 UInt RelativeTimestampMutator RelativeTimestampValidator[0, 86399]
│   ├── numWindowsEvent 7 UInt count EntryError(DATA_OUT_OF_RANGE, 127)
│   ├── xAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   ├── yAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   ├── zAxis Struct
│   │   ├── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
│   │   └── predominantFrequency 8 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 100]
│   └── composedAxis Struct
│       └── PPV 13 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 8191) RangeValidator[0, 60.0]
├── frameHeader Struct outputParameter == (PPV, 2)
│   ├── frameNumber 1 UInt outputParameter == (PPV, 2)
│   ├── totalEvents 3 UInt outputParameter == (PPV, 2) RangeValidator[0, 4]
│   └── nEvents 2 UInt outputParameter == (PPV, 2) RangeValidator[0, 2] a:20:02:00 backgroundEvent boolean is_background_event
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047) a:20:00:00 temperature Cel
├── reportingPeriodSummary Struct frameNumber == 0
│   ├── numEventsAboveReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 overThresholdEvents count num_events_above_report_threshold
│   ├── numEventsBelowReportThreshold 6 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 63) a:20:02:00 underThresholdEvents count num_events_below_report_threshold
│   └── numActiveWindows 20 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 1048575) a:20:02:00 activeTime s active_time_seconds
├── Reporting Events [nEvents] Seq outputParameter == (PPV, 2)
│   ├── timestampEvent 17 UInt RelativeTimestampMutator EntryError(DATA_OUT_OF_RANGE, 131071)
│   ├── numWindowsEvent 8 UInt count EntryError(DATA_OUT_OF_RANGE, 255)
│   ├── xAxis Struct
│   │   ├── PPV 15 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 200.0]
│   │   └── predominantFrequency 10 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[0, 315]
│   ├── yAxis Struct
│   │   ├── PPV 15 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 200.0]
│   │   └── predominantFrequency 10 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[0, 315]
│   ├── zAxis Struct
│   │   ├── PPV 15 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 200.0]
│   │   └── predominantFrequency 10 PFrequency Hz MultiplierMutator(×2) EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[0, 315]
│   └── composedAxis Struct
│       └── PPV 15 Ppv mm/s ScalingMutator(×100) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 200.0]
├── frameHeader Struct outputParameter == (PGA, 2)
│   ├── frameNumber 1 UInt outputParameter == (PGA, 2)
│   ├── totalEvents 3 UInt outputParameter == (PGA, 2) RangeValidator[0, 4]
│   └── nEvents 2 UInt outputParameter == (PGA, 2) RangeValidator[0, 2] a:20:02:00 backgroundEvent boolean is_background_event
├── temperature 12 Int Cel frameNumber == 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047) a:20:00:00 temperature Cel
├── numEventsCounted 6 UInt count frameNumber == 0 a:20:08:00 overThresholdEvents count num_events_above_report_threshold
├── numActiveWindows 14 UInt count frameNumber == 0 EntryError(DATA_OUT_OF_RANGE, 16383) a:20:06:00 activeTime s active_time_seconds
├── samplingRate 2 Enum frameNumber == 0 F62_5HZ (0), F125HZ (1), F250HZ (2), F500HZ (3) a:20:08:00 activeTime s active_time_seconds
├── samplingRate 2 Enum frameNumber != 0 F62_5HZ (0), F125HZ (1), F250HZ (2), F500HZ (3) a:20:08:00 activeTime s active_time_seconds
├── Reporting Events [nEvents] Seq outputParameter == (PGA, 2)
│   ├── timestampEvent 17 UInt RelativeTimestampMutator EntryError(DATA_OUT_OF_RANGE, 131071)
│   ├── composedPGAEvent 15 PGA mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│   ├── composedRMSEvent 14 RMS mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 1000.0]
│   ├── xAxis Struct
│   │   ├── PGA 15 PGA mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│   │   └── frequency 11 UInt Hz RawFrequencyToFrequencyMutator
│   ├── yAxis Struct
│   │   ├── PGA 15 PGA mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│   │   └── frequency 11 UInt Hz RawFrequencyToFrequencyMutator
│   └── zAxis Struct
│       ├── PGA 15 PGA mg_acc ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0]
│       └── frequency 11 UInt Hz RawFrequencyToFrequencyMutator
├── reportingInfo Struct outputParameter == (PSA, 2)
│   ├── temperature 12 Int Cel outputParameter == (PSA, 2) ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 2047) a:20:00:00 temperature Cel
│   ├── numEventsCounted 6 UInt count outputParameter == (PSA, 2) a:20:08:00 overThresholdEvents count num_events_above_report_threshold
│   ├── numActiveWindows 14 UInt count outputParameter == (PSA, 2) EntryError(DATA_OUT_OF_RANGE, 16383) a:20:06:00 activeTime s active_time_seconds
│   ├── samplingRate 2 Enum outputParameter == (PSA, 2) F62_5HZ (0), F125HZ (1), F250HZ (2), F500HZ (3) a:20:08:00 activeTime s active_time_seconds
│   └── acquisitionMode 1 Enum outputParameter == (PSA, 2) ALWAYS_ON (0), PERIODIC (1)
├── timestampEvent 17 UInt numActiveWindows > 0 RelativeTimestampMutator EntryError(DATA_OUT_OF_RANGE, 131071)
├── xAxis Struct numActiveWindows > 0
│   ├── PGA 15 PGA mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0] a:20:05:00 pgaXAxis mg_acc peak_ground_acceleration_axis_x_event
│   ├── RMS 14 RMS mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 1000.0] a:20:05:00 rmsXAxis mg_acc root_mean_square_axis_x_event
│   └── Frequencies [5] Seq numActiveWindows > 0
│       └──  11 UInt Hz RawFrequencyToFrequencyMutator a:20:05:00 freq1Xaxis Hz frequency_1_axis_x_event
├── yAxis Struct numActiveWindows > 0
│   ├── PGA 15 PGA mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0] a:20:05:00 pgaYAxis mg_acc peak_ground_acceleration_axis_y_event
│   ├── RMS 14 RMS mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 1000.0] a:20:05:00 rmsYAxis mg_acc root_mean_square_axis_y_event
│   └── Frequencies [5] Seq numActiveWindows > 0
│       └──  11 UInt Hz RawFrequencyToFrequencyMutator a:20:05:00 freq1Yaxis Hz frequency_1_axis_y_event
├── zAxis Struct numActiveWindows > 0
│   ├── PGA 15 PGA mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 32767) RangeValidator[0, 2000.0] a:20:05:00 pgaZAxis mg_acc peak_ground_acceleration_axis_z_event
│   ├── RMS 14 RMS mg_acc numActiveWindows > 0 ScalingMutator(×10) EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 1000.0] a:20:05:00 rmsZAxis mg_acc root_mean_square_axis_z_event
│   └── Frequencies [5] Seq numActiveWindows > 0
│       └──  11 UInt Hz RawFrequencyToFrequencyMutator a:20:05:00 freq1Zaxis Hz frequency_1_axis_z_event
└──  0 outputParameter == default

Worldsensing Format Sources

Address Manufacturer Type Model Status
a:20:00:00 Worldsensing Thermometer 0
a:20:01:00 Worldsensing MTVVEvent 0
a:20:02:00 Worldsensing MTVVStats 0
a:20:07:00 Worldsensing PGAEvent 0
a:20:08:00 Worldsensing PGAStats 0
a:20:03:00 Worldsensing PPVEvent 0
a:20:04:00 Worldsensing PPVStats 0
a:20:05:00 Worldsensing PSAEvent 0
a:20:06:00 Worldsensing PSAStats 0

Example

mtvv_v1_msg_fits_in_one_frame

Source: VibrationMeterDataStrMessagesMTVV.py

JSON Message

{
  "ls_header": {
    "uplink_version": {
      "value": "4",
      "raw": 4
    },
    "product_code": {
      "value": "94",
      "raw": 94
    },
    "node_id": {
      "value": "87",
      "raw": 87
    },
    "sequence_number": {
      "value": "1",
      "raw": 1
    },
    "am_type": {
      "value": "82",
      "raw": 82
    }
  },
  "timestamp": {
    "value": "1970-01-01T00:00:00Z",
    "raw": 0
  },
  "version": {
    "value": "1",
    "raw": 1
  },
  "commonHeader": {
    "reserved": {
      "value": "0",
      "raw": 0
    },
    "alertReport": {
      "value": false,
      "raw": false
    },
    "outputParameter": {
      "value": "MTVV",
      "raw": 1
    }
  },
  "readings": {
    "frameHeader": {
      "frameNumber": {
        "value": "0",
        "raw": 0
      },
      "totalEvents": {
        "value": "3",
        "raw": 3
      },
      "nEvents": {
        "value": "3",
        "raw": 3
      }
    },
    "reportingInfo": {
      "temperature": {
        "value": "20.8",
        "unit": "Cel",
        "raw": 208
      },
      "transmissionThreshold": {
        "value": "56",
        "unit": "dB",
        "raw": 20
      },
      "reportingPeriodSummary": {
        "numEventsAboveReportThreshold": {
          "value": "3",
          "unit": "count",
          "raw": 3
        },
        "numEventsBelowReportThreshold": {
          "value": "4",
          "unit": "count",
          "raw": 4
        },
        "numActiveWindows": {
          "value": "5",
          "unit": "count",
          "raw": 5
        }
      }
    },
    "reportingEvents": [
      {
        "timestampEvent": {
          "value": "1970-01-01T00:00:00Z",
          "raw": 0
        },
        "numWindowsEvent": {
          "value": "22",
          "unit": "count",
          "raw": 22
        },
        "xAxis": {
          "MTVV": {
            "value": "60.5",
            "unit": "dB",
            "raw": 110
          }
        },
        "yAxis": {
          "MTVV": {
            "value": "60.6",
            "unit": "dB",
            "raw": 112
          }
        },
        "zAxis": {
          "MTVV": {
            "value": "60.7",
            "unit": "dB",
            "raw": 114
          }
        }
      },
      {
        "timestampEvent": {
          "value": "1970-01-01T02:28:21Z",
          "raw": 8901
        },
        "numWindowsEvent": {
          "value": "7",
          "unit": "count",
          "raw": 7
        },
        "xAxis": {
          "MTVV": {
            "value": "55",
            "unit": "dB",
            "raw": 0
          }
        },
        "yAxis": {
          "MTVV": {
            "error": {
              "code": 2,
              "subCode": 4
            },
            "raw": 1023,
            "unit": "dB"
          }
        },
        "zAxis": {
          "MTVV": {
            "error": {
              "code": 2,
              "subCode": 4
            },
            "raw": 1023,
            "unit": "dB"
          }
        }
      },
      {
        "timestampEvent": {
          "value": "2001-11-24T20:15:45Z",
          "raw": 1006632945
        },
        "numWindowsEvent": {
          "error": {
            "code": 2,
            "subCode": 4
          },
          "raw": 127,
          "unit": "count"
        },
        "xAxis": {
          "MTVV": {
            "value": "55.5",
            "unit": "dB",
            "raw": 10
          }
        },
        "yAxis": {
          "MTVV": {
            "value": "55.6",
            "unit": "dB",
            "raw": 12
          }
        },
        "zAxis": {
          "MTVV": {
            "value": "55.7",
            "unit": "dB",
            "raw": 14
          }
        }
      }
    ]
  },
  "padding": {
    "value": "0",
    "raw": 0
  }
}

Encoded Bytes

40 5E 00 57 01 52 00 00 00 00 11 1B 0D 00 50 31 00 00 14 00 00 00 00 B0 DC 38 0E 40 00 04 58 A1 C0 0F FF FF 3B FF FF F1 FE 05 01 80 70