mirror of
https://github.com/h2zero/esp-nimble-cpp.git
synced 2024-12-25 12:10:47 +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.
|
||||
* @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;
|
||||
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];
|
||||
if(field->length > 1) {
|
||||
return std::string((char*)field->value, field->length - 1);
|
||||
|
@ -175,6 +177,15 @@ std::string NimBLEAdvertisedDevice::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.
|
||||
* @return The URI data.
|
||||
|
|
|
@ -50,7 +50,8 @@ public:
|
|||
uint16_t getAdvInterval();
|
||||
uint16_t getMinInterval();
|
||||
uint16_t getMaxInterval();
|
||||
std::string getManufacturerData();
|
||||
uint8_t getManufacturerDataCount();
|
||||
std::string getManufacturerData(uint8_t index = 0);
|
||||
std::string getURI();
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue