diff --git a/lib/PayloadFormatter/PayloadFormatter.cpp b/lib/PayloadFormatter/PayloadFormatter.cpp index 3fbad7c..c92710c 100644 --- a/lib/PayloadFormatter/PayloadFormatter.cpp +++ b/lib/PayloadFormatter/PayloadFormatter.cpp @@ -2,7 +2,7 @@ PayloadFormatter::PayloadFormatter(uint8_t numOfRow, uint8_t numOfColumn) : _totalPayloads(0), _currentPayload(0), _numOfRow(numOfRow), _numOfColumn(numOfColumn), _payload(NULL), _length(0) { - _length = numOfRow * numOfColumn * 2 + 7 + 1; + _length = (numOfRow * numOfColumn * 2)/* x2 car il faut deux octets pour une température*/ + 7/*pour la date, le numero de trame et le nombre de lignes et de colonnes*/ + 1/*pour le charactère de fin de ligne*/ + 2/*pour la température exterieure*/; _payload = (uint8_t *) calloc(_length, sizeof(uint8_t)); } @@ -25,7 +25,7 @@ boolean PayloadFormatter::endSession() return ret; } -int16_t PayloadFormatter::buildPayload(uint8_t **buffer, DateTime *dateTime, double *tempArray, uint8_t numOfRow, uint8_t numOfColumn) +int16_t PayloadFormatter::buildPayload(uint8_t **buffer, DateTime *dateTime, double externTemp, double *tempArray, uint8_t numOfRow, uint8_t numOfColumn) { *buffer = _payload; if(_currentPayload == _totalPayloads || !_totalPayloads) @@ -53,8 +53,14 @@ int16_t PayloadFormatter::buildPayload(uint8_t **buffer, DateTime *dateTime, dou _payload[5] = dateTime->hour(); _payload[6] = dateTime->minute(); - //Partie temperature - for(int i(7),j(0); j < (_numOfRow * _numOfColumn); i+=2, j++) + //Octets 7 et 8 pour la température extérieure + //Format Q10.6 + int16_t q10_6_extern = round(externTemp * pow(2,6)); + _payload[7] = q10_6_extern >> 8; + _payload[8] = q10_6_extern; + + //Partie temperature interne + for(int i(9),j(0); j < (_numOfRow * _numOfColumn); i+=2, j++) { //Format Q10.6 int16_t q10_6 = round(tempArray[j] * pow(2,6)); diff --git a/lib/PayloadFormatter/PayloadFormatter.h b/lib/PayloadFormatter/PayloadFormatter.h index a0ac0f3..1ca373b 100644 --- a/lib/PayloadFormatter/PayloadFormatter.h +++ b/lib/PayloadFormatter/PayloadFormatter.h @@ -9,7 +9,7 @@ class PayloadFormatter PayloadFormatter(uint8_t numOfRow, uint8_t numOfColumn); ~PayloadFormatter(); - int16_t buildPayload(uint8_t **buffer, DateTime *dateTime, double *tempArray, uint8_t numOfRow = -1, uint8_t numOfColumn = -1); + int16_t buildPayload(uint8_t **buffer, DateTime *dateTime, double externTemp, double *tempArray, uint8_t numOfRow = -1, uint8_t numOfColumn = -1); void startSession(uint8_t totalPackets); boolean endSession();