LEAPS MQTT Connector
Following chapter describes messages specific to LEAPS MQTT connector. The Pan ID (network ID) in the uplink topics is optional and can be excluded by adjusting the configuration settings.
Uplink
Topic |
Description |
|---|---|
{prefix}/{panId}/gateway/uplink/status/{deviceId} |
Gateway status message.
Refer to leaps_api.status
Example:
topic: leaps/0001/gateway/uplink/status/deca1e1cef720714
{
"present": true,
"downlink": true,
"uwb":"CONNECTED"
"origins": [
{
"id": "4096",
"hop_level": 0
}
],
"profile": {
"sfn_range": 1440,
"microseconds_per_sf": 100000,
"microseconds_per_slot": 500,
"update_rate_default": 120,
"node_signup_optional": true,
"latency": 2,
"max_buffer_size_downlink": 1024
},
"timestamp": "1681398574409278"
}
|
Topic |
Description |
|---|---|
{prefix}/{panId}/gateway/uplink/config/{deviceId} |
Device configuration message.
Refer to leaps_api.node_config
Example:
topic: leaps/0001/gateway/uplink/config/deca1e1cef720714
{
"label": "DWC81B",
"uwb_mode": "UWB_MODE_ACTIVE",
"ble": false,
"leds": true,
"fw_update": true,
"anchor": {
"initiator": false,
"location": {
"x": 5.51,
"y": 7.01,
"z": 2.51,
"quality": 100
},
"routing": "ROUTING_OFF",
"bridge": true
},
"inet": {
"ip": [
{
"addr": "10.0.0.249",
"mask": "255.255.255.0",
"gateway": "10.0.0.1"
}
],
"iface": "WIFI",
"tls": "OFF",
"dhcp": true,
"mac_filter": false,
"server": {
"host": "10.0.0.35",
"port": 7777
}
},
"wifi": {
"ssid": "LEAPS",
"password": "Lpass",
"region": "EUROPE"
},
"mac": [
{
"addr": "a1:f7:63:73:c8:1b",
"type": "MUTABLE_DEFAULT",
"iface": "UWB"
},
{
"addr": "00:00:00:00:00:00",
"type": "EMPTY",
"iface": "BLE"
},
{
"addr": "02:04:25:30:31:31",
"type": "MUTABLE_DEFAULT",
"iface": "ETHERNET"
},
{
"addr": "f8:f0:05:76:11:f3",
"type": "MUTABLE_DEFAULT",
"iface": "WIFI"
}
],
"timestamp": "1685324882484362",
"uwb_rf":
{
"chnl":9,
"rf_cpl":2,
"pcode":10
}
}
|
Topic |
Description |
|---|---|
{prefix}/{panId}/node/uplink/status/{deviceId} |
Device status. This topic is read only.
Refer to leaps_api.status
Example:
topic: leaps/1234/node/uplink/status/419b
{
"present": true,
"downlink": true,
"batt": 0,
"temp": 34,
"batt_state":1,
"timestamp":"1755336445063828"
}
|
Topic |
Description |
|---|---|
{prefix}/{panId}/node/uplink/config/{deviceId} |
Device configuration message.
Refer to leaps_api.node_config
Example 1:
topic: leaps/0001/node/uplink/config/0f07
{
"label": "DW0F07",
"uwb_mode": "UWB_MODE_ACTIVE",
"ble": true,
"leds": true,
"fw_update": true,
"anchor": {
"initiator": true,
"location": {
"x": 0,
"y": 0,
"z": 0,
"quality": 0
},
"routing": "ROUTING_OFF"
},
"timestamp": "1681395435098551"
}
Example 2:
topic: leaps/0001/node/uplink/config/4439
{
"label": "ID4439",
"uwb_mode": "UWB_MODE_ACTIVE",
"ble": true,
"leds": true,
"fw_update": false,
"tag": {
"location_engine": true,
"low_power": false,
"stationary_detection": false,
"update_rate_nominal": 1,
"update_rate_stationary": 10
},
"timestamp": "1685521957332504"
}
|
Topic |
Description |
|---|---|
{prefix}/{panId}/node/uplink/data/{deviceId}
or
{prefix}/{panId}/gateway/uplink/data/{deviceId}
|
Example:
topic: leaps/0001/node/uplink/data/0f07
or
topic: leaps/1234/gateway/uplink/data/deca1d45c870c485
{
"data": "ASNFZ4mrze8=",
"timestamp": "1681396647102782"
}
|
Topic |
Description |
|---|---|
{prefix}/{panId}/node/uplink/service/{deviceId}
or
{prefix}/{panId}/gateway/uplink/service/{deviceId}
|
Refer to leaps_api.service_data
Example:
topic: leaps/0001/node/uplink/service/0f07
or
topic: leaps/1234/gateway/uplink/service/deca1d45c870c485
{
"type": "TLV_API_ACK",
"data": "QAEARgJexA==",
"timestamp": "1679495457581967"
}
|
Topic |
Description |
|---|---|
{prefix}/{panId}/node/uplink/location/{deviceId} |
Refer to leaps_api.location
Example:
topic: leaps/0001/node/uplink/location/0012
{
"location": {
"x": 3.10048366,
"y": -0.51273495,
"z": 0.867216647,
"quality": 46,
"statistics": {
"sd_x":0.0756242275,
"sd_y":0.0554805398,
"sd_z":0,
"r95":0.178031936,
"x_err":"NaN",
"y_err":"NaN",
"z_err":"NaN",
"toa": [
{
"anchor_id":39392,
"sd_toa":0.103431724
},
{
"anchor_id":39390,
"sd_toa":0.127849624
},
{
"anchor_id":39386,
"sd_toa":2.77350712
},
{
"anchor_id":39384,
"sd_toa":0
}
]
}
},
"timestamp": "1681481433825962"
}
|
Regarding the valid data, there will be 2 types of TDOA data: blink (TDOA_BLINK) and beacon (TDOA_BCN). TDOA_BLINK is TN-to-AN and TDOA_BCN is AN-to-AN.
Note
All timestamps are 40-bit value with the unit of [15.65ps]
All BCNs and BLINKs with the same “frame” value belong to the same UWBMAC frame
All BLINK data with the same “tag_blink_index”, “frame”, and “from” values are from the same blink received at different ANs
Example of TDOA_BCN:
Topic |
Description |
|---|---|
{prefix}/{panId/}{node|gateway}/uplink/toa/{deviceId} |
Refer to leaps_api.tdoa_external_le
Example:
topic: leaps/0000/gateway/uplink/toa/decadd27cfe5d225
{
"type":"TDOA_BCN",
"from":53797,
"to":37773,
"rx_timestamp":"146806405508",
"tx_timestamp":"265259305492",
"frame":643
}
|
Hint
“from” = ID of the AN transmitting the BCN (tx AN) in decimal
“to” = ID of the AN receiving the BCN (rx AN) in decimal
“rx_timestamp” = raw BCN reception time on the rx AN
“tx_timestamp” = raw BCN transmitting time on the tx AN
“frame” = frame number of the BCN
Example of TDOA_BLINK:
Topic |
Description |
|---|---|
{prefix}/{panId/}{node|gateway}/uplink/toa/{deviceId} |
Refer to leaps_api.tdoa_external_le
Example:
topic: leaps/0000/node/uplink/toa/00b0
{
"type":"TDOA_BLINK",
"from":176,
"to":37773,
"rx_timestamp":"150407701305",
"tag_blink_index":908,
"frame":643,
"tn_stat":true
}
|
Hint
“from” = ID of the TN transmitting the BLINK in decimal
“to” = ID of the AN receiving the BLINK (rx AN) in decimal
“rx_timestamp” = raw BLINK reception time on the rx AN
“tag_blink_index” = blink index, used for blink identification.
“frame” = frame number of the BLINK
“tn_stat” = TN stationary status. (true = TN is stationary, false = TN is moving)
Downlink
Topic |
Description |
|---|---|
{prefix}/{panId}/gateway/downlink/config/{deviceId} |
Refer to leaps_api.node_config
Example:
topic: leaps/0001/gateway/downlink/config/DECAFA9FC2B38B86
{
"label": "DW590F-nWIFI",
"uwb_mode": "UWB_MODE_ACTIVE",
"ble": false,
"leds": true,
"fw_update": true,
"anchor": {
"initiator": false,
"location": {
"x": -2,
"y": 1,
"z": 1,
"quality": 100
},
"routing": "ROUTING_OFF",
"bridge": true
},
"inet": {
"ip": [
{
"addr": "10.0.0.130",
"mask": "255.255.255.0",
"gateway": "10.0.0.1"
}
],
"dns": [
"8.8.8.8"
],
"iface": "ETHERNET",
"tls": "OFF",
"dhcp": true,
"mac_filter": false,
"server": {
"host": "10.0.0.35",
"port": 7777
}
},
"uwb_rf": {
"chnl":9,
"rf_cpl":2,
"pcode":10
}
"wifi": {
"ssid": "LEAPS",
"password": "mypass",
"region": "ASIA"
}
}
|
Topic |
Description |
|---|---|
{prefix}/{panId}/gateway/downlink/service/{deviceId}
or
{prefix}/{panId}/node/downlink/service/{deviceId}
|
Refer to leaps_api.service_data
Example:
topic: leaps/0001/gateway/downlink/service/DECAFA9FC2B38B86
or
topic: leaps/0001/node/downlink/service/0f07
{
"data": "CAA=",
"type": "TLV_API_CMD"
}
{
"data": "hQQHAAX/",
"type": "TLV_API_CMD"
}
|
Topic |
Description |
|---|---|
{prefix}/{panId}/gateway/downlink/data/{deviceId}
or
{prefix}/{panId}/node/downlink/data/{deviceId}
|
Refer to leaps_api.user_data
Example:
topic: leaps/0001/gateway/downlink/data/DECAFA9FC2B38B86
or
topic: leaps/0001/node/downlink/data/0f07
{
"data": "QUJDREVGR0hJSktMTU5PUFFSU1Q=",
"overwrite": true
}
{
"data": "QUJDREVGR0hJSktMTU5PUFFSU1Q="
}
|
Topic |
Description |
|---|---|
{prefix}/{panId}/node/downlink/config/{deviceId} |
Refer to leaps_api.node_config
Example:
topic: leaps/0001/node/downlink/config/0f07
{
"label": "DW0F07",
"uwb_mode": "UWB_MODE_ACTIVE",
"ble": true,
"leds": true,
"fw_update": true,
"anchor": {
"initiator": true,
"location": {
"x": 0,
"y": 0,
"z": 0,
"quality": 0
},
"routing": "ROUTING_OFF"
}
}
|