dwm_anchor_list_get
周囲のアンカーのリストを読み込み、アンカーに対してのみ動作する。リスト内のアンカーは、同じネットワークのものでも、近隣のネットワークのものでもよい。
-
void dwm_anchor_list_get(dwm_anchor_list_t *list)
- パラメータ
input -- (SPI/UART) '0' | '1'(ページ番号(SPI/UARTのみ、ユーザーアプリケーションは1回の呼び出しでリスト全体を読み込む)、有効な番号は0,1)
input -- (ユーザーアプリケーション) (なし)
output -- ステータスコード, cnt, {node_id, position, rssi, seat, neighbor_network}
cnt -- 1バイト? (要素数。SPI/UARTでは最大15、ユーザーアプリケーションでは最大30)
node_id -- 2バイト(アンカーID)
position -- 12 バイト?
rssi -- 1バイト符号付き?(信号強度インジケーター)
seat -- 5ビット(アンカーの座席番号)
neighbor_network -- 1ビット(アンカーが現在のネットワークからのものか、近隣ネットワークからのものかを示すステータスフラグ)
Cコード例
dwm_anchor_list_t list;
int i;
dwm_anchor_list_get(&list);
for (i:0; i < list.cnt; ++i) {
printf("%d. id=0x%04X pos=[%ld,%ld,%ld] rssi=%d seat=%u neighbor=%d\n", i,
list.v[i].node_id,
list.v[i].x,
list.v[i].y,
list.v[i].z,
list.v[i].rssi,
list.v[i].seat,
list.v[i].neighbor_network);
}
SPI/UART 例 1
TLV 要求 |
||
---|---|---|
タイプ |
長さ |
価値 |
0x0B |
0x01 |
0x00 |
タイプ 0x0B は、コマンド dwm_an_list_get を意味する
TLV 応答 |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|
タイプ |
長さ |
価値 |
タイプ |
長さ |
価値 |
|||||
uint8 - エラーコード |
uint8 - 符号化要素数 |
uint16 - リトルエンディアンのUWBアドレス |
アンカーnr.1 |
アンカーnr. 2 ... nr.15 |
||||||
3 x int32 - リトルエンディアンの位置座標 x, y, z |
int8 - RSSI |
uint8 - フラッグ
(ビット 0-4) 座席番号
(ビット5) 近隣ネットワーク
(ビット 6-7) 予約
|
... |
|||||||
0x40 |
0x01 |
0x00 |
0x56 |
0xE1 |
0x0F |
0xAB 0x1E ... |
... |
SPI/UART 例 2
TLV 要求 |
||
---|---|---|
タイプ |
長さ |
価値 |
0x0B |
0x01 |
0x01 |
タイプ 0x0B は、コマンド dwm_an_list_get を意味する
TLV 応答(アンカーリストは空です) |
|||||
---|---|---|---|---|---|
タイプ |
長さ |
価値 |
タイプ |
長さ |
価値 |
0x40 |
0x01 |
0x00 |
0x56 |
0x01 |
uint8 - 値にエンコードされている要素数 |
0x00 |