ESPHome 2025.12.0-dev
Loading...
Searching...
No Matches
ble_sensor.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <vector>
9
10#ifdef USE_ESP32
11#include <esp_gattc_api.h>
12
13namespace esphome {
14namespace ble_client {
15
17
19 public:
20 void loop() override;
21 void update() override;
22 void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if,
23 esp_ble_gattc_cb_param_t *param) override;
24 void dump_config() override;
25 void set_service_uuid16(uint16_t uuid) { this->service_uuid_ = espbt::ESPBTUUID::from_uint16(uuid); }
26 void set_service_uuid32(uint32_t uuid) { this->service_uuid_ = espbt::ESPBTUUID::from_uint32(uuid); }
27 void set_service_uuid128(uint8_t *uuid) { this->service_uuid_ = espbt::ESPBTUUID::from_raw(uuid); }
28 void set_char_uuid16(uint16_t uuid) { this->char_uuid_ = espbt::ESPBTUUID::from_uint16(uuid); }
29 void set_char_uuid32(uint32_t uuid) { this->char_uuid_ = espbt::ESPBTUUID::from_uint32(uuid); }
30 void set_char_uuid128(uint8_t *uuid) { this->char_uuid_ = espbt::ESPBTUUID::from_raw(uuid); }
31 void set_descr_uuid16(uint16_t uuid) { this->descr_uuid_ = espbt::ESPBTUUID::from_uint16(uuid); }
32 void set_descr_uuid32(uint32_t uuid) { this->descr_uuid_ = espbt::ESPBTUUID::from_uint32(uuid); }
33 void set_descr_uuid128(uint8_t *uuid) { this->descr_uuid_ = espbt::ESPBTUUID::from_raw(uuid); }
34 void set_data_to_value(float (*lambda)(const std::vector<uint8_t> &)) {
35 this->data_to_value_func_ = lambda;
36 this->has_data_to_value_ = true;
37 }
38 void set_enable_notify(bool notify) { this->notify_ = notify; }
39 uint16_t handle;
40
41 protected:
42 float parse_data_(uint8_t *value, uint16_t value_len);
43 bool has_data_to_value_{false};
44 float (*data_to_value_func_)(const std::vector<uint8_t> &){};
45 bool notify_;
49};
50
51} // namespace ble_client
52} // namespace esphome
53#endif
This class simplifies creating components that periodically check a state.
Definition component.h:437
void set_data_to_value(float(*lambda)(const std::vector< uint8_t > &))
Definition ble_sensor.h:34
void set_service_uuid32(uint32_t uuid)
Definition ble_sensor.h:26
espbt::ESPBTUUID service_uuid_
Definition ble_sensor.h:46
void set_service_uuid16(uint16_t uuid)
Definition ble_sensor.h:25
void set_service_uuid128(uint8_t *uuid)
Definition ble_sensor.h:27
void set_char_uuid128(uint8_t *uuid)
Definition ble_sensor.h:30
void set_descr_uuid16(uint16_t uuid)
Definition ble_sensor.h:31
float(* data_to_value_func_)(const std::vector< uint8_t > &)
Definition ble_sensor.h:44
void set_char_uuid32(uint32_t uuid)
Definition ble_sensor.h:29
float parse_data_(uint8_t *value, uint16_t value_len)
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_descr_uuid32(uint32_t uuid)
Definition ble_sensor.h:32
espbt::ESPBTUUID descr_uuid_
Definition ble_sensor.h:48
espbt::ESPBTUUID char_uuid_
Definition ble_sensor.h:47
void set_enable_notify(bool notify)
Definition ble_sensor.h:38
void set_char_uuid16(uint16_t uuid)
Definition ble_sensor.h:28
void set_descr_uuid128(uint8_t *uuid)
Definition ble_sensor.h:33
Base-class for all sensors.
Definition sensor.h:42
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7