HardFOC Core
API reference
Loading...
Searching...
No Matches
Tmc9660AdcWrapper.h
Go to the documentation of this file.
1
39#ifndef COMPONENT_HANDLER_TMC9660_ADC_WRAPPER_H_
40#define COMPONENT_HANDLER_TMC9660_ADC_WRAPPER_H_
41
42#include "base/BaseAdc.h"
43
44// Forward declaration to avoid including the full handler header.
45class Tmc9660Handler;
46
63class Tmc9660AdcWrapper : public BaseAdc {
64public:
70 explicit Tmc9660AdcWrapper(Tmc9660Handler& handler) noexcept;
71
73 ~Tmc9660AdcWrapper() noexcept override = default;
74
77 Tmc9660AdcWrapper& operator=(const Tmc9660AdcWrapper&) = delete;
79 Tmc9660AdcWrapper& operator=(Tmc9660AdcWrapper&&) = delete;
80
84
86 bool Initialize() noexcept override;
87
89 bool Deinitialize() noexcept override;
90
92 hf_u8_t GetMaxChannels() const noexcept override;
93
95 bool IsChannelAvailable(hf_channel_id_t channel_id) const noexcept override;
96
98 hf_adc_err_t ReadChannelV(hf_channel_id_t channel_id, float& channel_reading_v,
99 hf_u8_t numOfSamplesToAvg = 1,
100 hf_time_t timeBetweenSamples = 0) noexcept override;
101
103 hf_adc_err_t ReadChannelCount(hf_channel_id_t channel_id, hf_u32_t& channel_reading_count,
104 hf_u8_t numOfSamplesToAvg = 1,
105 hf_time_t timeBetweenSamples = 0) noexcept override;
106
108 hf_adc_err_t ReadChannel(hf_channel_id_t channel_id, hf_u32_t& channel_reading_count,
109 float& channel_reading_v, hf_u8_t numOfSamplesToAvg = 1,
110 hf_time_t timeBetweenSamples = 0) noexcept override;
111
113 hf_adc_err_t ReadMultipleChannels(const hf_channel_id_t* channel_ids, hf_u8_t num_channels,
114 hf_u32_t* readings, float* voltages) noexcept override;
115
117 hf_adc_err_t GetStatistics(hf_adc_statistics_t& statistics) noexcept override;
118
120 hf_adc_err_t GetDiagnostics(hf_adc_diagnostics_t& diagnostics) noexcept override;
121
123 hf_adc_err_t ResetStatistics() noexcept override;
124
126 hf_adc_err_t ResetDiagnostics() noexcept override;
127
129
130private:
132};
133
134#endif // COMPONENT_HANDLER_TMC9660_ADC_WRAPPER_H_
Delegation wrapper that adapts Tmc9660Handler::Adc for external ownership.
Definition Tmc9660AdcWrapper.h:63
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 Tmc9660AdcWrapper.cpp:47
Tmc9660Handler & handler_
Reference to the TMC9660 handler (not owned).
Definition Tmc9660AdcWrapper.h:131
hf_adc_err_t ReadMultipleChannels(const hf_channel_id_t *channel_ids, hf_u8_t num_channels, hf_u32_t *readings, float *voltages) noexcept override
Definition Tmc9660AdcWrapper.cpp:71
hf_adc_err_t ResetDiagnostics() noexcept override
Definition Tmc9660AdcWrapper.cpp:90
hf_adc_err_t GetDiagnostics(hf_adc_diagnostics_t &diagnostics) noexcept override
Definition Tmc9660AdcWrapper.cpp:82
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 Tmc9660AdcWrapper.cpp:62
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 Tmc9660AdcWrapper.cpp:54
~Tmc9660AdcWrapper() noexcept override=default
Default destructor. Does not affect the handler or its ADC.
hf_u8_t GetMaxChannels() const noexcept override
Definition Tmc9660AdcWrapper.cpp:39
hf_adc_err_t GetStatistics(hf_adc_statistics_t &statistics) noexcept override
Definition Tmc9660AdcWrapper.cpp:78
bool Deinitialize() noexcept override
Definition Tmc9660AdcWrapper.cpp:35
hf_adc_err_t ResetStatistics() noexcept override
Definition Tmc9660AdcWrapper.cpp:86
bool Initialize() noexcept override
Definition Tmc9660AdcWrapper.cpp:31
bool IsChannelAvailable(hf_channel_id_t channel_id) const noexcept override
Definition Tmc9660AdcWrapper.cpp:43
Unified, non-templated handler for a single TMC9660 motor controller device.
Definition Tmc9660Handler.h:491