11#ifndef M5_UNIT_COMPONENT_ADAPTER_UART_HPP
12#define M5_UNIT_COMPONENT_ADAPTER_UART_HPP
15#if defined(ESP_PLATFORM)
16#include <driver/uart.h>
28class AdapterUART :
public Adapter {
34 inline virtual HardwareSerial* getSerial()
41 virtual void flushRX()
44 virtual void setTimeout(
const uint32_t)
52#if defined(ESP_PLATFORM)
54 virtual uart_port_t uartPort()
const
63 class SerialImpl :
public UARTImpl {
65 explicit SerialImpl(HardwareSerial& serial);
66 inline virtual HardwareSerial* getSerial()
override
70 virtual void flush()
override;
71 virtual void flushRX()
override;
72 virtual void setTimeout(
const uint32_t ms)
override;
73 virtual size_t available()
override;
74 virtual m5::hal::error::error_t readWithTransaction(uint8_t* data,
const size_t len)
override;
75 virtual m5::hal::error::error_t writeWithTransaction(
const uint8_t* data,
const size_t len,
76 const uint32_t stop)
override;
79 HardwareSerial* _serial{};
83#if defined(ESP_PLATFORM)
84 class ESPIDFImpl :
public UARTImpl {
86 explicit ESPIDFImpl(
const uart_port_t uart_num) : AdapterUART::UARTImpl(), _uart_num(uart_num)
89 virtual void flush()
override;
90 virtual void flushRX()
override;
91 virtual void setTimeout(
const uint32_t ms)
override;
92 virtual size_t available()
override;
93 virtual m5::hal::error::error_t readWithTransaction(uint8_t* data,
const size_t len)
override;
94 virtual m5::hal::error::error_t writeWithTransaction(
const uint8_t* data,
const size_t len,
95 const uint32_t stop)
override;
96 inline virtual uart_port_t uartPort()
const override
102 uart_port_t _uart_num{UART_NUM_1};
103 uint32_t _timeout_ms{1000};
108 explicit AdapterUART(HardwareSerial& serial);
111#if defined(ESP_PLATFORM)
112 explicit AdapterUART(
const uart_port_t uart_num);
119 inline void flushRX()
123 inline void setTimeout(
const uint32_t ms)
125 impl()->setTimeout(ms);
137#if defined(ESP_PLATFORM)
144 inline uart_port_t uartPort()
const
146 return impl()->uartPort();
150 inline UARTImpl* impl()
152 return static_cast<UARTImpl*
>(_impl.get());
154 inline const UARTImpl* impl()
const
156 return static_cast<UARTImpl*
>(_impl.get());
Implementation base class (Pimpl pattern)
Definition adapter_base.hpp:37
Adapter()
Default constructor (creates Unknown type adapter)
Definition adapter_base.hpp:137
Type
Adapter type.
Definition adapter_base.hpp:28
Definition adapter_uart.hpp:30
virtual size_t available()
Bytes received and not read yet (0 if unknown)
Definition adapter_uart.hpp:48
size_t available()
Bytes received and not read yet.
Definition adapter_uart.hpp:133
Top level namespace of M5Stack.
Definition test_helper.hpp:20