ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
ble_nus.h
Go to the documentation of this file.
1#pragma once
2#ifdef USE_ZEPHYR
5#ifdef USE_LOGGER
7#endif
8#include <shell/shell_bt_nus.h>
9#include <atomic>
10
11namespace esphome::ble_nus {
12
13class BLENUS : public Component {
14 enum TxStatus {
15 TX_DISABLED,
16 TX_ENABLED,
17 TX_BUSY,
18 };
19
20 public:
21 void setup() override;
22 void dump_config() override;
23 void loop() override;
24 size_t write_array(const uint8_t *data, size_t len);
25 void set_expose_log(bool expose_log) { this->expose_log_ = expose_log; }
26#ifdef USE_LOGGER
27 void on_log(uint8_t level, const char *tag, const char *message, size_t message_len);
28#endif
29
30 protected:
31 static void send_enabled_callback(bt_nus_send_status status);
32 static void tx_callback(bt_conn *conn);
33 static void rx_callback(bt_conn *conn, const uint8_t *data, uint16_t len);
34 static void connected(bt_conn *conn, uint8_t err);
35 static void disconnected(bt_conn *conn, uint8_t reason);
36
37 std::atomic<bt_conn *> conn_ = nullptr;
38 bool expose_log_ = false;
39 atomic_t tx_status_ = ATOMIC_INIT(TX_DISABLED);
40};
41
42} // namespace esphome::ble_nus
43#endif
static void disconnected(bt_conn *conn, uint8_t reason)
Definition ble_nus.cpp:36
static void rx_callback(bt_conn *conn, const uint8_t *data, uint16_t len)
Definition ble_nus.cpp:67
static void connected(bt_conn *conn, uint8_t err)
Definition ble_nus.cpp:30
void setup() override
Definition ble_nus.cpp:71
void set_expose_log(bool expose_log)
Definition ble_nus.h:25
void loop() override
Definition ble_nus.cpp:121
std::atomic< bt_conn * > conn_
Definition ble_nus.h:37
static void tx_callback(bt_conn *conn)
Definition ble_nus.cpp:44
void on_log(uint8_t level, const char *tag, const char *message, size_t message_len)
Definition ble_nus.cpp:99
void dump_config() override
Definition ble_nus.cpp:108
size_t write_array(const uint8_t *data, size_t len)
Definition ble_nus.cpp:23
static void send_enabled_callback(bt_nus_send_status status)
Definition ble_nus.cpp:49
const char * message
Definition component.cpp:38
std::string size_t len
Definition helpers.h:817