diff --git a/src/sampled_values/sv_publisher.c b/src/sampled_values/sv_publisher.c index 969992a4..aaf0c2c0 100644 --- a/src/sampled_values/sv_publisher.c +++ b/src/sampled_values/sv_publisher.c @@ -398,8 +398,10 @@ SV_ASDU_encodeToBuffer(SV_ASDU self, uint8_t* buffer, int bufPos) buffer[bufPos++] = self->smpSynch; /* SmpRate */ - bufPos = BerEncoder_encodeTL(0x86, 2, buffer, bufPos); - bufPos = encodeUInt16FixedSize(self->smpRate, buffer, bufPos); + if (self->hasSmpRate) { + bufPos = BerEncoder_encodeTL(0x86, 2, buffer, bufPos); + bufPos = encodeUInt16FixedSize(self->smpRate, buffer, bufPos); + } /* Sample */ bufPos = BerEncoder_encodeTL(0x87, self->dataSize, buffer, bufPos);