18#include "base/BaseGpio.h"
27 explicit MockGpio(hf_pin_num_t pin = 0,
28 hf_gpio_direction_t direction = hf_gpio_direction_t::HF_GPIO_DIRECTION_INPUT,
29 hf_gpio_active_state_t active_state = hf_gpio_active_state_t::HF_GPIO_ACTIVE_HIGH)
noexcept;
35 [[nodiscard]] hf_u8_t
GetMaxPins() const noexcept
override {
return 64; }
36 [[nodiscard]]
const char*
GetDescription() const noexcept
override {
return "MockGpio"; }
38 return hf_gpio_err_t::GPIO_SUCCESS;
41 InterruptCallback callback =
nullptr,
42 void* user_data =
nullptr) noexcept override;
64 hf_gpio_err_t
SetDirectionImpl(hf_gpio_direction_t direction)
noexcept override;
65 hf_gpio_err_t
GetDirectionImpl(hf_gpio_direction_t& direction)
const noexcept override;
67 hf_gpio_err_t
GetOutputModeImpl(hf_gpio_output_mode_t& mode)
const noexcept override;
68 hf_gpio_err_t
SetPullModeImpl(hf_gpio_pull_mode_t mode)
noexcept override;
71 hf_gpio_err_t
GetPinLevelImpl(hf_gpio_level_t& level)
noexcept override;
78 hf_gpio_output_mode_t
output_mode_hw_{hf_gpio_output_mode_t::HF_GPIO_OUTPUT_MODE_PUSH_PULL};
79 hf_gpio_pull_mode_t
pull_mode_hw_{hf_gpio_pull_mode_t::HF_GPIO_PULL_MODE_FLOATING};
83 hf_gpio_interrupt_trigger_t
trigger_{hf_gpio_interrupt_trigger_t::HF_GPIO_INTERRUPT_TRIGGER_NONE};
hf_gpio_output_mode_t output_mode_hw_
Definition MockGpio.h:78
hf_gpio_err_t GetDirectionImpl(hf_gpio_direction_t &direction) const noexcept override
Definition MockGpio.cpp:49
~MockGpio() noexcept override=default
InterruptCallback callback_
Definition MockGpio.h:84
hf_gpio_direction_t direction_hw_
Definition MockGpio.h:77
void FailWrites(bool fail=true) noexcept
Definition MockGpio.h:51
bool fail_reads_
Definition MockGpio.h:75
bool IsPinAvailable() const noexcept override
Definition MockGpio.h:34
bool Initialize() noexcept override
Definition MockGpio.cpp:16
hf_gpio_interrupt_trigger_t InterruptTrigger() const noexcept
Definition MockGpio.h:60
hf_gpio_err_t SetPinLevelImpl(hf_gpio_level_t level) noexcept override
Definition MockGpio.cpp:69
void FailReads(bool fail=true) noexcept
Definition MockGpio.h:50
hf_gpio_pull_mode_t PullMode() const noexcept
Definition MockGpio.h:59
bool FireInterrupt() noexcept
Definition MockGpio.cpp:36
hf_gpio_err_t GetOutputModeImpl(hf_gpio_output_mode_t &mode) const noexcept override
Definition MockGpio.cpp:59
hf_gpio_err_t DisableInterrupt() noexcept override
Definition MockGpio.cpp:31
hf_gpio_level_t driven_level_
Definition MockGpio.h:80
std::vector< hf_gpio_level_t > history_
Definition MockGpio.h:82
hf_gpio_interrupt_trigger_t trigger_
Definition MockGpio.h:83
void SetInputLevel(hf_gpio_level_t level) noexcept
Definition MockGpio.h:47
void * callback_user_data_
Definition MockGpio.h:85
hf_gpio_pull_mode_t pull_mode_hw_
Definition MockGpio.h:79
hf_gpio_err_t EnableInterrupt() noexcept override
Definition MockGpio.cpp:26
const std::vector< hf_gpio_level_t > & LevelHistory() const noexcept
Definition MockGpio.h:57
hf_gpio_err_t GetPinLevelImpl(hf_gpio_level_t &level) noexcept override
Definition MockGpio.cpp:78
bool InterruptEnabled() const noexcept
Definition MockGpio.h:61
hf_gpio_err_t SupportsInterrupts() const noexcept override
Definition MockGpio.h:37
bool fail_writes_
Definition MockGpio.h:76
hf_gpio_level_t input_level_
Definition MockGpio.h:81
hf_gpio_pull_mode_t GetPullModeImpl() const noexcept override
Definition MockGpio.h:69
const char * GetDescription() const noexcept override
Definition MockGpio.h:36
hf_gpio_err_t SetOutputModeImpl(hf_gpio_output_mode_t mode) noexcept override
Definition MockGpio.cpp:54
void ClearHistory() noexcept
Definition MockGpio.h:58
hf_gpio_err_t SetDirectionImpl(hf_gpio_direction_t direction) noexcept override
Definition MockGpio.cpp:44
bool irq_enabled_
Definition MockGpio.h:86
hf_u8_t GetMaxPins() const noexcept override
Definition MockGpio.h:35
hf_gpio_err_t SetPullModeImpl(hf_gpio_pull_mode_t mode) noexcept override
Definition MockGpio.cpp:64
hf_gpio_err_t ConfigureInterrupt(hf_gpio_interrupt_trigger_t trigger, InterruptCallback callback=nullptr, void *user_data=nullptr) noexcept override
Definition MockGpio.cpp:18
void SetInitializeResult(bool ok) noexcept
Definition MockGpio.h:48
bool init_result_
Definition MockGpio.h:74
hf_gpio_level_t DrivenLevel() const noexcept
Definition MockGpio.h:56
Definition FakeClock.cpp:21