ESPHome 2025.12.0-dev
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
13class ESP32Can : public canbus::Canbus {
14 public:
15 void set_rx(int rx) { rx_ = rx; }
16 void set_tx(int tx) { tx_ = tx; }
17 void set_tx_queue_len(uint32_t tx_queue_len) { this->tx_queue_len_ = tx_queue_len; }
18 void set_rx_queue_len(uint32_t rx_queue_len) { this->rx_queue_len_ = rx_queue_len; }
19 void set_tx_enqueue_timeout_ms(uint32_t tx_enqueue_timeout_ms) {
20 this->tx_enqueue_timeout_ticks_ = pdMS_TO_TICKS(tx_enqueue_timeout_ms);
21 }
23
24 protected:
25 bool setup_internal() override;
26 canbus::Error send_message(struct canbus::CanFrame *frame) override;
27 canbus::Error read_message(struct canbus::CanFrame *frame) override;
28
29 int rx_{-1};
30 int tx_{-1};
34 twai_handle_t twai_handle_{nullptr};
35};
36
37} // namespace esp32_can
38} // namespace esphome
39
40#endif
canbus::Error read_message(struct canbus::CanFrame *frame) override
optional< uint32_t > rx_queue_len_
Definition esp32_can.h:33
TickType_t tx_enqueue_timeout_ticks_
Definition esp32_can.h:31
void set_tx_enqueue_timeout_ms(uint32_t tx_enqueue_timeout_ms)
Definition esp32_can.h:19
void set_tx_queue_len(uint32_t tx_queue_len)
Definition esp32_can.h:17
optional< uint32_t > tx_queue_len_
Definition esp32_can.h:32
void set_rx_queue_len(uint32_t rx_queue_len)
Definition esp32_can.h:18
canbus::Error send_message(struct canbus::CanFrame *frame) override
bool setup_internal() override
Definition esp32_can.cpp:69
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7