dwm_mac_addr_set

Sets the MAC address of the BLE, UWB, Ethernet or Wi-Fi interface and needs reset to take effect. It Should not be used frequently since it writes the internal non-volatile memory. Factory reset is needed (dwm_factory_reset) to use the default MAC address. The two least significant bytes of the UWB MAC address must not be equal to 0x0000 or 0xFFFF. The BLE address can be either the Random or the Public BLE address. The Ethernet and the Wi-Fi address must respect the EUI-48 format, and the U/I bits must be set accordingly.

void dwm_mac_addr_set(dwm_mac_addr_t *addr)
Parameters
  • input – addr_type, addr_value

  • addr_type – ? 8-bit integer ? (0=UWB address, 1=BLE Random address, 2=BLE Public address, 3=ETH address, 4= WIFI address, ETH and WIFI is supported only on the gateway)

  • addr_value – ? 6 bytes ? (6 byte long MAC address)

  • output:Status code

C code example

dwm_mac_addr_t addr;
addr.type: NODE_ADDR_TYPE_UWB;
addr.bytes[0]: 0xAA;
addr.bytes[1]: 0xBB;
addr.bytes[2]: 0xCC;
addr.bytes[3]: 0xDD;
addr.bytes[4]: 0xEE;
addr.bytes[5]: 0xFF;
int rv: dwm_mac_addr_set(&addr);
if (rv != DWM_OK) {
printf("can't set node address, error %d\n", rv);
}

SPI/UART example

TLV Request

Type

Length

Value

0x2D

0x07

node ID in little endian

0x00 0xEF 0xCD 0xAB 0x56 0x34 0x12

Type 0x2D (45 dec) means command dwm_mac_addr_set

TLV Response

Type

Length

Value (see error codes)

0x40

0x01

0x00

Type 0x40 means err_code of the previous command