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

Abstract base class for periodic timer operations. More...

#include <BasePeriodicTimer.h>

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

Public Member Functions

virtual ~BasePeriodicTimer () noexcept=default
 Virtual destructor to ensure proper cleanup.
 
 BasePeriodicTimer (const BasePeriodicTimer &)=delete
 
BasePeriodicTimeroperator= (const BasePeriodicTimer &)=delete
 
virtual hf_timer_err_t Initialize () noexcept=0
 Initialize the timer hardware/resources.
 
virtual hf_timer_err_t Deinitialize () noexcept=0
 Deinitialize the timer and free resources.
 
virtual hf_timer_err_t Start (hf_u64_t period_us) noexcept=0
 Start the periodic timer with specified period.
 
virtual hf_timer_err_t Stop () noexcept=0
 Stop the periodic timer.
 
virtual hf_timer_err_t SetPeriod (hf_u64_t period_us) noexcept=0
 Change the timer period while running.
 
virtual hf_timer_err_t GetPeriod (hf_u64_t &period_us) noexcept=0
 Get the current timer period.
 
virtual hf_timer_err_t GetStats (hf_u64_t &callback_count, hf_u64_t &missed_callbacks, hf_timer_err_t &last_error) noexcept=0
 Get timer statistics and status information.
 
virtual hf_timer_err_t ResetStats () noexcept=0
 Reset timer statistics.
 
bool IsInitialized () const noexcept
 Check if timer is initialized.
 
bool IsRunning () const noexcept
 Check if timer is currently running.
 
virtual const char * GetDescription () const noexcept=0
 Get description of this timer implementation.
 
virtual hf_u64_t GetMaxPeriod () const noexcept=0
 Get minimum supported timer period.
 
virtual hf_u64_t GetMinPeriod () const noexcept=0
 Get maximum supported timer period.
 
virtual hf_u64_t GetResolution () const noexcept=0
 Get timer resolution.
 
hf_timer_err_t SetCallback (hf_timer_callback_t callback, void *user_data=nullptr) noexcept
 Set new callback function.
 
void * GetUserData () const noexcept
 Get current user data pointer.
 
virtual hf_timer_err_t ResetStatistics () noexcept
 Reset timer operation statistics.
 
virtual hf_timer_err_t ResetDiagnostics () noexcept
 Reset timer diagnostic information.
 
virtual hf_timer_err_t GetStatistics (hf_timer_statistics_t &statistics) const noexcept
 Get timer operation statistics.
 
virtual hf_timer_err_t GetDiagnostics (hf_timer_diagnostics_t &diagnostics) const noexcept
 Get timer diagnostic information.
 

Protected Member Functions

 BasePeriodicTimer (hf_timer_callback_t callback, void *user_data=nullptr) noexcept
 Protected constructor with callback specification.
 
void SetInitialized (bool initialized) noexcept
 Set the initialized state.
 
void SetRunning (bool running) noexcept
 Set the running state.
 
void ExecuteCallback () noexcept
 Execute the timer callback (called by implementations).
 
bool HasValidCallback () const noexcept
 Check if callback is valid.
 

Protected Attributes

hf_timer_callback_t callback_
 Timer callback function.
 
void * user_data_
 User data passed to callback.
 
bool initialized_
 Initialization state flag.
 
bool running_
 Running state flag.
 
hf_timer_statistics_t statistics_
 Timer operation statistics.
 
hf_timer_diagnostics_t diagnostics_
 Timer diagnostic information.
 

Detailed Description

Abstract base class for periodic timer operations.

This class provides a consistent interface for periodic timer functionality across different hardware platforms and timer implementations. It supports high-resolution timing, callback-based notifications, and precise period control.

Key Features:

  • Microsecond resolution timing
  • Callback-based event notification
  • Start/stop control
  • Period adjustment during operation
  • Error handling and status reporting
  • Platform-agnostic interface
Note
Implementations should handle platform-specific details internally
This class is designed to be thread-safe when properly implemented

Constructor & Destructor Documentation

◆ ~BasePeriodicTimer()

virtual BasePeriodicTimer::~BasePeriodicTimer ( )
virtualdefaultnoexcept

Virtual destructor to ensure proper cleanup.

◆ BasePeriodicTimer() [1/2]

BasePeriodicTimer::BasePeriodicTimer ( const BasePeriodicTimer & )
delete

◆ BasePeriodicTimer() [2/2]

BasePeriodicTimer::BasePeriodicTimer ( hf_timer_callback_t callback,
void * user_data = nullptr )
inlineexplicitprotectednoexcept

Protected constructor with callback specification.

Parameters
callbackTimer callback function
user_dataUser data passed to callback

Member Function Documentation

◆ Deinitialize()

virtual hf_timer_err_t BasePeriodicTimer::Deinitialize ( )
pure virtualnoexcept

Deinitialize the timer and free resources.

Returns
hf_timer_err_t::TIMER_SUCCESS if successful, error code otherwise

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ ExecuteCallback()

void BasePeriodicTimer::ExecuteCallback ( )
inlineprotectednoexcept

Execute the timer callback (called by implementations).

◆ GetDescription()

virtual const char * BasePeriodicTimer::GetDescription ( ) const
pure virtualnoexcept

Get description of this timer implementation.

Returns
Description string

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ GetDiagnostics()

virtual hf_timer_err_t BasePeriodicTimer::GetDiagnostics ( hf_timer_diagnostics_t & diagnostics) const
inlinevirtualnoexcept

Get timer diagnostic information.

Parameters
diagnosticsReference to store diagnostics data
Returns
hf_timer_err_t::TIMER_SUCCESS if successful, TIMER_ERR_NOT_SUPPORTED if not implemented

Reimplemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ GetMaxPeriod()

