HF Interface Wrapper 0.1.0-dev
Embedded C++ hardware abstraction layer
Loading...
Searching...
No Matches
BaseAdc Class Referenceabstract

Base class for ADCs. More...

#include <BaseAdc.h>

Inheritance diagram for BaseAdc:
[legend]
Collaboration diagram for BaseAdc:
[legend]

Public Member Functions

virtual ~BaseAdc () noexcept=default
 Virtual destructor.
 
 BaseAdc (const BaseAdc &)=delete
 
BaseAdcoperator= (const BaseAdc &)=delete
 
 BaseAdc (BaseAdc &&) noexcept=default
 
BaseAdcoperator= (BaseAdc &&) noexcept=default
 
bool EnsureInitialized () noexcept
 Ensures that the ADC is initialized (lazy initialization).
 
bool EnsureDeinitialized () noexcept
 Ensures that the ADC is initialized (lazy initialization).
 
bool IsInitialized () const noexcept
 Checks if the class is initialized.
 
virtual bool Initialize () noexcept=0
 Initializes the ADC peripheral (must be implemented by derived classes).
 
virtual bool Deinitialize () noexcept=0
 Deinitializes the ADC peripheral (must be implemented by derived classes)..
 
virtual hf_u8_t GetMaxChannels () const noexcept=0
 Get the maximum number of channels supported by this ADC.
 
virtual bool IsChannelAvailable (hf_channel_id_t channel_id) const noexcept=0
 Check if a specific channel is available.
 
virtual 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=0
 Read channel voltage.
 
virtual 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=0
 Read channel count (raw ADC value).
 
virtual 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=0
 Read both channel count and voltage.
 
virtual hf_adc_err_t ReadMultipleChannels (const hf_channel_id_t *channel_ids, hf_u8_t num_channels, hf_u32_t *readings, float *voltages) noexcept
 Read multiple channels simultaneously.
 
virtual hf_adc_err_t ResetStatistics () noexcept
 Reset ADC operation statistics.
 
virtual hf_adc_err_t ResetDiagnostics () noexcept
 Reset ADC diagnostic information.
 
virtual hf_adc_err_t GetStatistics (hf_adc_statistics_t &statistics) noexcept
 Get ADC operation statistics.
 
virtual hf_adc_err_t GetDiagnostics (hf_adc_diagnostics_t &diagnostics) noexcept
 Get ADC diagnostic information.
 

Protected Member Functions

 BaseAdc () noexcept
 Protected default constructor.
 

Protected Attributes

bool initialized_
 Initialization status.
 
hf_adc_statistics_t statistics_
 ADC operation statistics.
 
hf_adc_diagnostics_t diagnostics_
 ADC diagnostic information.
 

Detailed Description

Base class for ADCs.

This class provides a common interface for all ADC implementations in the HardFOC system. It supports lazy initialization, robust error handling, and consistent API across different ADC hardware.

Constructor & Destructor Documentation

◆ ~BaseAdc()

virtual BaseAdc::~BaseAdc ( )
virtualdefaultnoexcept

Virtual destructor.

◆ BaseAdc() [1/3]

BaseAdc::BaseAdc ( const BaseAdc & )
delete

◆ BaseAdc() [2/3]

BaseAdc::BaseAdc ( BaseAdc && )
defaultnoexcept

◆ BaseAdc() [3/3]

BaseAdc::BaseAdc ( )
inlineprotectednoexcept

Protected default constructor.

Member Function Documentation

◆ Deinitialize()

virtual bool BaseAdc::Deinitialize ( )
pure virtualnoexcept

Deinitializes the ADC peripheral (must be implemented by derived classes)..

Returns
True if deinitialization is successful, false otherwise.

Implemented in StmAdc.

◆ EnsureDeinitialized()

bool BaseAdc::EnsureDeinitialized ( )
inlinenoexcept

Ensures that the ADC is initialized (lazy initialization).

Returns
true if the ADC is initialized, false otherwise.

◆ EnsureInitialized()

bool BaseAdc::EnsureInitialized ( )
inlinenoexcept

Ensures that the ADC is initialized (lazy initialization).

Returns
true if the ADC is initialized, false otherwise.

◆ GetDiagnostics()

virtual hf_adc_err_t BaseAdc::GetDiagnostics ( hf_adc_diagnostics_t & diagnostics)
inlinevirtualnoexcept

Get ADC diagnostic information.

Parameters
diagnosticsReference to diagnostics structure to fill
Returns
hf_adc_err_t::ADC_SUCCESS if successful, error code otherwise
Note
Override this method to provide platform-specific diagnostics

◆ GetMaxChannels()

virtual hf_u8_t BaseAdc::GetMaxChannels ( ) const
pure virtualnoexcept

