Hi.
Hope someone could help me on how to scan and parse the Manufacturer Specific Data that comes after the Company ID. I am using zephyr with nRF52840.
Thanks!
Hi
My colleague has provided you with what should be a working example in your private ticket, and has requested that you continue the discussion there.
For any other DevZone users finding this thread, modify the Zephyr beacon sample accordingly:
static char mfg_data[] = "simon_manuf"; static const struct bt_data ad[] = { BT_DATA(BT_DATA_MANUFACTURER_DATA, mfg_data, sizeof(mfg_data)), };
Program that onto I.E. an nRF52840 DK or Dongle, then modify the observer sample like this and program that onto another DK:
static bool data_cb(struct bt_data *data, void *user_data) { char *name = user_data; uint8_t len; switch (data->type) { case BT_DATA_MANUFACTURER_DATA: len = MIN(data->data_len, NAME_LEN - 1); memcpy(name, data->data, len); name[len] = '\0'; return false; default: return true; } }
Best regards,
Simon
Hi
My colleague has provided you with what should be a working example in your private ticket, and has requested that you continue the discussion there.
For any other DevZone users finding this thread, modify the Zephyr beacon sample accordingly:
static char mfg_data[] = "simon_manuf"; static const struct bt_data ad[] = { BT_DATA(BT_DATA_MANUFACTURER_DATA, mfg_data, sizeof(mfg_data)), };
Program that onto I.E. an nRF52840 DK or Dongle, then modify the observer sample like this and program that onto another DK:
static bool data_cb(struct bt_data *data, void *user_data) { char *name = user_data; uint8_t len; switch (data->type) { case BT_DATA_MANUFACTURER_DATA: len = MIN(data->data_len, NAME_LEN - 1); memcpy(name, data->data, len); name[len] = '\0'; return false; default: return true; } }
Best regards,
Simon