Skip to content

TMDataStrMsg

TM Data Str Msg

AM Type: 91

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
readTimestamp 32 TimestampField Always TimestampMutator
version 4 UInt Always ValueValidator(0)
msgType 2 Enum Always PERIODIC (0), TRIGGER (1), BASELINE (2), RFU (3)
msgTypePayload Switch Always
├── numEvents 8 UInt count PERIODIC EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 254]
├── totalActivityDuration 12 UInt s PERIODIC EntryError(DATA_OUT_OF_RANGE, 4095) RangeValidator[0, 4094]
├── eventStartTime 32 TimestampField datetime TRIGGER TimestampMutator
├── eventDuration 14 UInt s TRIGGER EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 10800]
├── dataMessageTime 32 TimestampField datetime TRIGGER TimestampMutator
└──  0 default
triggerType 2 Enum Always ACCELERATION (0), ABSOLUTE_ANGLE (1), ANGULAR_VELOCITY (2), UNUSED (3)
triggerTypePayload Switch Always
├── inactivityPeakAccel 16 UInt mg_acc ACCELERATION ScalingMutator(×10) EntryError(NOT_VALID, 65534), EntryError(DATA_OUT_OF_RANGE, 65535) RangeValidator[0, 2000]
├── maxActivityPeakAccel 16 UInt mg_acc msgType != MsgTypeEnum ScalingMutator(×10) EntryError(NOT_VALID, 65534), EntryError(DATA_OUT_OF_RANGE, 65535) RangeValidator[0, 2000]
├── meanInactivityAngleX 10 UInt deg ABSOLUTE_ANGLE OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90]
├── meanInactivityAngleY 10 UInt deg ABSOLUTE_ANGLE OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90]
├── meanInactivityAngleZ 10 UInt deg ABSOLUTE_ANGLE OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90]
├── maxAngleDeviationX 10 UInt deg msgType != MsgTypeEnum OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90]
├── maxAngleDeviationY 10 UInt deg msgType != MsgTypeEnum OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90]
├── maxAngleDeviationZ 10 UInt deg msgType != MsgTypeEnum OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90]
├── meanInactivityAngularVelX 9 UInt deg/s ANGULAR_VELOCITY ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55]
├── meanInactivityAngularVelY 9 UInt deg/s ANGULAR_VELOCITY ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55]
├── meanInactivityAngularVelZ 9 UInt deg/s ANGULAR_VELOCITY ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55]
├── maxAngularVelX 9 UInt deg/s msgType != MsgTypeEnum ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55]
├── maxAngularVelY 9 UInt deg/s msgType != MsgTypeEnum ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55]
├── maxAngularVelZ 9 UInt deg/s msgType != MsgTypeEnum ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55]
└──  0 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
readTimestamp 32 TimestampField Always TimestampMutator
version 4 UInt Always ValueValidator(0)
msgType 2 Enum Always PERIODIC (0), TRIGGER (1), BASELINE (2), RFU (3)
msgTypePayload Switch Always
├── numEvents 8 UInt count PERIODIC EntryError(DATA_OUT_OF_RANGE, 255) RangeValidator[0, 254] a:01:00:00 numEvents count num_events
├── totalActivityDuration 12 UInt s PERIODIC EntryError(DATA_OUT_OF_RANGE, 4095) RangeValidator[0, 4094] a:01:00:00 totalDuration s total_activity_duration
├── eventStartTime 32 TimestampField datetime TRIGGER TimestampMutator a:01:01:00 startTime datetime event_start_time
├── eventDuration 14 UInt s TRIGGER EntryError(DATA_OUT_OF_RANGE, 16383) RangeValidator[0, 10800] a:01:01:00 endTime datetime event_end_time
├── dataMessageTime 32 TimestampField datetime TRIGGER TimestampMutator a:01:01:00 readingTime datetime data_message_time
└──  0 default
triggerType 2 Enum Always ACCELERATION (0), ABSOLUTE_ANGLE (1), ANGULAR_VELOCITY (2), UNUSED (3)
triggerTypePayload Switch Always
├── inactivityPeakAccel 16 UInt mg_acc ACCELERATION ScalingMutator(×10) EntryError(NOT_VALID, 65534), EntryError(DATA_OUT_OF_RANGE, 65535) RangeValidator[0, 2000] a:01:02:00 maxInactivityPeak mg_acc inactivity_peak_acceleration
├── maxActivityPeakAccel 16 UInt mg_acc msgType != MsgTypeEnum ScalingMutator(×10) EntryError(NOT_VALID, 65534), EntryError(DATA_OUT_OF_RANGE, 65535) RangeValidator[0, 2000] a:01:02:00 maxActivityPeak mg_acc max_activity_peak_acceleration
├── meanInactivityAngleX 10 UInt deg ABSOLUTE_ANGLE OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90] a:01:02:01 xAxisInactivityMean deg mean_inactivity_angle_axis_x
├── meanInactivityAngleY 10 UInt deg ABSOLUTE_ANGLE OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90] a:01:02:01 yAxisInactivityMean deg mean_inactivity_angle_axis_y
├── meanInactivityAngleZ 10 UInt deg ABSOLUTE_ANGLE OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90] a:01:02:01 zAxisInactivityMean deg mean_inactivity_angle_axis_z
├── maxAngleDeviationX 10 UInt deg msgType != MsgTypeEnum OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90] a:01:02:01 xAxisActivityMax deg max_angle_deviation_axis_x
├── maxAngleDeviationY 10 UInt deg msgType != MsgTypeEnum OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90] a:01:02:01 yAxisActivityMax deg max_angle_deviation_axis_y
├── maxAngleDeviationZ 10 UInt deg msgType != MsgTypeEnum OffsetMutator(+90), DividerMutator(÷2.0), ScalingMutator(×10) EntryError(NOT_VALID, 1022), EntryError(DATA_OUT_OF_RANGE, 1023) RangeValidator[-90, 90] a:01:02:01 zAxisActivityMax deg max_angle_deviation_axis_z
├── meanInactivityAngularVelX 9 UInt deg/s ANGULAR_VELOCITY ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55] a:01:02:02 xAxisInactivityMean deg/s mean_inactivity_angular_velocity_axis_x
├── meanInactivityAngularVelY 9 UInt deg/s ANGULAR_VELOCITY ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55] a:01:02:02 yAxisInactivityMean deg/s mean_inactivity_angular_velocity_axis_y
├── meanInactivityAngularVelZ 9 UInt deg/s ANGULAR_VELOCITY ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55] a:01:02:02 zAxisInactivityMean deg/s mean_inactivity_angular_velocity_axis_z
├── maxAngularVelX 9 UInt deg/s msgType != MsgTypeEnum ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55] a:01:02:02 xAxisActivityMax deg/s max_angular_velocity_deviation_axis_x
├── maxAngularVelY 9 UInt deg/s msgType != MsgTypeEnum ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55] a:01:02:02 yAxisActivityMax deg/s max_angular_velocity_deviation_axis_y
├── maxAngularVelZ 9 UInt deg/s msgType != MsgTypeEnum ScalingMutator(×100) EntryError(NOT_VALID, 510), EntryError(DATA_OUT_OF_RANGE, 511) RangeValidator[0, 2.55] a:01:02:02 zAxisActivityMax deg/s max_angular_velocity_deviation_axis_z
└──  0 default

