37 auto transfer(std::uint8_t
byte) -> std::uint8_t {
38 sent_bytes_.push_back(
byte);
39 if (!response_queue_.empty()) {
40 auto response = response_queue_.front();
41 response_queue_.pop_front();
54 auto write(std::span<const std::byte> data) ->
void {
55 for (
auto byte : data) {
56 sent_bytes_.push_back(
static_cast<std::uint8_t
>(
byte));
64 [[nodiscard]]
auto sent_bytes() const -> const std::vector<std::uint8_t> & {
return sent_bytes_; }
70 [[nodiscard]]
auto transfer_count() const -> std::
size_t {
return sent_bytes_.size(); }
76 auto queue_response(std::uint8_t
byte) ->
void { response_queue_.push_back(
byte); }
83 response_queue_.clear();
87 std::vector<std::uint8_t> sent_bytes_;
88 std::deque<std::uint8_t> response_queue_;
91static_assert(SpiBus<MockSpiBus>,
"MockSpiBus must satisfy SpiBus concept");
Definition mock_spi.hpp:27
auto sent_bytes() const -> const std::vector< std::uint8_t > &
Get vector of all bytes sent via transfer() and write().
Definition mock_spi.hpp:64
auto reset() -> void
Reset bus state for new test.
Definition mock_spi.hpp:81
auto transfer(std::uint8_t byte) -> std::uint8_t
Full-duplex byte transfer.
Definition mock_spi.hpp:37
auto transfer_count() const -> std::size_t
Get total number of bytes transferred.
Definition mock_spi.hpp:70
auto queue_response(std::uint8_t byte) -> void
Queue a response byte for next transfer() call.
Definition mock_spi.hpp:76
auto write(std::span< const std::byte > data) -> void
Bulk write operation.
Definition mock_spi.hpp:54
SPI bus concept for hardware abstraction.