diff --git a/src/iec61850/common/iec61850_common.c b/src/iec61850/common/iec61850_common.c index f21644f..2cc4214 100644 --- a/src/iec61850/common/iec61850_common.c +++ b/src/iec61850/common/iec61850_common.c @@ -191,6 +191,12 @@ FunctionalConstraint_fromString(char* fcString) return NONE; } +void +Timestamp_clearFlags(Timestamp* self) +{ + self->val[7] = 0; +} + bool Timestamp_isLeapSecondKnown(Timestamp* self) { diff --git a/src/iec61850/inc/iec61850_common.h b/src/iec61850/inc/iec61850_common.h index 795fce3..33b764b 100644 --- a/src/iec61850/inc/iec61850_common.h +++ b/src/iec61850/inc/iec61850_common.h @@ -313,6 +313,9 @@ typedef union { uint8_t val[8]; } Timestamp; +void +Timestamp_clearFlags(Timestamp* self); + uint32_t Timestamp_getTimeInSeconds(Timestamp* self); diff --git a/src/iec61850/server/impl/ied_server.c b/src/iec61850/server/impl/ied_server.c index f31f00d..d33f7e6 100644 --- a/src/iec61850/server/impl/ied_server.c +++ b/src/iec61850/server/impl/ied_server.c @@ -1058,6 +1058,9 @@ IedServer_setWriteAccessPolicy(IedServer self, FunctionalConstraint fc, AccessPo void IedServer_handleWriteAccess(IedServer self, DataAttribute* dataAttribute, WriteAccessHandler handler) { + if (dataAttribute == NULL) + *((int*) NULL) = 1; + MmsMapping_installWriteAccessHandler(self->mmsMapping, dataAttribute, handler); }