dwm_status_get
获取系统状态. 可使用以下标志:
位置数据就绪
节点加入 UWB 网络
新的回程数据准备就绪
回程状态已更改
回程路由已初始化
UWB 扫描结果已准备就绪
通过 UWB 接收到用户数据
通过 UWB 发送用户数据
固件更新中
调用后清除标志,以下情况除外:
节点加入 UWB 网络
回程路由已初始化
固件更新中
-
int dwm_status_get(dwm_status_t*)
- 参数
input – (无)
output – 状态代码, 状态
status – loc_ready, uwbmac_joined, bh_data_ready, bh_initialized, bh_status_changed, uwb_scan_ready, usr_data_ready
loc_ready – ‘0’ | ‘1’ (新的位置数据已准备就绪)
uwbmac_joined – ‘0’ | ‘1’ (节点已连接到 UWB 网络)
bh_data_ready – ‘0’ | ‘1’ (UWB MAC 回程数据准备就绪)
bh_status_changed – ‘0’ | ‘1’ (UWB MAC状态已改变,用于回程)
bh_initialized – ‘0’ | ‘1’ (节点已通过 UWB 回程初始化路由)
uwb_scan_ready – ‘0’ | ‘1’ (UWB扫描结果已准备就绪)
usr_data_ready – ‘0’ | ‘1’ (UWB用户数据已收到)
usr_data_sent – ‘0’ | ‘1’ (通过 UWB 发送用户数据)
fwup_in_progress – ‘0’ | ‘1’ (固件更新中)
C代码示例
dwm_status_t status;
int rv;
rv = dwm_status_get(&status);
if (rv == DWM_OK) {
printf("loc_data: %d\n", status.loc_dat1);
printf("uwbmac_joined: %d\n", status.uwbmac_joined);
printf("bh_data_ready: %d\n", status.bh_data_ready);
printf("bh_status_changed: %d\n", status.bh_status_changed);
printf("bh_initialized: %d\n", status.bh_initialized);
printf("uwb_scan_ready: %d\n", status.uwb_scan_ready);
printf("usr_data_ready: %d\n", status.usr_data_ready);
printf("usr_data_sent: %d\n", status.usr_data_sent);
printf("fwup_in_progress: %d\n", status.fwup_in_progress);
}
else {
printf("error\n");
}
SPI/UART 示例
TLV 请求 |
|
---|---|
类型 |
长度 |
0x32 |
0x00 |
0x32 表示指令 dwm_status_get
TLV 响应 |
|||||
---|---|---|---|---|---|
类型 |
长度 |
价值(参见错误代码) |
类型 |
长度 |
价值 |
0x40 |
0x01 |
0x00 |
0x5A |
0x02 |
loc_ready (bit 0) uwbmac_joined (bit 1) bh_status_changed (bit 2) bh_data_ready (bit 3) bh_initialized (bit 4) uwb_scan_ready (bit 5) usr_data_ready(bit 6) usr_data_sent(bit 7) fwup_in_progress(bit 8) reserved (bits 9-15) |
0x01 0x00 |