40 lines
1.4 KiB
C++
40 lines
1.4 KiB
C++
#ifndef MEASUREUNIT_H
|
|
#define MEASUREUNIT_H
|
|
#include "AdcSetting.h"
|
|
#include "ThermistorSetting.h"
|
|
|
|
//#define DEBUG_TEMP
|
|
|
|
class MeasureUnit
|
|
{
|
|
public:
|
|
enum ERROR {OK = 0, MALLOC_ERR = 1};
|
|
MeasureUnit(uint8_t *analogInput, uint16_t thermistorCount, uint64_t precResistor, ThermistorSetting thermistorSetting, AdcSetting adcSetting);
|
|
~MeasureUnit();
|
|
void setGlobalTempOffset(double offset);
|
|
void levelTemperaturesOff();
|
|
double getGlobalTempOffset();
|
|
double *getTemperatures();
|
|
double *getROffsetMap();
|
|
|
|
ERROR getError(){return _error;}
|
|
|
|
protected:
|
|
private:
|
|
double computeTemperature(double beta, double resistance, double rAt25);
|
|
|
|
double _globalOffset; //Correspond à l'offset global nécessaire afin d'avoir une température qui corresponde à la réalité
|
|
double *_temperatures; //Tableau contenant toutes les températures
|
|
double *_rOffsetMap; //Tableau qui contient les offsets individuels pour chaque thermistance
|
|
double *_resistanceMap; //Tableau qui contient les resistances associées aux thermistances (pour debug seulement)
|
|
uint8_t *_analogInput; //Pointeur qui garde l'adresse du tableau contenant le nom des entrées analogiques
|
|
uint16_t _thermistorCount;
|
|
uint64_t _precResistor;
|
|
ERROR _error;
|
|
|
|
AdcSetting _adcSetting;
|
|
ThermistorSetting _thermistorSetting;
|
|
};
|
|
|
|
#endif //MEASUREUNIT_H
|