Aruna
ESP32_UART.h
Go to the documentation of this file.
1 //
2 // Created by noeel on 16-1-19.
3 //
4 
5 #ifndef ARUNA_ESP32_UART_H
6 #define ARUNA_ESP32_UART_H
7 
8 #include "aruna/driver/UART.h"
9 #include "aruna/arunaTypes.h"
10 #include "driver/uart.h"
11 
12 namespace aruna {
13  namespace driver {
14 
15  class ESP32_UART : public UART {
16  public:
29  ESP32_UART(uart_port_t UART_NUM,
30  int TXD_PIN,
31  int RXD_PIN,
32  int RTS_PIN,
33  int CTS_PIN,
34  uart_config_t UART_CONFIG,
35  uart_mode_t UART_MODE,
36  unsigned int TX_BUF_SIZE,
37  unsigned int RX_BUF_SIZE);
38 
39 
40  ~ESP32_UART();
41 
42  uint32_t get_read_buffer_length() override;
43 
44  uint32_t get_baudrate() override;
45 
46  flowcontrol_t get_flowcontrol() override;
47 
48  parity_t get_parity() override;
49 
50  stop_bit_t get_stop_bit() override;
51 
52  word_length_t get_word_length() override;
53 
54 
55  private:
56 
57  // uart port, 0 is usb, 1 and 2 can be defined by pins
58  const uart_port_t UART_NUM;
59  bool software_flowcontrol = false;
60 
61  QueueHandle_t uart_queue;
62 
63  size_t _write(uint8_t *data, size_t dataSize) override;
64 
65  size_t _read(uint8_t *buffer, size_t length) override;
66 
67  uint32_t _set_baudrate(uint32_t new_baudrate) override;
68 
69  err_t _set_flowcontrol(flowcontrol_t new_flowcontrol) override;
70 
71  err_t _set_parity(parity_t parity_bit) override;
72 
73  err_t _set_stop_bit(stop_bit_t stop_bit) override;
74 
75  err_t _set_word_length(word_length_t word_length) override;
76 
77  };
78  }
79 }
80 #endif //ARUNA_ESP32_UART_H
word_length_t get_word_length() override
Set UART data bits length.
Definition: ESP32_UART.cpp:227
stop_bit_t get_stop_bit() override
get stop bit
Definition: ESP32_UART.cpp:204
Definition: comm.cpp:14
uint32_t get_baudrate() override
Get baudrate of UART.
Definition: ESP32_UART.cpp:50
ESP32_UART(uart_port_t UART_NUM, int TXD_PIN, int RXD_PIN, int RTS_PIN, int CTS_PIN, uart_config_t UART_CONFIG, uart_mode_t UART_MODE, unsigned int TX_BUF_SIZE, unsigned int RX_BUF_SIZE)
Create a uart driver with custom settings.
Definition: ESP32_UART.cpp:15
err_t _set_stop_bit(stop_bit_t stop_bit) override
set stop bit
Definition: ESP32_UART.cpp:130
err_t _set_flowcontrol(flowcontrol_t new_flowcontrol) override
Set software or hardware flowcontrol.
Definition: ESP32_UART.cpp:78
const uart_port_t UART_NUM
Definition: ESP32_UART.h:58
uint32_t get_read_buffer_length() override
Get amount of bytes in the read buffer.
Definition: ESP32_UART.cpp:153
uint32_t _set_baudrate(uint32_t new_baudrate) override
Set baudrate of the UART.
Definition: ESP32_UART.cpp:73
parity_t get_parity() override
Get parity of UART.
Definition: ESP32_UART.cpp:185
Link * driver
stores the driver.
Definition: comm.cpp:45
flowcontrol_t get_flowcontrol() override
get flowcontrol of UART
Definition: ESP32_UART.cpp:159
err_t _set_parity(parity_t parity_bit) override
Set parity bit.
Definition: ESP32_UART.cpp:110
size_t _write(uint8_t *data, size_t dataSize) override
write data to the link/bus.
Definition: ESP32_UART.cpp:46
size_t _read(uint8_t *buffer, size_t length) override
Read bytes and out them in the buffer.
Definition: ESP32_UART.cpp:69
err_t _set_word_length(word_length_t word_length) override
Set UART data bits length.
Definition: ESP32_UART.cpp:252
QueueHandle_t uart_queue
Definition: ESP32_UART.h:61