ESPHome
2026.3.0
Loading...
Searching...
No Matches
esphome
components
zephyr
cdc_acm.cpp
Go to the documentation of this file.
1
#if defined(CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT)
2
#include "
cdc_acm.h
"
3
#include <zephyr/drivers/uart.h>
4
#include <zephyr/drivers/uart/cdc_acm.h>
5
6
#define DEVICE_AND_COMMA(node_id) DEVICE_DT_GET(node_id),
7
8
namespace
esphome::zephyr
{
9
10
CdcAcm::CdcAcm
() {
global_cdc_acm
=
this
; }
11
12
void
CdcAcm::setup
() {
13
#if DT_HAS_COMPAT_STATUS_OKAY(zephyr_cdc_acm_uart)
14
const
struct
device *cdc_dev[] = {DT_FOREACH_STATUS_OKAY(zephyr_cdc_acm_uart, DEVICE_AND_COMMA)};
15
for
(
auto
&idx : cdc_dev) {
16
// only one global callback can be registered
17
cdc_acm_dte_rate_callback_set(idx,
CdcAcm::cdc_dte_rate_callback_
);
18
}
19
#endif
// DT_HAS_COMPAT_STATUS_OKAY(zephyr_cdc_acm_uart)
20
}
21
22
void
CdcAcm::cdc_dte_rate_callback_
(
const
struct
device *device,
uint32_t
rate) {
23
global_cdc_acm
->
defer
([device, rate]() {
global_cdc_acm
->
rate_callbacks_
.call(device, rate); });
24
}
25
26
CdcAcm
*
global_cdc_acm
;
// NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
27
28
}
// namespace esphome::zephyr
29
30
#endif
cdc_acm.h
esphome::Component::defer
ESPDEPRECATED("Use const char* overload instead. Removed in 2026.7.0", "2026.1.0") void defer(const std voi defer)(const char *name, std::function< void()> &&f)
Defer a callback to the next loop() call.
Definition
component.h:501
esphome::zephyr::CdcAcm
Definition
cdc_acm.h:10
esphome::zephyr::CdcAcm::rate_callbacks_
CallbackManager< void(const device *, uint32_t)> rate_callbacks_
Definition
cdc_acm.h:20
esphome::zephyr::CdcAcm::CdcAcm
CdcAcm()
Definition
cdc_acm.cpp:10
esphome::zephyr::CdcAcm::setup
void setup() override
Definition
cdc_acm.cpp:12
esphome::zephyr::CdcAcm::cdc_dte_rate_callback_
static void cdc_dte_rate_callback_(const device *device, uint32_t rate)
Definition
cdc_acm.cpp:22
esphome::zephyr
Definition
cdc_acm.cpp:8
esphome::zephyr::global_cdc_acm
CdcAcm * global_cdc_acm
Definition
cdc_acm.cpp:26
uint32_t
static void uint32_t
Definition
crash_handler.cpp:141
Generated by
1.12.0