19#include "base/BaseUart.h"
30 using OnWrite = std::function<void(
MockUart& uart,
const std::vector<uint8_t>& written)>;
32 explicit MockUart(hf_port_num_t port = 0) noexcept;
38 hf_uart_err_t
Write(
const hf_u8_t* data, hf_u16_t length, hf_u32_t timeout_ms = 0) noexcept override;
39 hf_uart_err_t
Read(hf_u8_t* data, hf_u16_t length, hf_u32_t timeout_ms = 0) noexcept override;
41 hf_uart_err_t
FlushTx() noexcept override;
42 hf_uart_err_t
FlushRx() noexcept override;
43 int Printf(const
char* format, ...) noexcept override;
47 void InjectRx(
const std::vector<uint8_t>& bytes);
50 void FailNextWrite(hf_uart_err_t error,
size_t count = 1) noexcept;
53 [[nodiscard]] const std::vector<uint8_t>&
TxBytes() const noexcept {
return tx_; }
54 [[nodiscard]]
const std::vector<std::vector<uint8_t>>&
TxWrites() const noexcept {
return writes_; }
60 std::vector<uint8_t>
tx_;
61 std::vector<std::vector<uint8_t>>
writes_;
62 std::deque<uint8_t>
rx_;
64 hf_uart_err_t
fail_error_{hf_uart_err_t::UART_ERR_TRANSMISSION_FAILED};
bool Deinitialize() noexcept override
Definition MockUart.h:37
bool Initialize() noexcept override
Definition MockUart.h:36
hf_u16_t BytesAvailable() noexcept override
Definition MockUart.cpp:49
std::vector< std::vector< uint8_t > > writes_
Definition MockUart.h:61
void SetOnWrite(OnWrite on_write)
Definition MockUart.h:49
size_t fail_count_
Definition MockUart.h:65
int Printf(const char *format,...) noexcept override
Definition MockUart.cpp:61
std::deque< uint8_t > rx_
Definition MockUart.h:62
int FlushRxCalls() const noexcept
Definition MockUart.h:56
hf_uart_err_t Read(hf_u8_t *data, hf_u16_t length, hf_u32_t timeout_ms=0) noexcept override
Definition MockUart.cpp:35
void InjectRx(const std::vector< uint8_t > &bytes)
Definition MockUart.cpp:74
const std::vector< std::vector< uint8_t > > & TxWrites() const noexcept
Definition MockUart.h:54
void ClearTx() noexcept
Definition MockUart.cpp:87
hf_uart_err_t Write(const hf_u8_t *data, hf_u16_t length, hf_u32_t timeout_ms=0) noexcept override
Definition MockUart.cpp:18
const std::vector< uint8_t > & TxBytes() const noexcept
Definition MockUart.h:53
void SetInitializeResult(bool ok) noexcept
Definition MockUart.h:46
bool init_result_
Definition MockUart.h:59
std::function< void(MockUart &uart, const std::vector< uint8_t > &written)> OnWrite
Definition MockUart.h:30
std::vector< uint8_t > tx_
Definition MockUart.h:60
hf_uart_err_t FlushRx() noexcept override
Definition MockUart.cpp:55
int flush_rx_calls_
Definition MockUart.h:66
hf_uart_err_t fail_error_
Definition MockUart.h:64
void FailNextWrite(hf_uart_err_t error, size_t count=1) noexcept
Definition MockUart.cpp:82
hf_uart_err_t FlushTx() noexcept override
Definition MockUart.cpp:53
OnWrite on_write_
Definition MockUart.h:63
Definition FakeClock.cpp:21