dwm_cfg_anchor_set

指定されたオプションでノードをアンカーとして設定する。BLEオプションは暗号化とともに有効にすることはできない。そうでない場合、設定は無効とみなされ、使用されません。暗号化キーが設定されていない場合、暗号化は有効にできない。このコールは、新しいコンフィギュレーションを有効にするためにリセットを必要とする(dwm_reset)。イニシエータで暗号化を有効にすると、同じ暗号化キーが設定されたすべてのノードの暗号化が自動的に有効になります()。これにより、同じパンID(ネットワークID)と暗号化キーを持つネットワーク全体の暗号化が1箇所からリモートで可能になります。

注意

通常、この呼び出しは新しい値を設定するときに内部フラッシュに書き込む。したがって、頻繁に使うべきものではなく、最悪の場合数百ミリ秒かかることもある!

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は、直前のコマンドの ステータスコード を意味する