ESPHome 2026.5.1
Loading...
Searching...
No Matches
esp32_can.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef USE_ESP32
4
7
8#include <driver/twai.h>
9
10namespace esphome::esp32_can {
11
12enum CanMode : uint8_t {
15};
16
17class ESP32Can : public canbus::Canbus {
18 public:
19 void set_rx(int rx) { rx_ = rx; }
20 void set_tx(int tx) { tx_ = tx; }
22 void set_tx_queue_len(uint32_t tx_queue_len) { this->tx_queue_len_ = tx_queue_len; }
23 void set_rx_queue_len(uint32_t rx_queue_len) { this->rx_queue_len_ = rx_queue_len; }
24 void set_tx_enqueue_timeout_ms(uint32_t tx_enqueue_timeout_ms) {
25 this->tx_enqueue_timeout_ticks_ = pdMS_TO_TICKS(tx_enqueue_timeout_ms);
26 }
28
29 protected:
30 bool setup_internal() override;
31 canbus::Error send_message(struct canbus::CanFrame *frame) override;
32 canbus::Error read_message(struct canbus::CanFrame *frame) override;
33
34 int rx_{-1};
35 int tx_{-1};
38 optional<uint32_t> tx_queue_len_{};
39 optional<uint32_t> rx_queue_len_{};
40 twai_handle_t twai_handle_{nullptr};
41};
42
43} // namespace esphome::esp32_can
44
45#endif
BedjetMode mode
BedJet operating mode.
canbus::Error read_message(struct canbus::CanFrame *frame) override
void set_mode(CanMode mode)
Definition esp32_can.h:21
optional< uint32_t > rx_queue_len_
Definition esp32_can.h:39
TickType_t tx_enqueue_timeout_ticks_
Definition esp32_can.h:37
void set_tx_enqueue_timeout_ms(uint32_t tx_enqueue_timeout_ms)
Definition esp32_can.h:24
void set_tx_queue_len(uint32_t tx_queue_len)
Definition esp32_can.h:22
optional< uint32_t > tx_queue_len_
Definition esp32_can.h:38
void set_rx_queue_len(uint32_t rx_queue_len)
Definition esp32_can.h:23
canbus::Error send_message(struct canbus::CanFrame *frame) override
bool setup_internal() override
Definition esp32_can.cpp:69
static void uint32_t