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

STM32 Temperature sensor implementation. More...

#include <StmTemperature.h>

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

Public Member Functions

 StmTemperature (const hf_stm32_temp_sensor_config_t &config) noexcept
 Construct from config.
 
 StmTemperature (ADC_HandleTypeDef *hadc=nullptr, hf_u8_t resolution_bits=12, float vref_mv=3300.0f) noexcept
 Construct with ADC handle + basics (uses internal sensor defaults).
 
 ~StmTemperature () noexcept override
 
hf_temp_err_t GetSensorInfo (hf_temp_sensor_info_t *info) const noexcept override
 Get sensor information.
 
hf_u32_t GetCapabilities () const noexcept override
 Get sensor capabilities.
 
hf_temp_err_t SetRange (float min_celsius, float max_celsius) noexcept override
 Set temperature measurement range (advanced feature)
 
hf_temp_err_t GetRange (float *min_celsius, float *max_celsius) const noexcept override
 Get temperature measurement range (advanced feature)
 
hf_temp_err_t SetCalibrationOffset (float offset_celsius) noexcept override
 Set calibration offset (advanced feature)
 
hf_temp_err_t GetCalibrationOffset (float *offset_celsius) const noexcept override
 Get calibration offset (advanced feature)
 
- Public Member Functions inherited from BaseTemperature
 BaseTemperature (const BaseTemperature &)=delete
 Copy constructor is deleted to avoid copying instances.
 
BaseTemperatureoperator= (const BaseTemperature &)=delete
 Assignment operator is deleted to avoid copying instances.
 
virtual ~BaseTemperature () noexcept=default
 Virtual destructor for proper cleanup of derived classes.
 
bool IsInitialized () const noexcept
 Check if the temperature sensor is initialized.
 
bool EnsureInitialized () noexcept
 Ensures the sensor is initialized (lazy initialization).
 
bool EnsureDeinitialized () noexcept
 Ensures the sensor is deinitialized (lazy deinitialization).
 
hf_temp_state_t GetState () const noexcept
 Get current sensor state.
 
hf_temp_err_t ReadTemperatureCelsius (float *temperature_celsius) noexcept
 Read temperature in Celsius (blocking)
 
hf_temp_err_t ReadTemperature (hf_temp_reading_t *reading) noexcept
 Read temperature with full information (blocking)
 
hf_temp_err_t ReadTemperatureFahrenheit (float *temperature_fahrenheit) noexcept
 Read temperature in Fahrenheit.
 
hf_temp_err_t ReadTemperatureKelvin (float *temperature_kelvin) noexcept
 Read temperature in Kelvin.
 
hf_temp_err_t ReadTemperatureUnit (float *temperature, hf_temp_unit_t unit) noexcept
 Read temperature in specified unit.
 
bool HasCapability (hf_temp_capabilities_t capability) const noexcept
 Check if a specific capability is supported.
 
virtual hf_temp_err_t SetResolution (float resolution_celsius) noexcept
 Set measurement resolution (advanced feature)
 
virtual hf_temp_err_t GetResolution (float *resolution_celsius) const noexcept
 Get measurement resolution (advanced feature)
 
virtual hf_temp_err_t SetThresholds (float low_threshold_celsius, float high_threshold_celsius) noexcept
 Set temperature thresholds (advanced feature)
 
virtual hf_temp_err_t GetThresholds (float *low_threshold_celsius, float *high_threshold_celsius) const noexcept
 Get temperature thresholds (advanced feature)
 
virtual hf_temp_err_t EnableThresholdMonitoring (hf_temp_threshold_callback_t callback, void *user_data) noexcept
 Enable threshold monitoring (advanced feature)
 
virtual hf_temp_err_t DisableThresholdMonitoring () noexcept
 Disable threshold monitoring (advanced feature)
 
virtual hf_temp_err_t StartContinuousMonitoring (hf_u32_t sample_rate_hz, hf_temp_reading_callback_t callback, void *user_data) noexcept
 Start continuous temperature monitoring (advanced feature)
 
virtual hf_temp_err_t StopContinuousMonitoring () noexcept
 Stop continuous temperature monitoring (advanced feature)
 
virtual bool IsMonitoringActive () const noexcept
 Check if continuous monitoring is active (advanced feature)
 
virtual hf_temp_err_t Calibrate (float reference_temperature_celsius) noexcept
 Perform sensor calibration (advanced feature)
 
virtual hf_temp_err_t ResetCalibration () noexcept
 Reset calibration to default (advanced feature)
 
virtual hf_temp_err_t EnterSleepMode () noexcept
 Enter low power mode (advanced feature)
 
virtual hf_temp_err_t ExitSleepMode () noexcept
 Exit low power mode (advanced feature)
 
virtual bool IsSleeping () const noexcept
 Check if sensor is in sleep mode (advanced feature)
 
virtual hf_temp_err_t SelfTest () noexcept
 Perform sensor self-test (advanced feature)
 
virtual hf_temp_err_t CheckHealth () noexcept
 Check sensor health status (advanced feature)
 
virtual hf_temp_err_t GetStatistics (hf_temp_statistics_t &statistics) noexcept
 Get operation statistics (advanced feature)
 
virtual hf_temp_err_t GetDiagnostics (hf_temp_diagnostics_t &diagnostics) noexcept
 Get diagnostic information (advanced feature)
 
virtual hf_temp_err_t ResetStatistics () noexcept
 Reset operation statistics (advanced feature)
 
virtual hf_temp_err_t ResetDiagnostics () noexcept
 Reset diagnostic information (advanced feature)
 

Protected Member Functions

bool Initialize () noexcept override
 Platform-specific implementation for initialization.
 
bool Deinitialize () noexcept override
 Platform-specific implementation for deinitialization.
 
hf_temp_err_t ReadTemperatureCelsiusImpl (float *temperature_celsius) noexcept override
 Platform-specific implementation for reading temperature in Celsius.
 
- Protected Member Functions inherited from BaseTemperature
 BaseTemperature () noexcept
 Protected default constructor.
 
hf_temp_err_t ValidateBasicOperation () const noexcept
 Protected helper to validate basic operation preconditions.
 

Static Private Member Functions

static float DefaultInternalConvert (hf_u32_t raw, hf_u8_t resolution_bits)
 Default internal-sensor conversion (generic RM formula).
 

Private Attributes

hf_stm32_temp_sensor_config_t config_
 
float calibration_offset_
 User calibration offset (°C)
 

Additional Inherited Members

- Protected Attributes inherited from BaseTemperature
bool initialized_
 Initialization status.
 
hf_temp_state_t current_state_
 Current sensor state.
 

Detailed Description

STM32 Temperature sensor implementation.

Two modes of operation:

  1. Internal sensor — reads the on-chip temperature channel. The default conversion function uses the generic RM formula; users can override with family-specific calibration constants for better accuracy.
  2. External sensor — any NTC / PTC / thermocouple connected to an ADC channel. The user provides a convert_fn that maps raw counts → °C.

Constructor & Destructor Documentation

◆ StmTemperature() [1/2]

StmTemperature::StmTemperature ( const hf_stm32_temp_sensor_config_t & config)
explicitnoexcept

Construct from config.

◆ StmTemperature() [2/2]

StmTemperature::StmTemperature ( ADC_HandleTypeDef * hadc = nullptr,
hf_u8_t resolution_bits = 12,
float vref_mv = 3300.0f )
explicitnoexcept

Construct with ADC handle + basics (uses internal sensor defaults).

◆ ~StmTemperature()

StmTemperature::~StmTemperature ( )
overridenoexcept

Member Function Documentation

◆ DefaultInternalConvert()

float StmTemperature::DefaultInternalConvert ( hf_u32_t raw,
hf_u8_t resolution_bits )
staticprivate

Default internal-sensor conversion (generic RM formula).

◆ Deinitialize()

bool StmTemperature::Deinitialize ( )
overrideprotectedvirtualnoexcept

Platform-specific implementation for deinitialization.

Returns
true if deinitialization successful, false otherwise

Implements BaseTemperature.

◆ GetCalibrationOffset()

hf_temp_err_t StmTemperature::GetCalibrationOffset ( float * offset_celsius) const
overridevirtualnoexcept

Get calibration offset (advanced feature)

Parameters
offset_celsiusPointer to store calibration offset
Returns
Error code (TEMP_SUCCESS on success, TEMP_ERR_UNSUPPORTED_OPERATION if not supported)

Reimplemented from BaseTemperature.

◆ GetCapabilities()

hf_u32_t StmTemperature::GetCapabilities ( ) const
overridevirtualnoexcept

Get sensor capabilities.

Returns
Capabilities flags (hf_temp_capabilities_t)

Implements BaseTemperature.

◆ GetRange()

hf_temp_err_t StmTemperature::GetRange ( float * min_celsius,
float * max_celsius ) const
overridevirtualnoexcept

Get temperature measurement range (advanced feature)

Parameters
min_celsiusPointer to store minimum temperature
max_celsiusPointer to store maximum temperature
Returns
Error code (TEMP_SUCCESS on success, TEMP_ERR_UNSUPPORTED_OPERATION if not supported)

Reimplemented from BaseTemperature.

◆ GetSensorInfo()

hf_temp_err_t StmTemperature::GetSensorInfo ( hf_temp_sensor_info_t * info) const
overridevirtualnoexcept

Get sensor information.

Parameters
infoPointer to store sensor information
Returns
Error code (TEMP_SUCCESS on success)

Implements BaseTemperature.

◆ Initialize()

bool StmTemperature::Initialize ( )
overrideprotectedvirtualnoexcept

Platform-specific implementation for initialization.

Returns
true if initialization successful, false otherwise

Implements BaseTemperature.

◆ ReadTemperatureCelsiusImpl()

hf_temp_err_t StmTemperature::ReadTemperatureCelsiusImpl ( float * temperature_celsius)
overrideprotectedvirtualnoexcept

Platform-specific implementation for reading temperature in Celsius.

Parameters
temperature_celsiusPointer to store temperature value
Returns
Error code (TEMP_SUCCESS on success)

Implements BaseTemperature.

◆ SetCalibrationOffset()

hf_temp_err_t StmTemperature::SetCalibrationOffset ( float offset_celsius)
overridevirtualnoexcept

Set calibration offset (advanced feature)

Parameters
offset_celsiusCalibration offset in Celsius
Returns
Error code (TEMP_SUCCESS on success, TEMP_ERR_UNSUPPORTED_OPERATION if not supported)

Reimplemented from BaseTemperature.

◆ SetRange()

hf_temp_err_t StmTemperature::SetRange ( float min_celsius,
float max_celsius )
overridevirtualnoexcept

Set temperature measurement range (advanced feature)

Parameters
min_celsiusMinimum temperature in Celsius
max_celsiusMaximum temperature in Celsius
Returns
Error code (TEMP_SUCCESS on success, TEMP_ERR_UNSUPPORTED_OPERATION if not supported)

Reimplemented from BaseTemperature.

Member Data Documentation

◆ calibration_offset_

float StmTemperature::calibration_offset_
private

User calibration offset (°C)

◆ config_

hf_stm32_temp_sensor_config_t StmTemperature::config_
private

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