virtual hf_u64_t BasePeriodicTimer::GetMaxPeriod ( ) const
pure virtualnoexcept

Get minimum supported timer period.

Returns
Minimum period in microseconds

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ GetMinPeriod()

virtual hf_u64_t BasePeriodicTimer::GetMinPeriod ( ) const
pure virtualnoexcept

Get maximum supported timer period.

Returns
Maximum period in microseconds

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ GetPeriod()

virtual hf_timer_err_t BasePeriodicTimer::GetPeriod ( hf_u64_t & period_us)
pure virtualnoexcept

Get the current timer period.

Parameters
period_usReference to store the current period
Returns
hf_timer_err_t::TIMER_SUCCESS if successful, error code otherwise

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ GetResolution()

virtual hf_u64_t BasePeriodicTimer::GetResolution ( ) const
pure virtualnoexcept

Get timer resolution.

Returns
Timer resolution in microseconds

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ GetStatistics()

virtual hf_timer_err_t BasePeriodicTimer::GetStatistics ( hf_timer_statistics_t & statistics) const
inlinevirtualnoexcept

Get timer operation statistics.

Parameters
statisticsReference to store statistics data
Returns
hf_timer_err_t::TIMER_SUCCESS if successful, TIMER_ERR_NOT_SUPPORTED if not implemented

Reimplemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ GetStats()

virtual hf_timer_err_t BasePeriodicTimer::GetStats ( hf_u64_t & callback_count,
hf_u64_t & missed_callbacks,
hf_timer_err_t & last_error )
pure virtualnoexcept

Get timer statistics and status information.

Parameters
callback_countNumber of callbacks executed
missed_callbacksNumber of missed callbacks (if supported)
last_errorLast error that occurred
Returns
hf_timer_err_t::TIMER_SUCCESS if successful, error code otherwise

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ GetUserData()

void * BasePeriodicTimer::GetUserData ( ) const
inlinenoexcept

Get current user data pointer.

Returns
User data pointer

◆ HasValidCallback()

bool BasePeriodicTimer::HasValidCallback ( ) const
inlineprotectednoexcept

Check if callback is valid.

Returns
true if callback is set, false otherwise

◆ Initialize()

virtual hf_timer_err_t BasePeriodicTimer::Initialize ( )
pure virtualnoexcept

Initialize the timer hardware/resources.

Returns
hf_timer_err_t::TIMER_SUCCESS if successful, error code otherwise

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ IsInitialized()

bool BasePeriodicTimer::IsInitialized ( ) const
inlinenoexcept

Check if timer is initialized.

Returns
true if initialized, false otherwise

◆ IsRunning()

bool BasePeriodicTimer::IsRunning ( ) const
inlinenoexcept

Check if timer is currently running.

Returns
true if running, false otherwise

◆ operator=()

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

◆ ResetDiagnostics()

virtual hf_timer_err_t BasePeriodicTimer::ResetDiagnostics ( )
inlinevirtualnoexcept

Reset timer diagnostic information.

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

◆ ResetStatistics()

virtual hf_timer_err_t BasePeriodicTimer::ResetStatistics ( )
inlinevirtualnoexcept

Reset timer operation statistics.

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

◆ ResetStats()

virtual hf_timer_err_t BasePeriodicTimer::ResetStats ( )
pure virtualnoexcept

Reset timer statistics.

Returns
hf_timer_err_t::TIMER_SUCCESS if successful, error code otherwise

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ SetCallback()

hf_timer_err_t BasePeriodicTimer::SetCallback ( hf_timer_callback_t callback,
void * user_data = nullptr )
inlinenoexcept

Set new callback function.

Parameters
callbackNew callback function
user_dataNew user data
Returns
hf_timer_err_t::TIMER_SUCCESS if successful, error code otherwise

◆ SetInitialized()

void BasePeriodicTimer::SetInitialized ( bool initialized)
inlineprotectednoexcept

Set the initialized state.

Parameters
initializedNew initialization state

◆ SetPeriod()

virtual hf_timer_err_t BasePeriodicTimer::SetPeriod ( hf_u64_t period_us)
pure virtualnoexcept

Change the timer period while running.

Parameters
period_usNew timer period in microseconds
Returns
hf_timer_err_t::TIMER_SUCCESS if successful, error code otherwise

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ SetRunning()

void BasePeriodicTimer::SetRunning ( bool running)
inlineprotectednoexcept

Set the running state.

Parameters
runningNew running state

◆ Start()

virtual hf_timer_err_t BasePeriodicTimer::Start ( hf_u64_t period_us)
pure virtualnoexcept

Start the periodic timer with specified period.

Parameters
period_usTimer period in microseconds
Returns
hf_timer_err_t::TIMER_SUCCESS if successful, error code otherwise

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

◆ Stop()

virtual hf_timer_err_t BasePeriodicTimer::Stop ( )
pure virtualnoexcept

Stop the periodic timer.

Returns
hf_timer_err_t::TIMER_SUCCESS if successful, error code otherwise

Implemented in EspPeriodicTimer, and StmPeriodicTimer.

Member Data Documentation

◆ callback_

hf_timer_callback_t BasePeriodicTimer::callback_
protected

Timer callback function.

◆ diagnostics_

hf_timer_diagnostics_t BasePeriodicTimer::diagnostics_
protected

Timer diagnostic information.

◆ initialized_

bool BasePeriodicTimer::initialized_
protected

Initialization state flag.

◆ running_

bool BasePeriodicTimer::running_
protected

Running state flag.

◆ statistics_

hf_timer_statistics_t BasePeriodicTimer::statistics_
protected

Timer operation statistics.

◆ user_data_

void* BasePeriodicTimer::user_data_
protected

User data passed to callback.


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