libepaper 2.0.0
A C++23 library for controlling Waveshare e-paper displays on Raspberry Pi, featuring transparent sleep/wake management and a fluent builder API.
Loading...
Searching...
No Matches
/mnt/nas/libepaper/include/epaper/hal/mock_pin.hpp

Mock digital output pin for testing.

Mock digital output pin for testing.Records all write operations for verification in tests. Satisfies hal::DigitalOutput concept without requiring hardware.

MockOutputPin pin;
pin.write(true);
assert(pin.last_level() == true);
assert(pin.write_count() == 1);
#pragma once
#include <cstddef>
namespace epaper::hal {
class MockOutputPin {
public:
auto write(bool level) -> void {
last_level_ = level;
write_count_++;
}
[[nodiscard]] auto last_level() const -> bool { return last_level_; }
[[nodiscard]] auto write_count() const -> std::size_t { return write_count_; }
auto reset() -> void {
write_count_ = 0;
last_level_ = false;
}
private:
bool last_level_ = false;
std::size_t write_count_ = 0;
};
static_assert(DigitalOutput<MockOutputPin>, "MockOutputPin must satisfy DigitalOutput concept");
class MockInputPin {
public:
auto read() -> bool {
read_count_++;
return level_;
}
auto set_level(bool level) -> void { level_ = level; }
[[nodiscard]] auto read_count() const -> std::size_t { return read_count_; }
auto reset() -> void {
read_count_ = 0;
level_ = false;
}
private:
bool level_ = false;
std::size_t read_count_ = 0;
};
static_assert(DigitalInput<MockInputPin>, "MockInputPin must satisfy DigitalInput concept");
} // namespace epaper::hal
auto reset() -> void
Reset pin state for new test.
Definition mock_pin.hpp:101
auto read_count() const -> std::size_t
Get total number of read operations.
Definition mock_pin.hpp:96
auto read() -> bool
Read logic level from pin (returns configured level).
Definition mock_pin.hpp:81
auto set_level(bool level) -> void
Set the level that read() will return.
Definition mock_pin.hpp:90
auto write_count() const -> std::size_t
Get total number of write operations.
Definition mock_pin.hpp:44
auto last_level() const -> bool
Get the last written logic level.
Definition mock_pin.hpp:38
auto reset() -> void
Reset pin state for new test.
Definition mock_pin.hpp:49
auto write(bool level) -> void
Write logic level to pin (records operation).
Definition mock_pin.hpp:29
GPIO pin concepts for hardware abstraction.
Definition gpio.hpp:62