dwm_mac_addr_get
デバイスが使用するMACアドレスリストを取得します。デバイスは、ユーザーが指定したアドレスまたはデフォルトのアドレスを使用します。各インターフェースのデフォルトMACアドレスは、dwm_mac_addr_set_once を呼び出すことで1回のみ変更できます。このMACアドレスはOTPメモリに書き込まれ、新しいデフォルトMACアドレスとなります。ユーザーは dwm_mac_addr_set を呼び出すことでカスタムMACアドレスを設定できます。ユーザーが変更したデフォルトMACアドレスは、工場出荷時設定へのリセット(dwm_factory_reset を参照)によって復元できます。デバイスは、リスト内の MAC アドレスから特定のインターフェイスへの固定マッピングを次のように使用します:
UWB
BLE
イーサネット
无线网络
BLE アドレスには、ランダム BLE アドレスまたはパブリック BLE アドレスを指定できます。特定のインターフェイスがサポートされていない場合、リスト内の対応する MAC アドレスは空になります。
- 
void dwm_mac_addr_get(dwm_mac_addr_list_t *mac_addr_list)
 - パラメータ
 output -- ステータスコード, type_0, type_1, type_2, type_3, mac_addr_0, mac_addr_1, mac_addr_2, mac_addr_3
type_N -- ステータス、フラグ (リストのインデックス 0 にある MAC アドレスを説明するタイプ)
status -- 2 ビット (* MAC アドレスのステータス: MAC_ADDR_EMPTY = 0、MAC_ADDR_DEFAULT = 1、MAC_ADDR_USER_SPECIFIED = 2、MAC_ADDR_MUTABLE_DEFAULT = 3*)
flags -- 6 ビット (アドレスが PUBLIC_BLE_ADDR の場合、ビット 0 が設定され、残りのビットは将来の使用のために予約されています)
mac_addr_N -- 48 ビット値 (リトルエンディアン)
Cコード例
dwm_mac_addr_list_t mac_addr_list;
rv: dwm_mac_addr_get(&mac_addr_list);
if (rv == DWM_OK) {
  printf("UWB MAC 0x%02x%02x%02x%02x%02x%02x status=x%02x\n",
  mac_addr_list.mac[0][0],
  mac_addr_list.mac[0][1],
  mac_addr_list.mac[0][2],
  mac_addr_list.mac[0][3],
  mac_addr_list.mac[0][4],
  mac_addr_list.mac[0][5],
  mac_addr_list.type[0].status);
} else {
  printf("can't get MAC address list, error %d\n", rv);
}
SPI/UART 例
TLV 要求  | 
|
|---|---|
タイプ  | 
長さ  | 
0x83  | 
0x00  | 
タイプ 0x83 (131 dec) はコマンドを意味しますdwm_mac_addr_get
TLV 応答  | 
|||||
|---|---|---|---|---|---|
タイプ  | 
長さ  | 
値(エラーコードを参照)  | 
タイプ  | 
長さ  | 
値  | 
0x40  | 
0x01  | 
0x00  | 
0xC1  | 
0x18  | 
(バイト 0 ~ 4) リスト内の MAC アドレスの種類 
(バイト 5-10) リトルエンディアンの MAC アドレス 0 
(バイト 11-16) リトルエンディアンの MAC アドレス 1 
(バイト 17-22) リトルエンディアンの MAC アドレス 2 
(バイト 23-28) リトルエンディアンの MAC アドレス 3 
 | 
...  | 
|||||
MAC アドレス フラグのエンコーディング
MAC アドレスリストのフラグ  | 
||||||||
|---|---|---|---|---|---|---|---|---|
バイト 0  | 
バイト1  | 
バイト2  | 
バイト3  | 
|||||
ビット 2 ~ 7  | 
ビット0~1  | 
ビット 11 ~ 15  | 
ビット10  | 
ビット 8 ~ 9  | 
ビット 18 ~ 23  | 
ビット 16 ~ 17  | 
ビット 26-31  | 
ビット 24-25  | 
R  | 
S_0  | 
R  | 
P_1  | 
S_1  | 
R  | 
S_2  | 
R  | 
S_3  | 
R は将来の使用のために予約済みです。S_0、S_1、S_2、S_3 は MAC アドレスのステータスを示します。ステータスには次の値を指定できます。
0 - 空の MAC アドレス
1 - OTP メモリからのデフォルトの MAC アドレス。
2 - ユーザーが指定した MAC アドレス
3 - 変更可能なデフォルト MAC アドレスは、dwm_mac_addr_set_once を使用して 1 回だけ書き換えることができます。
BLE アドレスがパブリック BLE アドレスの場合、P_1 が設定されます。 BLE MAC アドレスがランダムな場合、フラグはクリアされます。 BLE アドレス タイプの詳細については、BLE 仕様を参照してください。