12 namespace ble_client {
18 esp_ble_gattc_cb_param_t *param)
override {
19 if (event == ESP_GATTC_SEARCH_CMPL_EVT) {
20 this->
node_state = espbt::ClientState::ESTABLISHED;
31 esp_ble_gattc_cb_param_t *param)
override {
32 if (event == ESP_GATTC_DISCONNECT_EVT &&
33 memcmp(param->disconnect.remote_bda, this->parent_->get_remote_bda(), 6) == 0)
35 if (event == ESP_GATTC_SEARCH_CMPL_EVT)
36 this->
node_state = espbt::ClientState::ESTABLISHED;
44 ble_client_ = ble_client;
48 void write(
const std::vector<uint8_t> &value);
59 esp_ble_gattc_cb_param_t *param)
override;
63 int ble_char_handle_ = 0;
64 esp_gatt_char_prop_t char_props_;
73 void play(Ts... x)
override {
74 if (has_simple_value_) {
75 return write(this->value_simple_);
77 return write(this->value_template_(x...));
82 this->value_template_ = std::move(func);
83 has_simple_value_ =
false;
87 this->value_simple_ = value;
88 has_simple_value_ =
true;
92 bool has_simple_value_ =
true;
93 std::vector<uint8_t> value_simple_;
94 std::function<std::vector<uint8_t>(Ts...)> value_template_{};
void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t *param) override
void set_value_simple(const std::vector< uint8_t > &value)
BLEClientConnectTrigger(BLEClient *parent)
static ESPBTUUID from_raw(const uint8_t *data)
void set_char_uuid32(uint32_t uuid)
void play(Ts... x) override
void trigger(Ts... x)
Inform the parent automation that the event has triggered.
void set_value_template(std::function< std::vector< uint8_t >(Ts...)> func)
BLEClientDisconnectTrigger(BLEClient *parent)
void set_service_uuid16(uint16_t uuid)
void set_char_uuid16(uint16_t uuid)
void set_char_uuid128(uint8_t *uuid)
BLEWriterClientNode(BLEClient *ble_client)
void register_ble_node(BLEClientNode *node)
static ESPBTUUID from_uint16(uint16_t uuid)
static ESPBTUUID from_uint32(uint32_t uuid)
void set_service_uuid32(uint32_t uuid)
void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t *param) override
void set_service_uuid128(uint8_t *uuid)
BLEClientWriteAction(BLEClient *ble_client)
espbt::ClientState node_state