leaps_loc_get
Get last distances to the ranging anchors and get the position.The event is generated and the status changes when all TWR measurements are completed and new location data are available for the user. When low power mode is used, it will work in the same way.
For anchor node, the position and distances are available only if the auto-positioning procedure has been done. The auto-positioning procedure is started via the BLE interface.
Tag node
? 8-bit unsigned integer ? (output options, 0 - distances to ranging anchors, 1 - my position + distances to ranging anchors, 2 - positions and distances to ranging anchors, 3 - my position + distances and position to ranging anchors)
Status Code, [my_position], [timestamp, flags, count, [{addr, anchor_distance, pqf}, …]], [timestamp, flags, count, [{anchor_position, addr, anchor_distance, pqf}, ..]]
timestamp: ? 32-bit integer? (timestamp in microseconds)
flags: ? 8-bit unsigned integer? (is_moving indication)
count: ? 8-bit integer ? (number of elements in the list that follows, the list can contain positions, distances or both)
my_position, anchor_position: ? 13 bytes ? (See Position)
addr: ? 16-bit integer ? (UWB address/id of the opposite node)
distance: ? 32-bit integer ? (distance to the opposite in millimeters)
pqf: ? 8-bit integer ? (quality factor)
Note
If Tag node - available parameter - pos: position (position of the opposite node, that correspond with the distance)
Example 1 (my position + distances and positions to ranging anchors) todo
TLV Request |
||
---|---|---|
Type |
Length |
Value |
0x0C |
0x01 |
0x03 |
Type 0x0C means command loc_get
TLV response |
||||||||
---|---|---|---|---|---|---|---|---|
Type |
Length |
Value status |
Type |
Length |
Value position of this node (13 bytes) |
Type |
Length |
Value positions and distances to ranging anchors (86 bytes) |
0x40 |
0x01 |
0x00 |
0x41 |
0x0D |
… |
0x49 |
0x56 |
… |
Type 0x40 means status code
Type 0x41 means position
Type 0x49 means position and distances on a tag node
Encoding of positions and distances to ranging anchors |
|||||
---|---|---|---|---|---|
Timestamp in microseconds |
flags (1 byte)
(bit 0) is_moving
(bits 1-7) reserved
|
number of encoded positions and distances (1 byte) |
position and distance nr. 1 (20 bytes) |
position and distance nr.2, 3, 4 (60 bytes) |
|
distance nr.1 (7 bytes) |
position nr.1 (13 bytes) |
… |
|||
0x64 0x0A 0x01 0x00 |
0x00 |
0x04 |
… |
… |
… |
Type 0x49 means position and distances on a tag node.
Distance encoding |
||
---|---|---|
UWB address (2 bytes) |
distance in millimeters (4 bytes) |
distance quality factor in percents (1 byte) |
0xAB 0xCD |
0xE8 0x03 0x00 0x00 |
0x5F |
Position encoding |
|||
---|---|---|---|
x coordinate in millimeters (4 bytes) |
y coordinate in millimeters (4 bytes) |
z coordinate in millimeters (4 bytes) |
position quality factor in percents (1 byte) |
0x4b 0x0a 0x00 0x00 |
0x1f 0x04 0x00 0x00 |
0x9c 0x0e 0x00 0x00 |
0x64 |
Example 2 (my position + distances to ranging anchors) todo
TLV Request |
||
---|---|---|
Type |
Length |
Value |
0x0C |
0x01 |
0x03 |
Type 0x0C means command loc_get
TLV response |
||||||||
---|---|---|---|---|---|---|---|---|
Type |
Length |
Value |
Type |
Length |
Value |
Type |
Length |
Value |
status code |
position of this node (13 bytes) |
distances to ranging anchors (90 bytes) |
||||||
0x40 |
0x01 |
0x00 |
0x41 |
0x0D |
… |
0x48 |
0x5A |
… |
Type 0x40 means status code
Type 0x41 means position
Type 0x48 means distances of ranging anchors
Encoding of distances to ranging anchors |
||||
---|---|---|---|---|
timestamp in microseconds (4 bytes) |
flags (1 byte)
(bit 0) is_moving
(bits 1-7) reserved
|
number of distances encoded (1 byte) |
distance nr.1 (7 bytes) |
distance nr. 2, 3, … , 11, 12 (77 bytes) |
0x64 0x12 0x0E 0x00 |
0x00 |
0x04 |
… |
… |