8 #ifndef COMPONENTS_CPP_UTILS_BLEADVERTISEDDEVICE_H_
9 #define COMPONENTS_CPP_UTILS_BLEADVERTISEDDEVICE_H_
10 #include "sdkconfig.h"
11 #if defined(CONFIG_BT_ENABLED)
12 #include <esp_gattc_api.h>
16 #include "BLEAddress.h"
28 class BLEAdvertisedDevice {
30 BLEAdvertisedDevice();
32 BLEAddress getAddress();
33 uint16_t getAppearance();
34 std::string getManufacturerData();
35 std::string getName();
38 std::string getServiceData();
39 BLEUUID getServiceDataUUID();
40 BLEUUID getServiceUUID();
42 uint8_t* getPayload();
43 size_t getPayloadLength();
44 esp_ble_addr_type_t getAddressType();
45 void setAddressType(esp_ble_addr_type_t type);
48 bool isAdvertisingService(BLEUUID uuid);
49 bool haveAppearance();
50 bool haveManufacturerData();
53 bool haveServiceData();
54 bool haveServiceUUID();
57 std::string toString();
62 void parseAdvertisement(uint8_t* payload,
size_t total_len=62);
63 void setAddress(BLEAddress address);
64 void setAdFlag(uint8_t adFlag);
65 void setAdvertizementResult(uint8_t* payload);
66 void setAppearance(uint16_t appearance);
67 void setManufacturerData(std::string manufacturerData);
68 void setName(std::string name);
69 void setRSSI(
int rssi);
70 void setScan(BLEScan* pScan);
71 void setServiceData(std::string data);
72 void setServiceDataUUID(BLEUUID uuid);
73 void setServiceUUID(
const char* serviceUUID);
74 void setServiceUUID(BLEUUID serviceUUID);
75 void setTXPower(int8_t txPower);
77 bool m_haveAppearance;
78 bool m_haveManufacturerData;
81 bool m_haveServiceData;
82 bool m_haveServiceUUID;
86 BLEAddress m_address = BLEAddress((uint8_t*)
"\0\0\0\0\0\0");
88 uint16_t m_appearance;
90 std::string m_manufacturerData;
94 std::vector<BLEUUID> m_serviceUUIDs;
96 std::string m_serviceData;
97 BLEUUID m_serviceDataUUID;
99 size_t m_payloadLength = 0;
100 esp_ble_addr_type_t m_addressType;
110 class BLEAdvertisedDeviceCallbacks {
112 virtual ~BLEAdvertisedDeviceCallbacks() {}
119 virtual void onResult(BLEAdvertisedDevice advertisedDevice) = 0;