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

  • 0位-#) uwb_mode

  • (2位) fw_update_en

  • (3位) ble_en

  • (4位) led_en

  • (5位) enc_en

0x9C 0x02

类型 0x07 表示命令 dwm_cfg_anchor_set

TLV 响应

类型

长度

价值(参见错误代码)

0x40

0x01

0x00

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