Worldsensing Format Sources

Address Manufacturer Type Model Status
a:01:00:00 Worldsensing PeriodicStats 0
a:01:01:00 Worldsensing EventStats 0
a:01:02:01 Worldsensing AbsoluteAngle 0
a:01:02:02 Worldsensing AngularVelocity 0
a:01:02:00 Worldsensing Acceleration 0

Example

ok_periodic_acceleration

Source: TMDataStrMessages.py

JSON Message

{
  "readTimestamp": {
    "value": "1970-01-01T00:00:00Z",
    "raw": 0
  },
  "version": {
    "value": "0",
    "raw": 0
  },
  "ls_header": {
    "am_type": {
      "raw": 91,
      "value": "91"
    },
    "node_id": {
      "raw": 1212,
      "value": "1212"
    },
    "product_code": {
      "raw": 65,
      "value": "65"
    },
    "sequence_number": {
      "raw": 1,
      "value": "1"
    },
    "uplink_version": {
      "raw": 4,
      "value": "4"
    }
  },
  "msgType": {
    "value": "PERIODIC",
    "raw": 0
  },
  "msgTypePayload": {
    "numEvents": {
      "raw": 10,
      "unit": "count",
      "value": "10"
    },
    "totalActivityDuration": {
      "raw": 3600,
      "unit": "s",
      "value": "3600"
    }
  },
  "triggerType": {
    "value": "ACCELERATION",
    "raw": 0
  },
  "triggerTypePayload": {
    "inactivityPeakAccel": {
      "raw": 5000,
      "unit": "mg_acc",
      "value": "500"
    },
    "maxActivityPeakAccel": {
      "raw": 12345,
      "unit": "mg_acc",
      "value": "1234.5"
    }
  },
  "padding": {
    "raw": 0,
    "value": "0"
  }
}

Encoded Bytes

40 41 04 BC 01 5B 00 00 00 00 00 2B 84 01 38 83 03 90