8#include "core/hf-core-drivers/external/hf-mcp9700-driver/inc/mcp9700_thermistor.hpp"
9#include "core/hf-core-drivers/internal/hf-internal-interface-wrap/inc/base/BaseAdc.h"
10#include "core/hf-core-drivers/internal/hf-internal-interface-wrap/inc/base/BaseTemperature.h"
25 return adc_ !=
nullptr &&
adc_->EnsureInitialized();
35 if (
adc_ ==
nullptr || voltage_v ==
nullptr) {
36 return static_cast<int>(hf_adc_err_t::ADC_ERR_NULL_POINTER);
38 const hf_adc_err_t err =
39 adc_->ReadChannelV(
static_cast<hf_channel_id_t
>(channel), *voltage_v);
40 return (err == hf_adc_err_t::ADC_SUCCESS) ? 0 :
static_cast<int>(err);
59 const char* sensor_name =
"MCP9700")
noexcept;
73 hf_temp_err_t
GetSensorInfo(hf_temp_sensor_info_t* info) const noexcept override;
hf::mcp9700::Mcp9700Thermistor< Mcp9700AdcAdapter > Mcp9700ThermistorConcrete
Definition Mcp9700TemperatureHandler.h:47
Thin adapter: BaseAdc channel read in the shape expected by Mcp9700Thermistor<>.
Definition Mcp9700TemperatureHandler.h:19
BaseAdc * adc_
Definition Mcp9700TemperatureHandler.h:44
Mcp9700AdcAdapter(BaseAdc *adc) noexcept
Definition Mcp9700TemperatureHandler.h:22
bool EnsureInitialized() noexcept
Definition Mcp9700TemperatureHandler.h:24
int ReadChannelV(uint8_t channel, float *voltage_v) noexcept
Read one ADC channel as volts for the thermistor conversion.
Definition Mcp9700TemperatureHandler.h:34
BaseTemperature implementation for an MCP9700 on a multiplexed ADC channel.
Definition Mcp9700TemperatureHandler.h:56
std::unique_ptr< Mcp9700ThermistorConcrete > thermistor_
Definition Mcp9700TemperatureHandler.h:82
BaseAdc * adc_interface_
Definition Mcp9700TemperatureHandler.h:78
const char * sensor_name_
Definition Mcp9700TemperatureHandler.h:80
hf_u32_t GetCapabilities() const noexcept override
Definition Mcp9700TemperatureHandler.cpp:85
bool Deinitialize() noexcept override
Definition Mcp9700TemperatureHandler.cpp:39
bool Initialize() noexcept override
Definition Mcp9700TemperatureHandler.cpp:17
hf_temp_err_t GetSensorInfo(hf_temp_sensor_info_t *info) const noexcept override
Definition Mcp9700TemperatureHandler.cpp:68
std::unique_ptr< Mcp9700AdcAdapter > adc_adapter_
Definition Mcp9700TemperatureHandler.h:81
Mcp9700TemperatureHandler & operator=(const Mcp9700TemperatureHandler &)=delete
const char * GetSensorName() const noexcept
Instance label given at construction ("MCP9700" by default).
Definition Mcp9700TemperatureHandler.h:67
uint8_t adc_channel_
Definition Mcp9700TemperatureHandler.h:79
RtosMutex mutex_
Definition Mcp9700TemperatureHandler.h:77
hf_temp_err_t ReadTemperatureCelsiusImpl(float *temperature_celsius) noexcept override
Definition Mcp9700TemperatureHandler.cpp:49
~Mcp9700TemperatureHandler() noexcept override=default
Mcp9700TemperatureHandler(const Mcp9700TemperatureHandler &)=delete