Compare commits

...

2 Commits

4 changed files with 27 additions and 13 deletions

View File

@ -15,6 +15,7 @@ _error(OK),
_state(IDLING),
_channel(0),
_courant(0.0),
_tension(0.0),
_triggerLevelOff(false)
{
//Allocation dynamique des différent tableaux
@ -33,9 +34,6 @@ _triggerLevelOff(false)
_rOffsetMap = NULL;
_resistanceMap = NULL;
}
//We start the comm with the adcs
_adc.begin();
}
MeasureUnit::~MeasureUnit()
@ -91,6 +89,10 @@ double *MeasureUnit::getTemperatures()
Serial.print("Debug voltage delta : ");Serial.println(_resistanceMap[i]);
#endif
}
//Ne pas oublier de déduire la chute de tension de la resistance de precision pour la première thermistance
_resistanceMap[0] -= rPrecTension;
Serial.printf("Debug voltage delta : 0 -> ");Serial.println(_resistanceMap[0]);
for(int i(0); i < _thermistorCount; i++)
{
@ -165,14 +167,16 @@ void MeasureUnit::startTemperatureMeasurement()
break;
case MEASURING:
_adc.startSample(_channel);
if(_channel == 0) //Calcule du courant
{
if(_adc.isSampleReady())
{
double tension = _adc.getSampleVoltage();
_courant = tension / (double) _precResistor;
//Serial.println(tension);
_tension = _adc.getSampleVoltage();
_courant = _tension / (double) _precResistor;
#ifdef DEBUG
Serial.print("Tension prec : ");Serial.println(_tension);
#endif
_channel++;
}
}
@ -181,8 +185,10 @@ void MeasureUnit::startTemperatureMeasurement()
if(_adc.isSampleReady())
{
_resistanceMap[_channel-1] = _adc.getSampleVoltage();
//Serial.println(_resistanceMap[_channel-1]);
_channel++;
#ifdef DEBUG
Serial.print("Tension thermistances : ");Serial.println(_resistanceMap[_channel-1]);
#endif
_channel++;
}
}
@ -200,9 +206,15 @@ void MeasureUnit::startTemperatureMeasurement()
//Calcule de delta :
_resistanceMap[i] -= _resistanceMap[i-1];
#ifdef DEBUG
Serial.print("Debug voltage delta : ");Serial.println(_resistanceMap[i]);
Serial.printf("Debug voltage delta : %u -> ",i);Serial.println(_resistanceMap[i]);
#endif
}
//Ne pas oublier de déduire la chute de tension de la resistance de precision pour la première thermistance
_resistanceMap[0] -= _tension;
#ifdef DEBUG
Serial.printf("Debug voltage delta : 0 -> ");Serial.println(_resistanceMap[0]);
#endif
for(int i(0); i < _thermistorCount; i++)
{

View File

@ -11,6 +11,7 @@ class MeasureUnit
enum ERROR {OK = 0, MALLOC_ERR = 1};
MeasureUnit(uint8_t *analogInput, uint16_t thermistorCount, uint64_t precResistor, ThermistorSetting thermistorSetting, Adc &adc);
~MeasureUnit();
void init(){_adc.begin();}
void setGlobalTempOffset(double offset);
void levelTemperaturesOff();
double getGlobalTempOffset();
@ -46,7 +47,7 @@ class MeasureUnit
//Async part
STATE _state;
uint8_t _channel;
double _courant;
double _courant, _tension;
boolean _triggerLevelOff; //Attribut permettant de savoir si un étalonnage a été demandé
};

View File

@ -5,6 +5,7 @@ PayloadFormatter::PayloadFormatter(uint8_t numOfRow, uint8_t numOfColumn) : _tot
_length = numOfRow * numOfColumn * 2 + 7 + 1;
_payload = (uint8_t *) calloc(_length, sizeof(uint8_t));
}
PayloadFormatter::~PayloadFormatter()
{
free(_payload);
@ -24,7 +25,7 @@ boolean PayloadFormatter::endSession()
return ret;
}
int16_t PayloadFormatter::buildPayload(uint8_t **buffer, DateTime *dateTime, double *tempArray)
int16_t PayloadFormatter::buildPayload(uint8_t **buffer, DateTime *dateTime, double *tempArray, uint8_t numOfRow, uint8_t numOfColumn)
{
*buffer = _payload;
if(_currentPayload == _totalPayloads || !_totalPayloads)

View File

@ -9,7 +9,7 @@ class PayloadFormatter
PayloadFormatter(uint8_t numOfRow, uint8_t numOfColumn);
~PayloadFormatter();
int16_t buildPayload(uint8_t **buffer, DateTime *dateTime, double *tempArray);
int16_t buildPayload(uint8_t **buffer, DateTime *dateTime, double *tempArray, uint8_t numOfRow = -1, uint8_t numOfColumn = -1);
void startSession(uint8_t totalPackets);
boolean endSession();