ESPHome 2026.1.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#ifdef USE_LOGGER
15 ,
17#endif
18{
19 enum TxStatus {
20 TX_DISABLED,
21 TX_ENABLED,
22 TX_BUSY,
23 };
24
25 public:
26 void setup() override;
27 void dump_config() override;
28 void loop() override;
29 size_t write_array(const uint8_t *data, size_t len);
30 void set_expose_log(bool expose_log) { this->expose_log_ = expose_log; }
31#ifdef USE_LOGGER
32 void on_log(uint8_t level, const char *tag, const char *message, size_t message_len) override;
33#endif
34
35 protected:
36 static void send_enabled_callback(bt_nus_send_status status);
37 static void tx_callback(bt_conn *conn);
38 static void rx_callback(bt_conn *conn, const uint8_t *data, uint16_t len);
39 static void connected(bt_conn *conn, uint8_t err);
40 static void disconnected(bt_conn *conn, uint8_t reason);
41
42 std::atomic<bt_conn *> conn_ = nullptr;
43 bool expose_log_ = false;
44 atomic_t tx_status_ = ATOMIC_INIT(TX_DISABLED);
45};
46
47} // namespace esphome::ble_nus
48#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:30
void loop() override
Definition ble_nus.cpp:116
std::atomic< bt_conn * > conn_
Definition ble_nus.h:42
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) override
Definition ble_nus.cpp:96
void dump_config() override
Definition ble_nus.cpp:105
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
Interface for receiving log messages without std::function overhead.
Definition logger.h:56
const char * message
Definition component.cpp:38
std::string size_t len
Definition helpers.h:533