mirror of
https://github.com/h2zero/esp-nimble-cpp.git
synced 2024-12-22 19:10:46 +01:00
Add generic advertisement 'type' functions (#575)
This commit is contained in:
parent
4e65ce5d32
commit
22fb1ab801
2 changed files with 28 additions and 0 deletions
|
@ -203,6 +203,24 @@ std::string NimBLEAdvertisedDevice::getURI() {
|
|||
return "";
|
||||
} // getURI
|
||||
|
||||
/**
|
||||
* @brief Get the data from any type available in the advertisement
|
||||
* @param [in] type The advertised data type BLE_HS_ADV_TYPE
|
||||
* @return The data available under the type `type`
|
||||
*/
|
||||
std::string NimBLEAdvertisedDevice::getPayloadByType(uint16_t type) {
|
||||
size_t data_loc = 0;
|
||||
|
||||
if(findAdvField(type, 0, &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);
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
} // getPayloadByType
|
||||
|
||||
|
||||
/**
|
||||
* @brief Get the advertised name.
|
||||
|
@ -556,6 +574,14 @@ bool NimBLEAdvertisedDevice::haveURI() {
|
|||
return findAdvField(BLE_HS_ADV_TYPE_URI) > 0;
|
||||
} // haveURI
|
||||
|
||||
/**
|
||||
* @brief Does this advertisement have a adv type `type`?
|
||||
* @return True if there is a `type` present.
|
||||
*/
|
||||
bool NimBLEAdvertisedDevice::haveType(uint16_t type) {
|
||||
return findAdvField(type) > 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Does the advertisement contain a target address?
|
||||
|
|
|
@ -53,6 +53,7 @@ public:
|
|||
uint8_t getManufacturerDataCount();
|
||||
std::string getManufacturerData(uint8_t index = 0);
|
||||
std::string getURI();
|
||||
std::string getPayloadByType(uint16_t type);
|
||||
|
||||
/**
|
||||
* @brief A template to convert the service data to <type\>.
|
||||
|
@ -134,6 +135,7 @@ public:
|
|||
bool haveAdvInterval();
|
||||
bool haveTargetAddress();
|
||||
bool haveURI();
|
||||
bool haveType(uint16_t type);
|
||||
std::string toString();
|
||||
bool isConnectable();
|
||||
bool isLegacyAdvertisement();
|
||||
|
|
Loading…
Reference in a new issue