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)
56 class SerialImpl :
public UARTImpl {
58 explicit SerialImpl(HardwareSerial& serial);
59 inline virtual HardwareSerial* getSerial()
override
63 virtual void flush()
override;
64 virtual void flushRX()
override;
65 virtual void setTimeout(
const uint32_t ms)
override;
66 virtual size_t available()
override;
67 virtual m5::hal::error::error_t readWithTransaction(uint8_t* data,
const size_t len)
override;
68 virtual m5::hal::error::error_t writeWithTransaction(
const uint8_t* data,
const size_t len,
69 const uint32_t stop)
override;
72 HardwareSerial* _serial{};
76#if defined(ESP_PLATFORM)
77 class ESPIDFImpl :
public UARTImpl {
79 explicit ESPIDFImpl(
const uart_port_t uart_num) : AdapterUART::UARTImpl(), _uart_num(uart_num)
82 virtual void flush()
override;
83 virtual void flushRX()
override;
84 virtual void setTimeout(
const uint32_t ms)
override;
85 virtual size_t available()
override;
86 virtual m5::hal::error::error_t readWithTransaction(uint8_t* data,
const size_t len)
override;
87 virtual m5::hal::error::error_t writeWithTransaction(
const uint8_t* data,
const size_t len,
88 const uint32_t stop)
override;
89 inline uart_port_t uartPort()
const
95 uart_port_t _uart_num{UART_NUM_1};
96 uint32_t _timeout_ms{1000};
101 explicit AdapterUART(HardwareSerial& serial);
104#if defined(ESP_PLATFORM)
105 explicit AdapterUART(
const uart_port_t uart_num);
112 inline void flushRX()
116 inline void setTimeout(
const uint32_t ms)
118 impl()->setTimeout(ms);
131 inline UARTImpl* impl()
133 return static_cast<UARTImpl*
>(_impl.get());
135 inline const UARTImpl* impl()
const
137 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:126
Top level namespace of M5Stack.
Definition test_helper.hpp:20