ESPHome  2025.4.0
esp32_can.h
Go to the documentation of this file.
1 #pragma once
2 
3 #ifdef USE_ESP32
4 
7 
8 namespace esphome {
9 namespace esp32_can {
10 
11 class ESP32Can : public canbus::Canbus {
12  public:
13  void set_rx(int rx) { rx_ = rx; }
14  void set_tx(int tx) { tx_ = tx; }
15  void set_tx_queue_len(uint32_t tx_queue_len) { this->tx_queue_len_ = tx_queue_len; }
16  void set_rx_queue_len(uint32_t rx_queue_len) { this->rx_queue_len_ = rx_queue_len; }
17  void set_tx_enqueue_timeout_ms(uint32_t tx_enqueue_timeout_ms) {
18  this->tx_enqueue_timeout_ticks_ = pdMS_TO_TICKS(tx_enqueue_timeout_ms);
19  }
20  ESP32Can(){};
21 
22  protected:
23  bool setup_internal() override;
24  canbus::Error send_message(struct canbus::CanFrame *frame) override;
25  canbus::Error read_message(struct canbus::CanFrame *frame) override;
26 
27  int rx_{-1};
28  int tx_{-1};
32 };
33 
34 } // namespace esp32_can
35 } // namespace esphome
36 
37 #endif
optional< uint32_t > tx_queue_len_
Definition: esp32_can.h:30
bool setup_internal() override
Definition: esp32_can.cpp:69
TickType_t tx_enqueue_timeout_ticks_
Definition: esp32_can.h:29
optional< uint32_t > rx_queue_len_
Definition: esp32_can.h:31
void set_rx_queue_len(uint32_t rx_queue_len)
Definition: esp32_can.h:16
void set_tx_queue_len(uint32_t tx_queue_len)
Definition: esp32_can.h:15
canbus::Error read_message(struct canbus::CanFrame *frame) override
Definition: esp32_can.cpp:134
void set_tx_enqueue_timeout_ms(uint32_t tx_enqueue_timeout_ms)
Definition: esp32_can.h:17
Implementation of SPI Controller mode.
Definition: a01nyub.cpp:7
canbus::Error send_message(struct canbus::CanFrame *frame) override
Definition: esp32_can.cpp:104