Get the maximum number of channels supported by this ADC.

Returns
Maximum channel count

Implemented in StmAdc.

◆ GetStatistics()

virtual hf_adc_err_t BaseAdc::GetStatistics ( hf_adc_statistics_t & statistics)
inlinevirtualnoexcept

Get ADC operation statistics.

Parameters
statisticsReference to statistics structure to fill
Returns
hf_adc_err_t::ADC_SUCCESS if successful, error code otherwise
Note
Override this method to provide platform-specific statistics

◆ Initialize()

virtual bool BaseAdc::Initialize ( )
pure virtualnoexcept

Initializes the ADC peripheral (must be implemented by derived classes).

Returns
True if the initialization is successful, false otherwise.

Implemented in StmAdc.

◆ IsChannelAvailable()

virtual bool BaseAdc::IsChannelAvailable ( hf_channel_id_t channel_id) const
pure virtualnoexcept

Check if a specific channel is available.

Parameters
channel_idChannel ID to check
Returns
true if channel is available, false otherwise

Implemented in StmAdc.

◆ IsInitialized()

bool BaseAdc::IsInitialized ( ) const
inlinenoexcept

Checks if the class is initialized.

Returns
true if initialized, false otherwise

◆ operator=() [1/2]

BaseAdc & BaseAdc::operator= ( BaseAdc && )
defaultnoexcept

◆ operator=() [2/2]

BaseAdc & BaseAdc::operator= ( const BaseAdc & )
delete

◆ ReadChannel()

virtual hf_adc_err_t BaseAdc::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 )
pure virtualnoexcept

Read both channel count and voltage.

Parameters
channel_idChannel ID to read from
channel_reading_countReference to store count reading
channel_reading_vReference to store voltage reading
numOfSamplesToAvgNumber of samples to average (default 1)
timeBetweenSamplesTime between samples in milliseconds (default 0)
Returns
hf_adc_err_t error code

Implemented in StmAdc.

◆ ReadChannelCount()

virtual hf_adc_err_t BaseAdc::ReadChannelCount ( hf_channel_id_t channel_id,
hf_u32_t & channel_reading_count,
hf_u8_t numOfSamplesToAvg = 1,
hf_time_t timeBetweenSamples = 0 )
pure virtualnoexcept

Read channel count (raw ADC value).

Parameters
channel_idChannel ID to read from
channel_reading_countReference to store count reading
numOfSamplesToAvgNumber of samples to average (default 1)
timeBetweenSamplesTime between samples in milliseconds (default 0)
Returns
hf_adc_err_t error code

Implemented in StmAdc.

◆ ReadChannelV()

virtual hf_adc_err_t BaseAdc::ReadChannelV ( hf_channel_id_t channel_id,
float & channel_reading_v,
hf_u8_t numOfSamplesToAvg = 1,
hf_time_t timeBetweenSamples = 0 )
pure virtualnoexcept

Read channel voltage.

Parameters
channel_idChannel ID to read from
channel_reading_vReference to store voltage reading
numOfSamplesToAvgNumber of samples to average (default 1)
timeBetweenSamplesTime between samples in milliseconds (default 0)
Returns
hf_adc_err_t error code

Implemented in StmAdc.

◆ ReadMultipleChannels()

virtual hf_adc_err_t BaseAdc::ReadMultipleChannels ( const hf_channel_id_t * channel_ids,
hf_u8_t num_channels,
hf_u32_t * readings,
float * voltages )
inlinevirtualnoexcept

Read multiple channels simultaneously.

Parameters
channel_idsArray of channel IDs
num_channelsNumber of channels
readingsArray to store raw readings
voltagesArray to store voltage readings
Returns
hf_adc_err_t error code
Note
Default implementation reads channels sequentially

◆ ResetDiagnostics()

virtual hf_adc_err_t BaseAdc::ResetDiagnostics ( )
inlinevirtualnoexcept

Reset ADC diagnostic information.

Returns
hf_adc_err_t::ADC_SUCCESS if successful, error code otherwise
Note
Override this method to provide platform-specific diagnostics reset

◆ ResetStatistics()

virtual hf_adc_err_t BaseAdc::ResetStatistics ( )
inlinevirtualnoexcept

Reset ADC operation statistics.

Returns
hf_adc_err_t::ADC_SUCCESS if successful, error code otherwise
Note
Override this method to provide platform-specific statistics reset

Member Data Documentation

◆ diagnostics_

hf_adc_diagnostics_t BaseAdc::diagnostics_
protected

ADC diagnostic information.

◆ initialized_

bool BaseAdc::initialized_
protected

Initialization status.

◆ statistics_

hf_adc_statistics_t BaseAdc::statistics_
protected

ADC operation statistics.


The documentation for this class was generated from the following file: