diff --git a/src/sampled_values/sv_publisher.c b/src/sampled_values/sv_publisher.c index d5ee8d05..c759c56f 100644 --- a/src/sampled_values/sv_publisher.c +++ b/src/sampled_values/sv_publisher.c @@ -367,7 +367,15 @@ SVPublisher_ASDU_getEncodedSize(SVPublisher_ASDU self) encodedSize += 4; /* sample */ - encodedSize += 2; + if (self->dataSize < 128) + encodedSize += 2; + else if (self->dataSize < 256) + encodedSize += 3; + else if (self->dataSize < 65535) + encodedSize += 4; + else + encodedSize += 5; + encodedSize += self->dataSize; /* smpMod */