8 #ifndef COMPONENTS_CPP_UTILS_BLESERVICE_H_
9 #define COMPONENTS_CPP_UTILS_BLESERVICE_H_
10 #include "sdkconfig.h"
11 #if defined(CONFIG_BT_ENABLED)
13 #include <esp_gatts_api.h>
15 #include "BLECharacteristic.h"
16 #include "BLEServer.h"
25 class BLECharacteristicMap {
27 void setByUUID(BLECharacteristic* pCharacteristic,
const char* uuid);
28 void setByUUID(BLECharacteristic* pCharacteristic, BLEUUID uuid);
29 void setByHandle(uint16_t handle, BLECharacteristic* pCharacteristic);
30 BLECharacteristic* getByUUID(
const char* uuid);
31 BLECharacteristic* getByUUID(BLEUUID uuid);
32 BLECharacteristic* getByHandle(uint16_t handle);
33 BLECharacteristic* getFirst();
34 BLECharacteristic* getNext();
35 std::string toString();
36 void handleGATTServerEvent(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t* param);
39 std::map<BLECharacteristic*, std::string> m_uuidMap;
40 std::map<uint16_t, BLECharacteristic*> m_handleMap;
41 std::map<BLECharacteristic*, std::string>::iterator m_iterator;
51 void addCharacteristic(BLECharacteristic* pCharacteristic);
52 BLECharacteristic* createCharacteristic(
const char* uuid, uint32_t properties);
53 BLECharacteristic* createCharacteristic(BLEUUID uuid, uint32_t properties);
55 void executeCreate(BLEServer* pServer);
57 BLECharacteristic* getCharacteristic(
const char* uuid);
58 BLECharacteristic* getCharacteristic(BLEUUID uuid);
60 BLEServer* getServer();
63 std::string toString();
68 BLEService(
const char* uuid, uint16_t numHandles);
69 BLEService(BLEUUID uuid, uint16_t numHandles);
70 friend class BLEServer;
71 friend class BLEServiceMap;
72 friend class BLEDescriptor;
73 friend class BLECharacteristic;
74 friend class BLEDevice;
76 BLECharacteristicMap m_characteristicMap;
78 BLECharacteristic* m_lastCreatedCharacteristic =
nullptr;
79 BLEServer* m_pServer =
nullptr;
87 uint16_t m_numHandles;
89 BLECharacteristic* getLastCreatedCharacteristic();
90 void handleGATTServerEvent(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t* param);
91 void setHandle(uint16_t handle);
96 #endif // CONFIG_BT_ENABLED
Definition: FreeRTOS.h:31