- fixed problem in GOOSE publisher payload length calculation

pull/93/head
Michael Zillgith 7 years ago
parent a817b3d3c6
commit d5df360f3a

@ -246,7 +246,7 @@ createGoosePayload(GoosePublisher self, LinkedList dataSetValues, uint8_t* buffe
/* Step 1 - calculate length fields */
uint32_t goosePduLength = 0;
goosePduLength += 1 + BerEncoder_determineEncodedStringSize(self->goCBRef);
goosePduLength += BerEncoder_determineEncodedStringSize(self->goCBRef);
uint32_t timeAllowedToLive = self->timeAllowedToLive;
@ -255,9 +255,9 @@ createGoosePayload(GoosePublisher self, LinkedList dataSetValues, uint8_t* buffe
goosePduLength += BerEncoder_determineEncodedStringSize(self->dataSetRef);
if (self->goID != NULL)
goosePduLength += 1 + BerEncoder_determineEncodedStringSize(self->goID);
goosePduLength += BerEncoder_determineEncodedStringSize(self->goID);
else
goosePduLength += 1 + BerEncoder_determineEncodedStringSize(self->goCBRef);
goosePduLength += BerEncoder_determineEncodedStringSize(self->goCBRef);
goosePduLength += 2 + 8; /* for T (UTCTIME) */
@ -289,7 +289,9 @@ createGoosePayload(GoosePublisher self, LinkedList dataSetValues, uint8_t* buffe
goosePduLength += allDataSize;
if (goosePduLength > maxPayloadSize)
uint32_t payloadSize = 1 + BerEncoder_determineLengthSize(goosePduLength) + goosePduLength;
if (payloadSize > maxPayloadSize)
return -1;
/* Step 2 - encode to buffer */

Loading…
Cancel
Save