HF Interface Wrapper 0.1.0-dev
Embedded C++ hardware abstraction layer
Loading...
Searching...
No Matches
EspPeriodicTimer.h
Go to the documentation of this file.
1
17#pragma once
18
19#include "BasePeriodicTimer.h"
20#include "EspTypes.h"
21#include <cstdint>
22
42public:
48 EspPeriodicTimer(hf_timer_callback_t callback = nullptr, void* user_data = nullptr) noexcept;
49
53 ~EspPeriodicTimer() noexcept override;
54
55 // Copy/move constructors and assignment operators
60
61 //==============================================//
62 // OVERRIDDEN PURE VIRTUAL FUNCTIONS //
63 //==============================================//
64
69 hf_timer_err_t Initialize() noexcept override;
70
75 hf_timer_err_t Deinitialize() noexcept override;
76
82 hf_timer_err_t Start(hf_u64_t period_us) noexcept override;
83
88 hf_timer_err_t Stop() noexcept override;
89
95 hf_timer_err_t SetPeriod(hf_u64_t new_period_us) noexcept override;
96
102 hf_timer_err_t GetPeriod(hf_u64_t& period_us) noexcept override;
103
111 hf_timer_err_t GetStats(hf_u64_t& callback_count, hf_u64_t& missed_callbacks,
112 hf_timer_err_t& last_error) noexcept override;
113
118 hf_timer_err_t ResetStats() noexcept override;
119
124 const char* GetDescription() const noexcept override;
125
130 hf_u64_t GetMinPeriod() const noexcept override;
131
136 hf_u64_t GetMaxPeriod() const noexcept override;
137
142 hf_u64_t GetResolution() const noexcept override;
143
149 hf_timer_err_t GetStatistics(hf_timer_statistics_t& statistics) const noexcept override;
150
156 hf_timer_err_t GetDiagnostics(hf_timer_diagnostics_t& diagnostics) const noexcept override;
157
158private:
162
168 hf_timer_err_t ConvertError(int platform_error) const noexcept;
169
175 bool ValidatePeriod(hf_u64_t period_us) const noexcept;
176
181 bool CreateTimerHandle() noexcept;
182
186 void DestroyTimerHandle() noexcept;
187
193 static void InternalTimerCallback(void* arg);
194};
Abstract base class for periodic timer implementations in the HardFOC system.
hf_timer_err_t
Definition BasePeriodicTimer.h:65
void(*)(void *user_data) hf_timer_callback_t
Timer callback function type.
Definition BasePeriodicTimer.h:146
Consolidated MCU-specific type definitions for hardware abstraction (hf_* types).
esp_timer_handle_t hf_timer_handle_t
Definition EspTypes_Timer.h:39
uint64_t hf_u64_t
Platform-agnostic 64-bit unsigned integer type.
Definition HardwareTypes.h:58
Abstract base class for periodic timer operations.
Definition BasePeriodicTimer.h:168
MCU-integrated periodic timer implementation.
Definition EspPeriodicTimer.h:41
bool ValidatePeriod(hf_u64_t period_us) const noexcept
Validate timer period.
Definition EspPeriodicTimer.cpp:248
~EspPeriodicTimer() noexcept override
Destructor - ensures timer is stopped and resources are freed.
Definition EspPeriodicTimer.cpp:45
hf_timer_err_t ResetStats() noexcept override
Reset timer statistics.
Definition EspPeriodicTimer.cpp:202
EspPeriodicTimer(hf_timer_callback_t callback=nullptr, void *user_data=nullptr) noexcept
Constructor with callback specification.
Definition EspPeriodicTimer.cpp:40
const char * GetDescription() const noexcept override
Get description of this timer implementation.
Definition EspPeriodicTimer.cpp:210
hf_u64_t period_us_
Current timer period in microseconds.
Definition EspPeriodicTimer.h:160
hf_u64_t GetMaxPeriod() const noexcept override
Get maximum supported timer period.
Definition EspPeriodicTimer.cpp:219
hf_timer_err_t GetDiagnostics(hf_timer_diagnostics_t &diagnostics) const noexcept override
Get timer diagnostic information.
Definition EspPeriodicTimer.cpp:297
EspPeriodicTimer(EspPeriodicTimer &&)=delete
hf_timer_err_t Initialize() noexcept override
Initialize the timer.
Definition EspPeriodicTimer.cpp:54
bool CreateTimerHandle() noexcept
Create platform-specific timer handle.
Definition EspPeriodicTimer.cpp:252
hf_timer_err_t SetPeriod(hf_u64_t new_period_us) noexcept override
Change timer period (timer can be running or stopped).
Definition EspPeriodicTimer.cpp:151
EspPeriodicTimer(const EspPeriodicTimer &)=delete
hf_timer_err_t GetStatistics(hf_timer_statistics_t &statistics) const noexcept override
Get timer operation statistics.
Definition EspPeriodicTimer.cpp:292
hf_u64_t GetMinPeriod() const noexcept override
Get minimum supported timer period.
Definition EspPeriodicTimer.cpp:214
EspPeriodicTimer & operator=(EspPeriodicTimer &&)=delete
hf_timer_stats_t stats_
Timer statistics.
Definition EspPeriodicTimer.h:161
hf_timer_err_t Deinitialize() noexcept override
Deinitialize the timer and free resources.
Definition EspPeriodicTimer.cpp:77
hf_timer_err_t ConvertError(int platform_error) const noexcept
Convert platform-specific error to hf_timer_err_t.
Definition EspPeriodicTimer.cpp:233
hf_timer_err_t Stop() noexcept override
Stop the timer.
Definition EspPeriodicTimer.cpp:127
hf_timer_err_t Start(hf_u64_t period_us) noexcept override
Start the timer with specified period.
Definition EspPeriodicTimer.cpp:96
hf_timer_err_t GetPeriod(hf_u64_t &period_us) noexcept override
Get current timer period.
Definition EspPeriodicTimer.cpp:183
void DestroyTimerHandle() noexcept
Destroy platform-specific timer handle.
Definition EspPeriodicTimer.cpp:274
EspPeriodicTimer & operator=(const EspPeriodicTimer &)=delete
hf_timer_err_t GetStats(hf_u64_t &callback_count, hf_u64_t &missed_callbacks, hf_timer_err_t &last_error) noexcept override
Get timer statistics and status information.
Definition EspPeriodicTimer.cpp:191
static void InternalTimerCallback(void *arg)
Internal timer callback dispatcher (ISR-safe C bridge).
Definition EspPeriodicTimer.cpp:307
hf_u64_t GetResolution() const noexcept override
Get timer resolution.
Definition EspPeriodicTimer.cpp:225
hf_timer_handle_t timer_handle_
Platform-specific timer handle.
Definition EspPeriodicTimer.h:159
Timer diagnostic information.
Definition BasePeriodicTimer.h:126
Timer operation statistics.
Definition BasePeriodicTimer.h:107
Timer statistics structure.
Definition BasePeriodicTimer.h:91