Til90DataStrMsg
Til 90 Data Str Msg
AM Type: 76
Source Code
| Field | Bits | Type | Unit | Condition | Mutator | Error | 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 | 2 | UInt | Always | ||||
| channels | 3 | Bitmap | Always | ||||
| errorCode | 4 | Enum | Always | OK (0), NOT_RESPONDING (1), SELF_TEST_ERROR (2), INVALID_TEMP (3) | |||
| isHighPrecision | 1 | Bool | Always | ||||
| temperature | 12 | Int | Cel | Always | ScalingMutator(×10) | ReferenceEntryError(GENERAL_ERROR, Tilt90Error.INVALID_TEMP), ReferenceEntryError(NOT_RESPONDING, Tilt90Error.NOT_RESPONDING) | |
| → channels (bitmap) | — | Ref | Always | ||||
| Readings [bitmap] | — | Seq | Always | ||||
| ├── tilt | 21 | Int | deg | — | ScalingMutator(×10000) | ReferenceEntryError(SELF_TEST_ERROR, Tilt90Error.SELF_TEST_ERROR), ReferenceEntryError(NOT_RESPONDING, Tilt90Error.NOT_RESPONDING) | |
| ├── std | 20 | UInt | deg | isHighPrecision == 1 | MultiplierMutator(×256000) | ReferenceEntryError(SELF_TEST_ERROR, Tilt90Error.SELF_TEST_ERROR), ReferenceEntryError(NOT_RESPONDING, Tilt90Error.NOT_RESPONDING) | |
| └── std | 20 | UInt | deg | isHighPrecision == 0 | MultiplierMutator(×51200) | ReferenceEntryError(SELF_TEST_ERROR, Tilt90Error.SELF_TEST_ERROR), ReferenceEntryError(NOT_RESPONDING, Tilt90Error.NOT_RESPONDING) | |
| azimuth | 9 | UInt | version > 0 |
| Field | Bits | Type | Unit | Condition | Mutator | Error | 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 | 2 | UInt | Always | ||||||||
| channels | 3 | Bitmap | Always | ||||||||
| errorCode | 4 | Enum | Always | OK (0), NOT_RESPONDING (1), SELF_TEST_ERROR (2), INVALID_TEMP (3) | |||||||
| isHighPrecision | 1 | Bool | Always | ||||||||
| temperature | 12 | Int | Cel | Always | ScalingMutator(×10) | ReferenceEntryError(GENERAL_ERROR, Tilt90Error.INVALID_TEMP), ReferenceEntryError(NOT_RESPONDING, Tilt90Error.NOT_RESPONDING) | a:10:01:00 | temperature | Cel | ||
| → channels (bitmap) | — | Ref | Always | ||||||||
| Readings [bitmap] | — | Seq | Always | ||||||||
| ├── tilt | 21 | Int | deg | — | ScalingMutator(×10000) | ReferenceEntryError(SELF_TEST_ERROR, Tilt90Error.SELF_TEST_ERROR), ReferenceEntryError(NOT_RESPONDING, Tilt90Error.NOT_RESPONDING) | a:10:00:00 | xAxis | deg | axis_x | |
| ├── std | 20 | UInt | deg | isHighPrecision == 1 | MultiplierMutator(×256000) | ReferenceEntryError(SELF_TEST_ERROR, Tilt90Error.SELF_TEST_ERROR), ReferenceEntryError(NOT_RESPONDING, Tilt90Error.NOT_RESPONDING) | a:10:00:00 | xAxisStd | deg | axis_x_std | |
| └── std | 20 | UInt | deg | isHighPrecision == 0 | MultiplierMutator(×51200) | ReferenceEntryError(SELF_TEST_ERROR, Tilt90Error.SELF_TEST_ERROR), ReferenceEntryError(NOT_RESPONDING, Tilt90Error.NOT_RESPONDING) | a:10:00:00 | xAxisStd | deg | axis_x_std | |
| azimuth | 9 | UInt | version > 0 |
Worldsensing Format Sources
| Address | Manufacturer | Type | Model | Status |
|---|---|---|---|---|
| a:10:00:00 | Worldsensing | Tiltmeter | 0 | |
| a:10:01:00 | Worldsensing | Thermometer | 0 |
Example
decode_ok_no_azimuth_and_no_ishighprecision
Source: Til90DataStrMessages.py
JSON Message
{
"ls_header": {
"am_type": {
"raw": 76,
"value": "76"
},
"node_id": {
"raw": 87,
"value": "87"
},
"product_code": {
"raw": 94,
"value": "94"
},
"sequence_number": {
"raw": 1,
"value": "1"
},
"uplink_version": {
"raw": 4,
"value": "4"
}
},
"readTimestamp": {
"raw": 0,
"value": "1970-01-01T00:00:00Z"
},
"version": {
"raw": 0,
"value": "0"
},
"channels": {
"raw": [
false,
false,
true
],
"value": [
false,
false,
true
]
},
"errorCode": {
"raw": 2,
"value": "SELF_TEST_ERROR"
},
"isHighPrecision": {
"raw": false,
"value": false
},
"temperature": {
"raw": 25,
"unit": "Cel",
"value": "2.5"
},
"readings": [
{},
{},
{
"std": {
"error": {
"code": 99,
"subCode": 1
},
"raw": 2,
"unit": "deg"
},
"tilt": {
"error": {
"code": 99,
"subCode": 1
},
"raw": 1,
"unit": "deg"
}
}
],
"padding": {
"raw": 0,
"value": "0"
}
}
Encoded Bytes
40 5E 00 57 01 4C 00 00 00 00 21 00 64 00 00 20 00 04