18#include "base/BaseAdc.h"
31 explicit MockAdc(hf_u8_t channel_count = 16,
float reference_voltage = 3.3f,
32 uint8_t resolution_bits = 12) noexcept;
42 hf_adc_err_t
ReadChannelV(hf_channel_id_t channel_id,
float& channel_reading_v,
43 hf_u8_t numOfSamplesToAvg = 1,
44 hf_time_t timeBetweenSamples = 0) noexcept override;
45 hf_adc_err_t
ReadChannelCount(hf_channel_id_t channel_id, hf_u32_t& channel_reading_count,
46 hf_u8_t numOfSamplesToAvg = 1,
47 hf_time_t timeBetweenSamples = 0) noexcept override;
48 hf_adc_err_t
ReadChannel(hf_channel_id_t channel_id, hf_u32_t& channel_reading_count,
49 float& channel_reading_v, hf_u8_t numOfSamplesToAvg = 1,
50 hf_time_t timeBetweenSamples = 0) noexcept override;
54 void SetVoltage(hf_channel_id_t channel,
float volts)
noexcept;
55 void SetCount(hf_channel_id_t channel, hf_u32_t count)
noexcept;
56 void QueueVoltages(hf_channel_id_t channel,
const std::vector<float>& volts);
57 void FailChannel(hf_channel_id_t channel, hf_adc_err_t error = hf_adc_err_t::ADC_ERR_CHANNEL_READ_ERR)
noexcept;
61 [[nodiscard]] uint32_t
ReadCount(hf_channel_id_t channel)
const noexcept;
70 hf_adc_err_t
error{hf_adc_err_t::ADC_SUCCESS};
73 hf_adc_err_t
Sample(hf_channel_id_t channel_id,
float& volts, hf_u32_t& count)
noexcept;
bool init_result_
Definition MockAdc.h:75
hf_u8_t GetMaxChannels() const noexcept override
Definition MockAdc.h:38
bool IsChannelAvailable(hf_channel_id_t channel_id) const noexcept override
Definition MockAdc.h:39
hf_u8_t channel_count_
Definition MockAdc.h:76
bool Deinitialize() noexcept override
Definition MockAdc.h:37
uint32_t ReadCount(hf_channel_id_t channel) const noexcept
Definition MockAdc.cpp:57
void SetInitializeResult(bool ok) noexcept
Definition MockAdc.h:53
void FailChannel(hf_channel_id_t channel, hf_adc_err_t error=hf_adc_err_t::ADC_ERR_CHANNEL_READ_ERR) noexcept
Definition MockAdc.cpp:47
hf_adc_err_t ReadChannelCount(hf_channel_id_t channel_id, hf_u32_t &channel_reading_count, hf_u8_t numOfSamplesToAvg=1, hf_time_t timeBetweenSamples=0) noexcept override
Definition MockAdc.cpp:88
hf_adc_err_t ReadChannelV(hf_channel_id_t channel_id, float &channel_reading_v, hf_u8_t numOfSamplesToAvg=1, hf_time_t timeBetweenSamples=0) noexcept override
Definition MockAdc.cpp:82
float reference_voltage_
Definition MockAdc.h:77
void ClearFailure(hf_channel_id_t channel) noexcept
Definition MockAdc.cpp:53
static constexpr hf_u8_t kMaxChannels
Definition MockAdc.h:29
void SetCount(hf_channel_id_t channel, hf_u32_t count) noexcept
Definition MockAdc.cpp:29
hf_adc_err_t Sample(hf_channel_id_t channel_id, float &volts, hf_u32_t &count) noexcept
Definition MockAdc.cpp:61
float ReferenceVoltage() const noexcept
Definition MockAdc.h:62
hf_adc_err_t ReadChannel(hf_channel_id_t channel_id, hf_u32_t &channel_reading_count, float &channel_reading_v, hf_u8_t numOfSamplesToAvg=1, hf_time_t timeBetweenSamples=0) noexcept override
Definition MockAdc.cpp:94
std::array< Channel, kMaxChannels > channels_
Definition MockAdc.h:79
hf_u32_t full_scale_
Definition MockAdc.h:78
bool Initialize() noexcept override
Definition MockAdc.h:36
void SetVoltage(hf_channel_id_t channel, float volts) noexcept
Definition MockAdc.cpp:20
void QueueVoltages(hf_channel_id_t channel, const std::vector< float > &volts)
Definition MockAdc.cpp:38
hf_u32_t FullScaleCount() const noexcept
Definition MockAdc.h:63
Definition FakeClock.cpp:21
hf_adc_err_t error
Definition MockAdc.h:70
uint32_t reads
Definition MockAdc.h:71
std::deque< float > queued
Definition MockAdc.h:69
hf_u32_t count
Definition MockAdc.h:68
float volts
Definition MockAdc.h:67