3 #include "ble_service.h" 4 #include "ble_characteristic.h" 14 #include <unordered_map> 15 #include <unordered_set> 19 #include <esp_gatts_api.h> 22 namespace esp32_ble_server {
24 using namespace esp32_ble;
25 using namespace bytebuffer;
27 namespace BLEServerEvt {
40 void setup()
override;
42 void dump_config()
override;
43 float get_setup_priority()
const override;
44 bool can_proceed()
override;
50 this->manufacturer_data_ = data;
51 this->restart_advertising_();
54 BLEService *create_service(
ESPBTUUID uuid,
bool advertise =
false, uint16_t num_handles = 15);
55 void remove_service(
ESPBTUUID uuid, uint8_t inst_id = 0);
62 const std::unordered_set<uint16_t> &
get_clients() {
return this->clients_; }
64 void gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if,
65 esp_ble_gatts_cb_param_t *param)
override;
67 void ble_before_disabled_event_handler()
override;
70 static std::string get_service_key(
ESPBTUUID uuid, uint8_t inst_id);
71 void restart_advertising_();
73 void add_client_(uint16_t conn_id) { this->clients_.insert(conn_id); }
76 std::vector<uint8_t> manufacturer_data_{};
77 esp_gatt_if_t gatts_if_{0};
78 bool registered_{
false};
81 std::unordered_map<std::string, BLEService *> services_{};
82 std::vector<BLEService *> services_to_start_{};
const std::unordered_set< uint16_t > & get_clients()
esp_gatt_if_t get_gatts_if()
void set_manufacturer_data(const std::vector< uint8_t > &data)
void remove_client_(uint16_t conn_id)
void add_client_(uint16_t conn_id)
BLEServer * global_ble_server
std::unordered_set< uint16_t > clients_
uint32_t get_connected_client_count()
void enqueue_start_service(BLEService *service)
Implementation of SPI Controller mode.
void set_device_information_service(BLEService *service)
Helper class to easily give an object a parent of type T.