mirror of
https://github.com/h2zero/esp-nimble-cpp.git
synced 2024-11-24 22:20:55 +01:00
Add index parameter for multiple manufacturer data sets.
Adds an index parameter to NimBLEAdvertisedDevice::getManufacturerData to allow for selecting from multiple instances in the advertisements. Adds NimBLEAdvertisedDevice::getManufacturerDataCount to get the number of manufacturer data sets present in the advertised data.
This commit is contained in:
parent
4423e5fbb6
commit
559a26b74b
2 changed files with 16 additions and 4 deletions
|
@ -159,12 +159,14 @@ uint16_t NimBLEAdvertisedDevice::getMaxInterval() {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the manufacturer data.
|
* @brief Get the manufacturer data.
|
||||||
* @return The manufacturer data of the advertised device.
|
* @param [in] index The index of the of the manufacturer data set to get.
|
||||||
|
* @return The manufacturer data.
|
||||||
*/
|
*/
|
||||||
std::string NimBLEAdvertisedDevice::getManufacturerData() {
|
std::string NimBLEAdvertisedDevice::getManufacturerData(uint8_t index) {
|
||||||
size_t data_loc = 0;
|
size_t data_loc = 0;
|
||||||
|
index++;
|
||||||
|
|
||||||
if(findAdvField(BLE_HS_ADV_TYPE_MFG_DATA, 0, &data_loc) > 0) {
|
if(findAdvField(BLE_HS_ADV_TYPE_MFG_DATA, index, &data_loc) > 0) {
|
||||||
ble_hs_adv_field *field = (ble_hs_adv_field *)&m_payload[data_loc];
|
ble_hs_adv_field *field = (ble_hs_adv_field *)&m_payload[data_loc];
|
||||||
if(field->length > 1) {
|
if(field->length > 1) {
|
||||||
return std::string((char*)field->value, field->length - 1);
|
return std::string((char*)field->value, field->length - 1);
|
||||||
|
@ -175,6 +177,15 @@ std::string NimBLEAdvertisedDevice::getManufacturerData() {
|
||||||
} // getManufacturerData
|
} // getManufacturerData
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the count of manufacturer data sets.
|
||||||
|
* @return The number of manufacturer data sets.
|
||||||
|
*/
|
||||||
|
uint8_t NimBLEAdvertisedDevice::getManufacturerDataCount() {
|
||||||
|
return findAdvField(BLE_HS_ADV_TYPE_MFG_DATA);
|
||||||
|
} // getManufacturerDataCount
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the URI from the advertisement.
|
* @brief Get the URI from the advertisement.
|
||||||
* @return The URI data.
|
* @return The URI data.
|
||||||
|
|
|
@ -50,7 +50,8 @@ public:
|
||||||
uint16_t getAdvInterval();
|
uint16_t getAdvInterval();
|
||||||
uint16_t getMinInterval();
|
uint16_t getMinInterval();
|
||||||
uint16_t getMaxInterval();
|
uint16_t getMaxInterval();
|
||||||
std::string getManufacturerData();
|
uint8_t getManufacturerDataCount();
|
||||||
|
std::string getManufacturerData(uint8_t index = 0);
|
||||||
std::string getURI();
|
std::string getURI();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue