ESPHome 2026.2.2
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 {
11namespace esp32_can {
12
13enum CanMode : uint8_t {
16};
17
18class ESP32Can : public canbus::Canbus {
19 public:
20 void set_rx(int rx) { rx_ = rx; }
21 void set_tx(int tx) { tx_ = tx; }
23 void set_tx_queue_len(uint32_t tx_queue_len) { this->tx_queue_len_ = tx_queue_len; }
24 void set_rx_queue_len(uint32_t rx_queue_len) { this->rx_queue_len_ = rx_queue_len; }
25 void set_tx_enqueue_timeout_ms(uint32_t tx_enqueue_timeout_ms) {
26 this->tx_enqueue_timeout_ticks_ = pdMS_TO_TICKS(tx_enqueue_timeout_ms);
27 }
29
30 protected:
31 bool setup_internal() override;
32 canbus::Error send_message(struct canbus::CanFrame *frame) override;
33 canbus::Error read_message(struct canbus::CanFrame *frame) override;
34
35 int rx_{-1};
36 int tx_{-1};
41 twai_handle_t twai_handle_{nullptr};
42};
43
44} // namespace esp32_can
45} // namespace esphome
46
47#endif
BedjetMode mode
BedJet operating mode.
canbus::Error read_message(struct canbus::CanFrame *frame) override
void set_mode(CanMode mode)
Definition esp32_can.h:22
optional< uint32_t > rx_queue_len_
Definition esp32_can.h:40
TickType_t tx_enqueue_timeout_ticks_
Definition esp32_can.h:38
void set_tx_enqueue_timeout_ms(uint32_t tx_enqueue_timeout_ms)
Definition esp32_can.h:25
void set_tx_queue_len(uint32_t tx_queue_len)
Definition esp32_can.h:23
optional< uint32_t > tx_queue_len_
Definition esp32_can.h:39
void set_rx_queue_len(uint32_t rx_queue_len)
Definition esp32_can.h:24
canbus::Error send_message(struct canbus::CanFrame *frame) override
bool setup_internal() override
Definition esp32_can.cpp:70
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7