ESPHome 2025.12.0-dev
Loading...
Searching...
No Matches
ble_nus.h
Go to the documentation of this file.
1#pragma once
2#ifdef USE_ZEPHYR
5#include <shell/shell_bt_nus.h>
6#include <atomic>
7
8namespace esphome::ble_nus {
9
10class BLENUS : public Component {
11 enum TxStatus {
12 TX_DISABLED,
13 TX_ENABLED,
14 TX_BUSY,
15 };
16
17 public:
18 void setup() override;
19 void dump_config() override;
20 void loop() override;
21 size_t write_array(const uint8_t *data, size_t len);
22 void set_expose_log(bool expose_log) { this->expose_log_ = expose_log; }
23
24 protected:
25 static void send_enabled_callback(bt_nus_send_status status);
26 static void tx_callback(bt_conn *conn);
27 static void rx_callback(bt_conn *conn, const uint8_t *data, uint16_t len);
28 static void connected(bt_conn *conn, uint8_t err);
29 static void disconnected(bt_conn *conn, uint8_t reason);
30
31 std::atomic<bt_conn *> conn_ = nullptr;
32 bool expose_log_ = false;
33 atomic_t tx_status_ = ATOMIC_INIT(TX_DISABLED);
34};
35
36} // namespace esphome::ble_nus
37#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:22
void loop() override
Definition ble_nus.cpp:112
std::atomic< bt_conn * > conn_
Definition ble_nus.h:31
static void tx_callback(bt_conn *conn)
Definition ble_nus.cpp:44
void dump_config() override
Definition ble_nus.cpp:101
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
std::string size_t len
Definition helpers.h:500