dwm_anchor_list_get

读取周围锚点的列表,仅对锚点有效. 列表中的锚点可以来自同一网络或邻居网络.

void dwm_anchor_list_get(dwm_anchor_list_t *list)
参数
  • input – (SPI/UART) ‘0’ | ‘1’(页码(仅在 SPI/UART 上,用户应用程序在一次调用中读取整个列表),有效数字为 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 …

类型0x40表示 状态代码 上一条命令的状态码
类型 0x56 表示锚点列表

SPI/UART 示例 2

TLV 请求

类型

长度

价值

0x0B

0x01

0x01

类型 0x0B 表示命令 dwm_an_list_get

TLV 响应(锚点列表为空)

类型

长度

价值

类型

长度

价值

0x40

0x01

0x00

0x56

0x01

uint8 - 值中编码的元素个数

0x00

类型0x40表示 状态代码 上一条命令的状态码
类型 0x56 表示锚点列表