10#ifndef SEMF_INPUT_SENSOR_SENSORCONVERTER_H_
11#define SEMF_INPUT_SENSOR_SENSORCONVERTER_H_
20template <
typename T_RAW,
typename T_CONVERTED>
57 virtual T_CONVERTED
convert(T_RAW value)
const = 0;
64 void onDataAvailable(
size_t index);
66 T_CONVERTED currentValue()
const override;
67 T_CONVERTED averageValue()
const override;
74 SEMF_SLOT(m_onDataAvailableSlot,
SensorConverter, *
this, onDataAvailable,
size_t);
77template <
typename T_RAW,
typename T_CONVERTED>
79: m_hardwareSensor(hardwareSensor),
83 m_hardwareSensor.dataAvailable.connect(m_onDataAvailableSlot);
86template <
typename T_RAW,
typename T_CONVERTED>
93template <
typename T_RAW,
typename T_CONVERTED>
94void SensorConverter<T_RAW, T_CONVERTED>::update()
96 m_hardwareSensor.update();
99template <
typename T_RAW,
typename T_CONVERTED>
100T_CONVERTED SensorConverter<T_RAW, T_CONVERTED>::currentValue()
const
102 return convert(m_hardwareSensor.buffer(m_index)[0]);
105template <
typename T_RAW,
typename T_CONVERTED>
106T_CONVERTED SensorConverter<T_RAW, T_CONVERTED>::averageValue()
const
static T value(const T data[], size_t dataSize)
Calculates an average out of an array.
Base class for sensor hardware like analog sensor. By calling update(), a measurement cycle gets trig...
Conversion class for raw sensor measurement values from HardwareSensor to converted values for Sensor...
virtual T_CONVERTED convert(T_RAW value) const =0
Converts a raw sensor measurement value from HardwareSensor into the required format.
SensorConverter(HardwareSensor< T_RAW > &hardwareSensor, size_t index)
Constructor.
virtual ~SensorConverter()=default
Application class for a sensor system.