|
HF-Core Platform 0.1.0-dev
Hardware-Agnostic Handler Layer & RTOS Utilities for HardFOC
|
NTC temperature sensor handler implementing BaseTemperature interface. More...
#include <NtcTemperatureHandler.h>
Public Member Functions | |
| NtcTemperatureHandler (NtcType ntc_type, BaseAdc *adc_interface, const char *sensor_name=nullptr) noexcept | |
| Constructor with NTC type and ADC interface. | |
| NtcTemperatureHandler (BaseAdc *adc_interface, const ntc_temp_handler_config_t &config) noexcept | |
| Constructor with ADC interface and configuration. | |
| NtcTemperatureHandler (const NtcTemperatureHandler &)=delete | |
| Copy constructor is deleted. | |
| NtcTemperatureHandler & | operator= (const NtcTemperatureHandler &)=delete |
| Assignment operator is deleted. | |
| NtcTemperatureHandler (NtcTemperatureHandler &&)=delete | |
| Non-movable (holds mutex, unique_ptrs, raw pointers, and timer resources). | |
| NtcTemperatureHandler & | operator= (NtcTemperatureHandler &&)=delete |
| Non-movable. | |
| virtual | ~NtcTemperatureHandler () noexcept |
| Virtual destructor - cleans up timer and thermistor resources. | |
| bool | Initialize () noexcept override |
| bool | Deinitialize () noexcept override |
| hf_temp_err_t | ReadTemperatureCelsiusImpl (float *temperature_celsius) noexcept override |
| hf_temp_err_t | GetSensorInfo (hf_temp_sensor_info_t *info) const noexcept override |
| hf_u32_t | GetCapabilities () const noexcept override |
| hf_temp_err_t | SetRange (float min_celsius, float max_celsius) noexcept override |
| hf_temp_err_t | GetRange (float *min_celsius, float *max_celsius) const noexcept override |
| hf_temp_err_t | GetResolution (float *resolution_celsius) const noexcept override |
| hf_temp_err_t | SetThresholds (float low_threshold_celsius, float high_threshold_celsius) noexcept override |
| hf_temp_err_t | GetThresholds (float *low_threshold_celsius, float *high_threshold_celsius) const noexcept override |
| hf_temp_err_t | EnableThresholdMonitoring (hf_temp_threshold_callback_t callback, void *user_data) noexcept override |
| hf_temp_err_t | DisableThresholdMonitoring () noexcept override |
| hf_temp_err_t | StartContinuousMonitoring (hf_u32_t sample_rate_hz, hf_temp_reading_callback_t callback, void *user_data) noexcept override |
| hf_temp_err_t | StopContinuousMonitoring () noexcept override |
| bool | IsMonitoringActive () const noexcept override |
| hf_temp_err_t | SetCalibrationOffset (float offset_celsius) noexcept override |
| hf_temp_err_t | GetCalibrationOffset (float *offset_celsius) const noexcept override |
| hf_temp_err_t | ResetCalibration () noexcept override |
| hf_temp_err_t | EnterSleepMode () noexcept override |
| hf_temp_err_t | ExitSleepMode () noexcept override |
| bool | IsSleeping () const noexcept override |
| hf_temp_err_t | SelfTest () noexcept override |
| hf_temp_err_t | CheckHealth () noexcept override |
| hf_temp_err_t | GetStatistics (hf_temp_statistics_t &statistics) noexcept override |
| hf_temp_err_t | GetDiagnostics (hf_temp_diagnostics_t &diagnostics) noexcept override |
| hf_temp_err_t | ResetStatistics () noexcept override |
| hf_temp_err_t | ResetDiagnostics () noexcept override |
| void * | GetNtcThermistor () noexcept |
| Get NTC thermistor instance. | |
| const void * | GetNtcThermistor () const noexcept |
| Get NTC thermistor instance (const) | |
| NtcError | GetNtcReading (ntc_reading_t *reading) noexcept |
| Get NTC reading. | |
| NtcError | GetNtcConfiguration (ntc_config_t *config) const noexcept |
| Get NTC configuration. | |
| NtcError | SetNtcConfiguration (const ntc_config_t &config) noexcept |
| Set NTC configuration. | |
| NtcError | GetResistance (float *resistance_ohms) noexcept |
| Get thermistor resistance. | |
| NtcError | GetVoltage (float *voltage_volts) noexcept |
| Get voltage across thermistor. | |
| NtcError | GetRawAdcValue (uint32_t *adc_value) noexcept |
| Get raw ADC value. | |
| hf_temp_err_t | Calibrate (float reference_temperature_celsius) noexcept |
| Calibrate the thermistor. | |
| NtcError | SetConversionMethod (NtcConversionMethod method) noexcept |
| Set conversion method. | |
| NtcError | SetVoltageDivider (float series_resistance) noexcept |
| Set voltage divider parameters. | |
| NtcError | SetReferenceVoltage (float reference_voltage) noexcept |
| Set reference voltage. | |
| NtcError | SetBetaValue (float beta_value) noexcept |
| Set beta value. | |
| NtcError | SetAdcChannel (uint8_t adc_channel) noexcept |
| Set ADC channel. | |
| NtcError | SetSamplingParameters (uint32_t sample_count, uint32_t sample_delay_ms) noexcept |
| Set sampling parameters. | |
| NtcError | SetFiltering (bool enable, float alpha=0.1f) noexcept |
| Enable/disable filtering. | |
| const char * | GetSensorName () const noexcept |
| Get sensor name. | |
| const char * | GetSensorDescription () const noexcept |
| Get sensor description. | |
| NtcThermistorConcrete * | GetDriver () noexcept |
| Get the underlying NtcThermistor driver for advanced operations. | |
| const NtcThermistorConcrete * | GetDriver () const noexcept |
Private Member Functions | |
| void | SetLastError (hf_temp_err_t error) noexcept |
| Set last error in diagnostics. | |
| void | UpdateStatistics (bool operation_successful, hf_u32_t operation_time_us) noexcept |
| Update operation statistics. | |
| void | UpdateDiagnostics (hf_temp_err_t error) noexcept |
| Update diagnostics with error code. | |
| bool | InitializeNtcThermistor () noexcept |
| Initialize NTC thermistor with current configuration. | |
| hf_temp_err_t | ConvertNtcError (NtcError ntc_error) const noexcept |
| Convert NTC error to BaseTemperature error. | |
| void | CheckThresholds (float temperature_celsius) noexcept |
| Check thresholds and trigger callback if needed. | |
| void | UpdateBaseDiagnostics (hf_temp_err_t error) noexcept |
| Update BaseTemperature diagnostics. | |
| hf_temp_err_t | ValidateConfiguration (const ntc_temp_handler_config_t &config) const noexcept |
| Validate configuration. | |
Static Private Member Functions | |
| static void | ContinuousMonitoringCallback (uint32_t arg) |
| Static callback for continuous monitoring timer. | |
| static hf_u32_t | RegisterMonitoringContext (NtcTemperatureHandler *handler) noexcept |
| Register/unregister callback context IDs for timer callbacks. | |
| static void | UnregisterMonitoringContext (hf_u32_t context_id) noexcept |
| static NtcTemperatureHandler * | ResolveMonitoringContext (hf_u32_t context_id) noexcept |
| static hf_u64_t | GetCurrentTimeUs () noexcept |
| Get current timestamp in microseconds. | |
Private Attributes | |
| RtosMutex | mutex_ |
| Thread safety mutex (hardware-agnostic) | |
| std::unique_ptr< NtcAdcAdapter > | ntc_adc_adapter_ |
| ADC adapter (BaseAdc→ntc::AdcInterface) | |
| std::unique_ptr< NtcThermistorConcrete > | ntc_thermistor_ |
| NTC thermistor driver instance. | |
| BaseAdc * | adc_interface_ |
| ADC interface pointer. | |
| ntc_temp_handler_config_t | config_ |
| Handler configuration. | |
| hf_temp_state_t | current_state_ |
| Current state. | |
| hf_temp_config_t | base_config_ |
| Base configuration. | |
| float | low_threshold_celsius_ |
| Low temperature threshold. | |
| float | high_threshold_celsius_ |
| High temperature threshold. | |
| hf_temp_threshold_callback_t | threshold_callback_ |
| Threshold callback. | |
| void * | threshold_user_data_ |
| Threshold callback user data. | |
| hf_u32_t | sample_rate_hz_ |
| Sample rate for continuous monitoring. | |
| hf_temp_reading_callback_t | continuous_callback_ |
| Continuous monitoring callback. | |
| void * | continuous_user_data_ |
| Continuous monitoring callback user data. | |
| PeriodicTimer | monitoring_timer_ |
| Hardware-agnostic periodic timer. | |
| hf_u32_t | monitoring_context_id_ |
| Timer callback context ID (0 = unassigned) | |
| float | calibration_offset_ |
| Current calibration offset. | |
| hf_temp_statistics_t | statistics_ |
| BaseTemperature statistics. | |
| hf_temp_diagnostics_t | diagnostics_ |
| BaseTemperature diagnostics. | |
| bool | initialized_ |
| Initialization status. | |
| bool | threshold_monitoring_enabled_ |
| Threshold monitoring status. | |
| bool | monitoring_active_ |
| Continuous monitoring status. | |
Static Private Attributes | |
| static constexpr hf_u32_t | kMonitoringContextSlots = 8 |
| static RtosMutex | callback_registry_mutex_ {} |
| static std::array< NtcTemperatureHandler *, kMonitoringContextSlots > | callback_registry_ = {} |
NTC temperature sensor handler implementing BaseTemperature interface.
This class provides a complete implementation of the BaseTemperature interface for NTC thermistor temperature sensors. It uses a BaseAdc pointer for voltage measurements and wraps the NtcThermistor library to provide comprehensive temperature sensing capabilities.
Key features:
|
noexcept |
Constructor with NTC type and ADC interface.
| ntc_type | NTC thermistor type |
| adc_interface | Pointer to BaseAdc interface |
| sensor_name | Optional sensor name |
|
noexcept |
Constructor with ADC interface and configuration.
| adc_interface | Pointer to BaseAdc interface |
| config | NTC temperature handler configuration |
|
delete |
Copy constructor is deleted.
|
delete |
Non-movable (holds mutex, unique_ptrs, raw pointers, and timer resources).
|
virtualnoexcept |
Virtual destructor - cleans up timer and thermistor resources.
|
noexcept |
Calibrate the thermistor.
| reference_temperature_celsius | Known reference temperature |
|
overridenoexcept |
|
privatenoexcept |
Check thresholds and trigger callback if needed.
| temperature_celsius | Current temperature reading |
|
staticprivate |
Static callback for continuous monitoring timer.
| arg | Timer callback argument (registered context ID) |
|
privatenoexcept |
Convert NTC error to BaseTemperature error.
| ntc_error | NTC error code |
|
overridenoexcept |
|
overridenoexcept |
|
overridenoexcept |
|
overridenoexcept |
|
overridenoexcept |
|
overridenoexcept |
|
overridenoexcept |
|
staticprivatenoexcept |
Get current timestamp in microseconds.
|
overridenoexcept |
|
noexcept |
|
noexcept |
Get the underlying NtcThermistor driver for advanced operations.
|
noexcept |
Get NTC configuration.
| config | Pointer to store configuration |
|
noexcept |
Get NTC reading.
| reading | Pointer to store NTC reading |
|
noexcept |
Get NTC thermistor instance (const)
|
noexcept |
Get NTC thermistor instance.
|
overridenoexcept |
|
noexcept |
Get raw ADC value.
| adc_value | Pointer to store ADC value |
|
noexcept |
Get thermistor resistance.
| resistance_ohms | Pointer to store resistance |
|
overridenoexcept |
|
noexcept |
Get sensor description.
|
overridenoexcept |
|
noexcept |
Get sensor name.
|
overridenoexcept |
|
overridenoexcept |
|
noexcept |
Get voltage across thermistor.
| voltage_volts | Pointer to store voltage |
|
overridenoexcept |
|
privatenoexcept |
Initialize NTC thermistor with current configuration.
|
overridenoexcept |
|
overridenoexcept |
|
delete |
Assignment operator is deleted.
|
delete |
Non-movable.
|
overridenoexcept |
|
staticprivatenoexcept |
Register/unregister callback context IDs for timer callbacks.
|
overridenoexcept |
|
overridenoexcept |
|
overridenoexcept |
|
staticprivatenoexcept |
|
overridenoexcept |
|
noexcept |
Set ADC channel.
| adc_channel | ADC channel number |
|
noexcept |
Set beta value.
| beta_value | Beta value (K) |
|
overridenoexcept |
|
noexcept |
Set conversion method.
| method | Conversion method |
|
noexcept |
Enable/disable filtering.
| enable | Enable filtering |
| alpha | Filter alpha value (0.0-1.0) |
|
privatenoexcept |
Set last error in diagnostics.
| error | Error code to record |
|
noexcept |
Set NTC configuration.
| config | New configuration |
|
overridenoexcept |
|
noexcept |
Set reference voltage.
| reference_voltage | Reference voltage (V) |
|
noexcept |
Set sampling parameters.
| sample_count | Number of samples |
| sample_delay_ms | Delay between samples (ms) |
|
overridenoexcept |
|
noexcept |
Set voltage divider parameters.
| series_resistance | Series resistance (ohms) |
|
overridenoexcept |
|
overridenoexcept |
|
staticprivatenoexcept |
|
privatenoexcept |
Update BaseTemperature diagnostics.
| error | Error code |
|
privatenoexcept |
Update diagnostics with error code.
| error | Error code |
|
privatenoexcept |
Update operation statistics.
| operation_successful | Whether operation was successful |
| operation_time_us | Operation time in microseconds |
|
privatenoexcept |
Validate configuration.
| config | Configuration to validate |
|
private |
ADC interface pointer.
|
private |
Base configuration.
|
private |
Current calibration offset.
|
staticprivate |
|
staticprivate |
|
private |
Handler configuration.
|
private |
Continuous monitoring callback.
|
private |
Continuous monitoring callback user data.
|
private |
Current state.
|
private |
BaseTemperature diagnostics.
|
private |
High temperature threshold.
|
private |
Initialization status.
|
staticconstexprprivate |
|
private |
Low temperature threshold.
|
private |
Continuous monitoring status.
|
private |
Timer callback context ID (0 = unassigned)
|
private |
Hardware-agnostic periodic timer.
|
mutableprivate |
Thread safety mutex (hardware-agnostic)
|
private |
ADC adapter (BaseAdc→ntc::AdcInterface)
|
private |
NTC thermistor driver instance.
|
private |
Sample rate for continuous monitoring.
|
private |
BaseTemperature statistics.
|
private |
Threshold callback.
|
private |
Threshold monitoring status.
|
private |
Threshold callback user data.