This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
doc:lps:tdoa3:protocol [2018-05-02 13:45] kristoffer |
doc:lps:tdoa3:protocol [2018-05-02 14:47] kristoffer |
||
---|---|---|---|
Line 7: | Line 7: | ||
</ | </ | ||
- | |||
- | This page describes the [[doc: | ||
===== System architecture ===== | ===== System architecture ===== | ||
- | The protocol is designed to be used with a large number of anchors covering a big area. Each anchor has a limited reach and covers only a small area, but by adding more anchors the system will be able to cover an (virtually) unlimited area. At any point in the covered area, 5-10 anchors should be within range a Tag. | + | The protocol is designed to be used with a large number of anchors covering a big area. Each anchor has a limited reach and covers only a small area, but by adding more anchors the system will be able to cover an (virtually) unlimited area. At any point in the covered area, 5-10 anchors should be within range of a Tag. |
Each anchor knows its own position in a global coordinate system and broadcasts this information in time stamped packets that are used by one or more Tags to estimate their position. | Each anchor knows its own position in a global coordinate system and broadcasts this information in time stamped packets that are used by one or more Tags to estimate their position. | ||
Line 26: | Line 24: | ||
There is only one packet format. | There is only one packet format. | ||
- | <code c> | + | <ditaa> |
- | typedef struct { | + | |
- | | + | Packet |
- | | + | |
- | | + | |
- | | + | 7 bytes |
- | } __attribute__((packed)) remoteAnchorData_t; | + | < |
+ | 8 bits 8 bits | ||
+ | < | ||
+ | +--------+--------+-------------+-------------+ | ||
+ | Header | ||
+ | | ||
- | typedef struct { | + | |
- | uint8_t type; // 0x30 | + | 6 or 8 bytes |
- | | + | < |
- | | + | 8 bits 1 bit 7 bits 32 bits 0 or 16 bits |
+ | < | ||
+ | +--------+-------------+--------+-------------+--------------+ | ||
+ | Remote anchor data: | | ||
+ | | ||
+ | </ditaa> | ||
- | | + | |
- | | + | * **type:** 0x30 |
- | } __attribute__((packed)) rangePacket3_t; | + | * **seq:** the sequence number of this packet 0 - 127 |
- | </ | + | * **txTimeStamp: |
+ | * **remoteCount:** the number of slots in the Remote Anchor Data section that are populated with data, max 8 | ||
+ | | ||
+ | * **id:** the id of the remote anchor | ||
+ | * **hasDistance: | ||
+ | * **seq:** sequence number of latest packet received from the remote anchor 0 - 127 | ||
+ | * **rxTimeStamp: | ||
+ | * **distance: | ||
+ | * **LPP data:** See [[doc: | ||
===== Tag implementation ===== | ===== Tag implementation ===== |