HF-Core Platform 0.1.0-dev
Hardware-Agnostic Handler Layer & RTOS Utilities for HardFOC
Loading...
Searching...
No Matches
NtcTemperatureHandler.h
Go to the documentation of this file.
1
14#pragma once
15
16#include "core/hf-core-drivers/internal/hf-internal-interface-wrap/inc/base/BaseTemperature.h"
17#include "core/hf-core-drivers/internal/hf-internal-interface-wrap/inc/base/BaseAdc.h"
18#include "core/hf-core-drivers/external/hf-ntc-thermistor-driver/inc/ntc_thermistor.hpp"
19#include "RtosMutex.h"
20#include "core/hf-core-utils/hf-utils-rtos-wrap/include/PeriodicTimer.h"
21
22#include <memory>
23#include <cfloat>
24#include <array>
25
26//--------------------------------------
27// NTC ADC Adapter (BaseAdc → ntc::AdcInterface bridge)
28//--------------------------------------
29
37class NtcAdcAdapter : public ntc::AdcInterface<NtcAdcAdapter> {
38public:
45 explicit NtcAdcAdapter(BaseAdc* adc, float ref_voltage = 3.3f, uint8_t res_bits = 12) noexcept
46 : adc_(adc), reference_voltage_(ref_voltage), resolution_bits_(res_bits) {}
47
48 [[nodiscard]] bool IsInitialized() const { return adc_ != nullptr && adc_->IsInitialized(); }
49 bool EnsureInitialized() { return adc_ != nullptr && adc_->EnsureInitialized(); }
50 [[nodiscard]] bool IsChannelAvailable(uint8_t channel) const {
51 return adc_ != nullptr && adc_->IsChannelAvailable(static_cast<hf_channel_id_t>(channel));
52 }
53 ntc::AdcError ReadChannelCount(uint8_t channel, uint32_t* count) {
54 if (adc_ == nullptr || count == nullptr) return ntc::AdcError::ReadFailed;
55 hf_u32_t raw = 0;
56 auto err = adc_->ReadChannelCount(static_cast<hf_channel_id_t>(channel), raw);
57 if (err != hf_adc_err_t::ADC_SUCCESS) return ntc::AdcError::ReadFailed;
58 *count = raw;
59 return ntc::AdcError::Success;
60 }
61 ntc::AdcError ReadChannelV(uint8_t channel, float* voltage_v) {
62 if (adc_ == nullptr || voltage_v == nullptr) return ntc::AdcError::ReadFailed;
63 float v = 0.0f;
64 auto err = adc_->ReadChannelV(static_cast<hf_channel_id_t>(channel), v);
65 if (err != hf_adc_err_t::ADC_SUCCESS) return ntc::AdcError::ReadFailed;
66 *voltage_v = v;
67 return ntc::AdcError::Success;
68 }
69 [[nodiscard]] float GetReferenceVoltage() const { return reference_voltage_; }
70 [[nodiscard]] uint8_t GetResolutionBits() const { return resolution_bits_; }
71
72private:
73 BaseAdc* adc_;
76};
77
79using NtcThermistorConcrete = NtcThermistor<NtcAdcAdapter>;
80
81//--------------------------------------
82// NTC Temperature Handler Configuration
83//--------------------------------------
84
111
115#define NTC_TEMP_HANDLER_CONFIG_DEFAULT() { \
116 .ntc_type = NtcType::NtcG163Jft103Ft1S, \
117 .adc_channel = 0, \
118 .voltage_divider_series_resistance = 10000.0f, \
119 .voltage_divider_parallel_resistance = 0.0f, \
120 .reference_voltage = 3.3f, \
121 .calibration_offset = 0.0f, \
122 .beta_value = 0.0f, \
123 .conversion_method = NtcConversionMethod::Auto, \
124 .sample_count = 1, \
125 .sample_delay_ms = 0, \
126 .min_temperature = -40.0f, \
127 .max_temperature = 125.0f, \
128 .enable_filtering = false, \
129 .filter_alpha = 0.1f, \
130 .enable_threshold_monitoring = false, \
131 .low_threshold_celsius = -40.0f, \
132 .high_threshold_celsius = 125.0f, \
133 .threshold_callback = nullptr, \
134 .threshold_user_data = nullptr, \
135 .sensor_name = "NTC_Temperature_Sensor", \
136 .sensor_description = "NTC Thermistor Temperature Sensor" \
137}
138
139//--------------------------------------
140// NtcTemperatureHandler Class
141//--------------------------------------
142
168class NtcTemperatureHandler : public BaseTemperature {
169public:
170 //==============================================================//
171 // CONSTRUCTORS AND DESTRUCTOR
172 //==============================================================//
173
180 NtcTemperatureHandler(NtcType ntc_type, BaseAdc* adc_interface, const char* sensor_name = nullptr) noexcept;
181
187 NtcTemperatureHandler(BaseAdc* adc_interface, const ntc_temp_handler_config_t& config) noexcept;
188
193
198
203
207 virtual ~NtcTemperatureHandler() noexcept;
208
209 //==============================================================//
210 // BASE TEMPERATURE INTERFACE IMPLEMENTATION
211 //==============================================================//
212
213 // Pure virtual implementations
214 bool Initialize() noexcept override;
215 bool Deinitialize() noexcept override;
216 hf_temp_err_t ReadTemperatureCelsiusImpl(float* temperature_celsius) noexcept override;
217
218 // Information interface
219 hf_temp_err_t GetSensorInfo(hf_temp_sensor_info_t* info) const noexcept override;
220 hf_u32_t GetCapabilities() const noexcept override;
221
222 // Advanced features (supported)
223 hf_temp_err_t SetRange(float min_celsius, float max_celsius) noexcept override;
224 hf_temp_err_t GetRange(float* min_celsius, float* max_celsius) const noexcept override;
225 hf_temp_err_t GetResolution(float* resolution_celsius) const noexcept override;
226 hf_temp_err_t SetThresholds(float low_threshold_celsius, float high_threshold_celsius) noexcept override;
227 hf_temp_err_t GetThresholds(float* low_threshold_celsius, float* high_threshold_celsius) const noexcept override;
228 hf_temp_err_t EnableThresholdMonitoring(hf_temp_threshold_callback_t callback, void* user_data) noexcept override;
229 hf_temp_err_t DisableThresholdMonitoring() noexcept override;
230 hf_temp_err_t StartContinuousMonitoring(hf_u32_t sample_rate_hz, hf_temp_reading_callback_t callback, void* user_data) noexcept override;
231 hf_temp_err_t StopContinuousMonitoring() noexcept override;
232 bool IsMonitoringActive() const noexcept override;
233 hf_temp_err_t SetCalibrationOffset(float offset_celsius) noexcept override;
234 hf_temp_err_t GetCalibrationOffset(float* offset_celsius) const noexcept override;
235 hf_temp_err_t ResetCalibration() noexcept override;
236 hf_temp_err_t EnterSleepMode() noexcept override;
237 hf_temp_err_t ExitSleepMode() noexcept override;
238 bool IsSleeping() const noexcept override;
239 hf_temp_err_t SelfTest() noexcept override;
240 hf_temp_err_t CheckHealth() noexcept override;
241 hf_temp_err_t GetStatistics(hf_temp_statistics_t& statistics) noexcept override;
242 hf_temp_err_t GetDiagnostics(hf_temp_diagnostics_t& diagnostics) noexcept override;
243 hf_temp_err_t ResetStatistics() noexcept override;
244 hf_temp_err_t ResetDiagnostics() noexcept override;
245
246 //==============================================================//
247 // NTC-SPECIFIC METHODS
248 //==============================================================//
249
255 void* GetNtcThermistor() noexcept;
256
262 const void* GetNtcThermistor() const noexcept;
263
269 NtcError GetNtcReading(ntc_reading_t* reading) noexcept;
270
276 NtcError GetNtcConfiguration(ntc_config_t* config) const noexcept;
277
283 NtcError SetNtcConfiguration(const ntc_config_t& config) noexcept;
284
290 NtcError GetResistance(float* resistance_ohms) noexcept;
291
297 NtcError GetVoltage(float* voltage_volts) noexcept;
298
304 NtcError GetRawAdcValue(uint32_t* adc_value) noexcept;
305
311 hf_temp_err_t Calibrate(float reference_temperature_celsius) noexcept;
312
318 NtcError SetConversionMethod(NtcConversionMethod method) noexcept;
319
325 NtcError SetVoltageDivider(float series_resistance) noexcept;
326
332 NtcError SetReferenceVoltage(float reference_voltage) noexcept;
333
339 NtcError SetBetaValue(float beta_value) noexcept;
340
346 NtcError SetAdcChannel(uint8_t adc_channel) noexcept;
347
354 NtcError SetSamplingParameters(uint32_t sample_count, uint32_t sample_delay_ms) noexcept;
355
362 NtcError SetFiltering(bool enable, float alpha = 0.1f) noexcept;
363
368 const char* GetSensorName() const noexcept;
369
374 const char* GetSensorDescription() const noexcept;
375
376 //==============================================================//
377 // DIRECT DRIVER ACCESS
378 //==============================================================//
379
384 [[nodiscard]] NtcThermistorConcrete* GetDriver() noexcept;
385 [[nodiscard]] const NtcThermistorConcrete* GetDriver() const noexcept;
386
387private:
388 //==============================================================//
389 // PRIVATE MEMBER VARIABLES
390 //==============================================================//
391
392 mutable RtosMutex mutex_;
395 BaseAdc* adc_interface_;
397
398 // BaseTemperature state
399 hf_temp_state_t current_state_;
400 hf_temp_config_t base_config_;
401
402 // Threshold monitoring
405 hf_temp_threshold_callback_t threshold_callback_;
407
408 // Continuous monitoring (using hardware-agnostic PeriodicTimer)
410 hf_temp_reading_callback_t continuous_callback_;
412 PeriodicTimer monitoring_timer_;
415
416 // Statistics and diagnostics
417 hf_temp_statistics_t statistics_;
418 hf_temp_diagnostics_t diagnostics_;
419
420 // Packed bools (grouped to avoid padding waste)
424
425 //==============================================================//
426 // PRIVATE HELPER METHODS
427 //==============================================================//
428
433 void SetLastError(hf_temp_err_t error) noexcept;
434
440 void UpdateStatistics(bool operation_successful, hf_u32_t operation_time_us) noexcept;
441
446 void UpdateDiagnostics(hf_temp_err_t error) noexcept;
447
452 bool InitializeNtcThermistor() noexcept;
453
459 hf_temp_err_t ConvertNtcError(NtcError ntc_error) const noexcept;
460
465 void CheckThresholds(float temperature_celsius) noexcept;
466
471 static void ContinuousMonitoringCallback(uint32_t arg);
472
476 static hf_u32_t RegisterMonitoringContext(NtcTemperatureHandler* handler) noexcept;
477 static void UnregisterMonitoringContext(hf_u32_t context_id) noexcept;
478 static NtcTemperatureHandler* ResolveMonitoringContext(hf_u32_t context_id) noexcept;
479
480 static constexpr hf_u32_t kMonitoringContextSlots = 8;
481 static RtosMutex callback_registry_mutex_;
483
488 void UpdateBaseDiagnostics(hf_temp_err_t error) noexcept;
489
495 hf_temp_err_t ValidateConfiguration(const ntc_temp_handler_config_t& config) const noexcept;
496
501 static hf_u64_t GetCurrentTimeUs() noexcept;
502};
NtcThermistor< NtcAdcAdapter > NtcThermistorConcrete
Convenience alias for the concrete NtcThermistor type used by this handler.
Definition NtcTemperatureHandler.h:79
Adapter that bridges BaseAdc to the ntc::AdcInterface CRTP interface required by the NtcThermistor te...
Definition NtcTemperatureHandler.h:37
bool EnsureInitialized()
Definition NtcTemperatureHandler.h:49
uint8_t GetResolutionBits() const
Definition NtcTemperatureHandler.h:70
bool IsChannelAvailable(uint8_t channel) const
Definition NtcTemperatureHandler.h:50
float GetReferenceVoltage() const
Definition NtcTemperatureHandler.h:69
bool IsInitialized() const
Definition NtcTemperatureHandler.h:48
float reference_voltage_
Definition NtcTemperatureHandler.h:74
ntc::AdcError ReadChannelCount(uint8_t channel, uint32_t *count)
Definition NtcTemperatureHandler.h:53
BaseAdc * adc_
Definition NtcTemperatureHandler.h:73
NtcAdcAdapter(BaseAdc *adc, float ref_voltage=3.3f, uint8_t res_bits=12) noexcept
Construct adapter wrapping a BaseAdc pointer.
Definition NtcTemperatureHandler.h:45
ntc::AdcError ReadChannelV(uint8_t channel, float *voltage_v)
Definition NtcTemperatureHandler.h:61
uint8_t resolution_bits_
Definition NtcTemperatureHandler.h:75
NTC temperature sensor handler implementing BaseTemperature interface.
Definition NtcTemperatureHandler.h:168
float calibration_offset_
Current calibration offset.
Definition NtcTemperatureHandler.h:414
NtcError SetFiltering(bool enable, float alpha=0.1f) noexcept
Enable/disable filtering.
Definition NtcTemperatureHandler.cpp:837
NtcTemperatureHandler(NtcType ntc_type, BaseAdc *adc_interface, const char *sensor_name=nullptr) noexcept
Constructor with NTC type and ADC interface.
Definition NtcTemperatureHandler.cpp:81
NtcTemperatureHandler & operator=(NtcTemperatureHandler &&)=delete
Non-movable.
std::unique_ptr< NtcAdcAdapter > ntc_adc_adapter_
ADC adapter (BaseAdc→ntc::AdcInterface)
Definition NtcTemperatureHandler.h:393
hf_temp_err_t EnterSleepMode() noexcept override
Definition NtcTemperatureHandler.cpp:680
NtcTemperatureHandler(const NtcTemperatureHandler &)=delete
Copy constructor is deleted.
static void UnregisterMonitoringContext(hf_u32_t context_id) noexcept
Definition NtcTemperatureHandler.cpp:1008
bool InitializeNtcThermistor() noexcept
Initialize NTC thermistor with current configuration.
RtosMutex mutex_
Thread safety mutex (hardware-agnostic)
Definition NtcTemperatureHandler.h:392
NtcError GetNtcConfiguration(ntc_config_t *config) const noexcept
Get NTC configuration.
Definition NtcTemperatureHandler.cpp:610
float high_threshold_celsius_
High temperature threshold.
Definition NtcTemperatureHandler.h:404
ntc_temp_handler_config_t config_
Handler configuration.
Definition NtcTemperatureHandler.h:396
hf_temp_err_t ResetStatistics() noexcept override
Definition NtcTemperatureHandler.cpp:570
hf_temp_err_t SetThresholds(float low_threshold_celsius, float high_threshold_celsius) noexcept override
Definition NtcTemperatureHandler.cpp:349
static NtcTemperatureHandler * ResolveMonitoringContext(hf_u32_t context_id) noexcept
Definition NtcTemperatureHandler.cpp:1021
NtcTemperatureHandler(NtcTemperatureHandler &&)=delete
Non-movable (holds mutex, unique_ptrs, raw pointers, and timer resources).
void UpdateStatistics(bool operation_successful, hf_u32_t operation_time_us) noexcept
Update operation statistics.
Definition NtcTemperatureHandler.cpp:880
const char * GetSensorName() const noexcept
Get sensor name.
Definition NtcTemperatureHandler.cpp:847
hf_temp_err_t GetStatistics(hf_temp_statistics_t &statistics) noexcept override
Definition NtcTemperatureHandler.cpp:558
hf_u32_t monitoring_context_id_
Timer callback context ID (0 = unassigned)
Definition NtcTemperatureHandler.h:413
hf_temp_err_t DisableThresholdMonitoring() noexcept override
Definition NtcTemperatureHandler.cpp:398
hf_temp_err_t ExitSleepMode() noexcept override
Definition NtcTemperatureHandler.cpp:691
hf_temp_statistics_t statistics_
BaseTemperature statistics.
Definition NtcTemperatureHandler.h:417
NtcTemperatureHandler & operator=(const NtcTemperatureHandler &)=delete
Assignment operator is deleted.
float low_threshold_celsius_
Low temperature threshold.
Definition NtcTemperatureHandler.h:403
hf_u32_t sample_rate_hz_
Sample rate for continuous monitoring.
Definition NtcTemperatureHandler.h:409
hf_temp_err_t ValidateConfiguration(const ntc_temp_handler_config_t &config) const noexcept
Validate configuration.
NtcError GetVoltage(float *voltage_volts) noexcept
Get voltage across thermistor.
Definition NtcTemperatureHandler.cpp:763
bool IsSleeping() const noexcept override
Definition NtcTemperatureHandler.cpp:701
hf_temp_err_t SetRange(float min_celsius, float max_celsius) noexcept override
Definition NtcTemperatureHandler.cpp:642
NtcThermistorConcrete * GetDriver() noexcept
Get the underlying NtcThermistor driver for advanced operations.
Definition NtcTemperatureHandler.cpp:855
NtcError SetBetaValue(float beta_value) noexcept
Set beta value.
Definition NtcTemperatureHandler.cpp:809
bool initialized_
Initialization status.
Definition NtcTemperatureHandler.h:421
hf_temp_err_t GetDiagnostics(hf_temp_diagnostics_t &diagnostics) noexcept override
Definition NtcTemperatureHandler.cpp:564
NtcError SetConversionMethod(NtcConversionMethod method) noexcept
Set conversion method.
Definition NtcTemperatureHandler.cpp:785
void SetLastError(hf_temp_err_t error) noexcept
Set last error in diagnostics.
Definition NtcTemperatureHandler.cpp:870
hf_temp_config_t base_config_
Base configuration.
Definition NtcTemperatureHandler.h:400
void * GetNtcThermistor() noexcept
Get NTC thermistor instance.
Definition NtcTemperatureHandler.cpp:598
hf_temp_err_t ReadTemperatureCelsiusImpl(float *temperature_celsius) noexcept override
Definition NtcTemperatureHandler.cpp:279
BaseAdc * adc_interface_
ADC interface pointer.
Definition NtcTemperatureHandler.h:395
hf_temp_diagnostics_t diagnostics_
BaseTemperature diagnostics.
Definition NtcTemperatureHandler.h:418
NtcError SetVoltageDivider(float series_resistance) noexcept
Set voltage divider parameters.
Definition NtcTemperatureHandler.cpp:793
NtcError SetNtcConfiguration(const ntc_config_t &config) noexcept
Set NTC configuration.
Definition NtcTemperatureHandler.cpp:744
static RtosMutex callback_registry_mutex_
Definition NtcTemperatureHandler.h:20
hf_temp_state_t current_state_
Current state.
Definition NtcTemperatureHandler.h:399
hf_temp_err_t StopContinuousMonitoring() noexcept override
Definition NtcTemperatureHandler.cpp:460
void * continuous_user_data_
Continuous monitoring callback user data.
Definition NtcTemperatureHandler.h:411
NtcError GetNtcReading(ntc_reading_t *reading) noexcept
Get NTC reading.
Definition NtcTemperatureHandler.cpp:622
bool Deinitialize() noexcept override
Definition NtcTemperatureHandler.cpp:242
hf_temp_err_t GetSensorInfo(hf_temp_sensor_info_t *info) const noexcept override
Definition NtcTemperatureHandler.cpp:314
const char * GetSensorDescription() const noexcept
Get sensor description.
Definition NtcTemperatureHandler.cpp:851
hf_u32_t GetCapabilities() const noexcept override
Definition NtcTemperatureHandler.cpp:342
bool Initialize() noexcept override
Definition NtcTemperatureHandler.cpp:160
static std::array< NtcTemperatureHandler *, kMonitoringContextSlots > callback_registry_
Definition NtcTemperatureHandler.h:22
hf_temp_err_t CheckHealth() noexcept override
Definition NtcTemperatureHandler.cpp:726
bool threshold_monitoring_enabled_
Threshold monitoring status.
Definition NtcTemperatureHandler.h:422
bool IsMonitoringActive() const noexcept override
Definition NtcTemperatureHandler.cpp:482
NtcError GetRawAdcValue(uint32_t *adc_value) noexcept
Get raw ADC value.
Definition NtcTemperatureHandler.cpp:774
NtcError SetAdcChannel(uint8_t adc_channel) noexcept
Set ADC channel.
Definition NtcTemperatureHandler.cpp:817
NtcError SetSamplingParameters(uint32_t sample_count, uint32_t sample_delay_ms) noexcept
Set sampling parameters.
Definition NtcTemperatureHandler.cpp:826
static void ContinuousMonitoringCallback(uint32_t arg)
Static callback for continuous monitoring timer.
Definition NtcTemperatureHandler.cpp:972
virtual ~NtcTemperatureHandler() noexcept
Virtual destructor - cleans up timer and thermistor resources.
Definition NtcTemperatureHandler.cpp:142
hf_temp_err_t GetResolution(float *resolution_celsius) const noexcept override
Definition NtcTemperatureHandler.cpp:668
PeriodicTimer monitoring_timer_
Hardware-agnostic periodic timer.
Definition NtcTemperatureHandler.h:412
void UpdateDiagnostics(hf_temp_err_t error) noexcept
Update diagnostics with error code.
Definition NtcTemperatureHandler.cpp:909
hf_temp_err_t GetThresholds(float *low_threshold_celsius, float *high_threshold_celsius) const noexcept override
Definition NtcTemperatureHandler.cpp:367
hf_temp_err_t Calibrate(float reference_temperature_celsius) noexcept
Calibrate the thermistor.
Definition NtcTemperatureHandler.cpp:487
hf_temp_threshold_callback_t threshold_callback_
Threshold callback.
Definition NtcTemperatureHandler.h:405
std::unique_ptr< NtcThermistorConcrete > ntc_thermistor_
NTC thermistor driver instance.
Definition NtcTemperatureHandler.h:394
void CheckThresholds(float temperature_celsius) noexcept
Check thresholds and trigger callback if needed.
Definition NtcTemperatureHandler.cpp:918
hf_temp_err_t ResetDiagnostics() noexcept override
Definition NtcTemperatureHandler.cpp:582
hf_temp_err_t SelfTest() noexcept override
Definition NtcTemperatureHandler.cpp:705
void UpdateBaseDiagnostics(hf_temp_err_t error) noexcept
Update BaseTemperature diagnostics.
static hf_u64_t GetCurrentTimeUs() noexcept
Get current timestamp in microseconds.
NtcError SetReferenceVoltage(float reference_voltage) noexcept
Set reference voltage.
Definition NtcTemperatureHandler.cpp:801
static hf_u32_t RegisterMonitoringContext(NtcTemperatureHandler *handler) noexcept
Register/unregister callback context IDs for timer callbacks.
Definition NtcTemperatureHandler.cpp:989
static constexpr hf_u32_t kMonitoringContextSlots
Definition NtcTemperatureHandler.h:480
hf_temp_err_t EnableThresholdMonitoring(hf_temp_threshold_callback_t callback, void *user_data) noexcept override
Definition NtcTemperatureHandler.cpp:383
hf_temp_err_t GetRange(float *min_celsius, float *max_celsius) const noexcept override
Definition NtcTemperatureHandler.cpp:655
hf_temp_err_t StartContinuousMonitoring(hf_u32_t sample_rate_hz, hf_temp_reading_callback_t callback, void *user_data) noexcept override
Definition NtcTemperatureHandler.cpp:409
void * threshold_user_data_
Threshold callback user data.
Definition NtcTemperatureHandler.h:406
NtcError GetResistance(float *resistance_ohms) noexcept
Get thermistor resistance.
Definition NtcTemperatureHandler.cpp:752
hf_temp_reading_callback_t continuous_callback_
Continuous monitoring callback.
Definition NtcTemperatureHandler.h:410
bool monitoring_active_
Continuous monitoring status.
Definition NtcTemperatureHandler.h:423
hf_temp_err_t SetCalibrationOffset(float offset_celsius) noexcept override
Definition NtcTemperatureHandler.cpp:514
hf_temp_err_t GetCalibrationOffset(float *offset_celsius) const noexcept override
Definition NtcTemperatureHandler.cpp:529
hf_temp_err_t ConvertNtcError(NtcError ntc_error) const noexcept
Convert NTC error to BaseTemperature error.
Definition NtcTemperatureHandler.cpp:932
hf_temp_err_t ResetCalibration() noexcept override
Definition NtcTemperatureHandler.cpp:543
NTC temperature handler configuration structure.
Definition NtcTemperatureHandler.h:88
float voltage_divider_series_resistance
Series resistance in voltage divider (ohms)
Definition NtcTemperatureHandler.h:91
bool enable_filtering
Enable temperature filtering.
Definition NtcTemperatureHandler.h:101
float low_threshold_celsius
Low temperature threshold (°C)
Definition NtcTemperatureHandler.h:104
const char * sensor_description
Sensor description.
Definition NtcTemperatureHandler.h:109
uint32_t sample_count
Number of samples to average.
Definition NtcTemperatureHandler.h:97
float calibration_offset
Calibration offset (°C)
Definition NtcTemperatureHandler.h:94
NtcType ntc_type
NTC thermistor type (driver enum)
Definition NtcTemperatureHandler.h:89
float min_temperature
Minimum temperature (°C)
Definition NtcTemperatureHandler.h:99
float high_threshold_celsius
High temperature threshold (°C)
Definition NtcTemperatureHandler.h:105
float max_temperature
Maximum temperature (°C)
Definition NtcTemperatureHandler.h:100
float reference_voltage
Reference voltage (V)
Definition NtcTemperatureHandler.h:93
float beta_value
Beta value override (0 = use default)
Definition NtcTemperatureHandler.h:95
uint32_t sample_delay_ms
Delay between samples (ms)
Definition NtcTemperatureHandler.h:98
float filter_alpha
Filter alpha value (0.0-1.0)
Definition NtcTemperatureHandler.h:102
uint8_t adc_channel
ADC channel for voltage measurement.
Definition NtcTemperatureHandler.h:90
NtcConversionMethod conversion_method
Temperature conversion method (driver enum)
Definition NtcTemperatureHandler.h:96
hf_temp_threshold_callback_t threshold_callback
Threshold callback (optional)
Definition NtcTemperatureHandler.h:106
void * threshold_user_data
Threshold callback user data.
Definition NtcTemperatureHandler.h:107
float voltage_divider_parallel_resistance
Parallel resistance (ohms, 0 if none)
Definition NtcTemperatureHandler.h:92
const char * sensor_name
Sensor name/identifier.
Definition NtcTemperatureHandler.h:108
bool enable_threshold_monitoring
Enable threshold monitoring at init.
Definition NtcTemperatureHandler.h:103