From 2b1104c0d3c468c641bd91eaa92e5fb4d3c226d5 Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Wed, 17 Mar 2021 10:57:08 +0100 Subject: [PATCH] - IED server - control model - send AddCause with operate- for DOes, SBOes control models --- src/iec61850/server/mms_mapping/control.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/iec61850/server/mms_mapping/control.c b/src/iec61850/server/mms_mapping/control.c index 5f036e66..c7be0319 100644 --- a/src/iec61850/server/mms_mapping/control.c +++ b/src/iec61850/server/mms_mapping/control.c @@ -2211,6 +2211,7 @@ Control_writeAccessControlObject(MmsMapping* self, MmsDomain* domain, char* vari /* enter state Perform Test */ setOpRcvd(controlObject, true); + controlObject->errorValue = CONTROL_ERROR_NO_ERROR; controlObject->addCauseValue = ADD_CAUSE_UNKNOWN; controlObject->mmsConnection = connection; @@ -2241,6 +2242,12 @@ Control_writeAccessControlObject(MmsMapping* self, MmsDomain* domain, char* vari setOpRcvd(controlObject, false); abortControlOperation(controlObject, false, SELECT_STATE_REASON_OPERATE_FAILED); + + if ((controlObject->ctlModel == 3) || (controlObject->ctlModel == 4)) { + ControlObject_sendLastApplError(controlObject, connection, "Oper", + controlObject->errorValue, controlObject->addCauseValue, + ctlNum, origin, true); + } } }