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

类型0x5A表示状态
类型0x40表示 状态代码 上一条命令的状态码