dwm_cfg_anchor_set
使用给定选项将节点配置为锚点. BLE 选项不能与加密一起启用. 否则,配置将被视为无效,不会被使用. 如果未设置加密密钥,则无法启用加密. 该调用需要重置新配置才能生效(dwm_reset). 在启动器上启用加密将自动启用对设置了相同加密密钥()的所有节点的加密. 这样,整个网络就可以使用相同的 pan ID(网络 ID)和加密密钥,从一个地方进行远程加密.
小心
通常,在设置新值时,这个调用会写入内部闪存. 因此,它不应该被频繁使用,在最坏的情况下,可能需要数百毫秒!
-
int dwm_cfg_anchor_set(dwm_cfg_anchor_t *cfg_anchor);
- 参数
input – cfg_anchor
cfg_anchor – initiator, bridge, led_en, ble_en, uwb_mode, fw_update_en, enc_en
initiator – ‘0’ | ‘1’ (启动程序角色启用)
bridge – ‘0’ | ‘1’ (启用网桥角色)
enc_en – ‘0’ | ‘1’ (加密启用)
led_en – ‘0’ | ‘1’ (启用通用 LED)
ble_en – ‘0’ | ‘1’ (BLE 启用)
uwb_mode – ‘0’ | ‘1’ | ‘2’ (0 关,1 被动,2 主动)
fw_update_en – ‘0’ | ‘1’ (固件更新启用)
output – 状态代码
注解
仅在编译了 UWB 路由回程的固件时可用:
uwb_bh_routing: ‘0’ | ‘1’ | ‘2’ (0(OFF) - 锚点不会成为路由锚点,1(ON) - 锚点将被路由算法优先选择为路由锚点,2(AUTO) - 锚点是否成为路由锚点完全取决于路由算法)
C代码示例
dwm_cfg_anchor_t cfg;
int rv;
cfg.initiator = 1;
cfg.bridge = 0;
/* [Available only when the firmware is compiled with UWB routing backhaul: cfg.uwb_bh_routing: DWM_UWB_BH_ROUTING_AUTO;] */
cfg.common.enc_en = 1;
cfg.common.led_en = 1;
cfg.common.ble_en = 1;
cfg.common.fw_update_en = 1;
cfg.common.uwb_mode = DWM_UWB_MODE_OFF;
rv = dwm_cfg_anchor_set(&cfg);
if (rv == DWM_ERR_PERM)
{
printf("Error: either encryption or BLE can be enabled, encryption can be enabled only if encryption key is set\n”);
}
dwm_reset();
SPI/UART 示例
TLV 请求 |
||
---|---|---|
0x07 |
0x02 |
|
0x9C 0x02 |
类型 0x07 表示命令 dwm_cfg_anchor_set
TLV 响应 |
||
---|---|---|
类型 |
长度 |
价值(参见错误代码) |
0x40 |
0x01 |
0x00 |
类型0x40表示 状态代码 上一条命令的状态码