From d38e590c998a537b0a7a94f74cf8379fc194691f Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Tue, 9 Jun 2020 17:59:36 +0200 Subject: [PATCH] - IEC 61850/MMS server: control - allow WaitForExecutionHandler to trigger LastApplError message --- src/iec61850/server/mms_mapping/control.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/iec61850/server/mms_mapping/control.c b/src/iec61850/server/mms_mapping/control.c index 0116572a..4ee937c2 100644 --- a/src/iec61850/server/mms_mapping/control.c +++ b/src/iec61850/server/mms_mapping/control.c @@ -404,14 +404,16 @@ executeStateMachine: } if (dynamicCheckResult == CONTROL_RESULT_FAILED) { - if (isTimeActivatedControl) { + if ((self->errorValue != CONTROL_ERROR_NO_ERROR) || (self->addCauseValue != ADD_CAUSE_UNKNOWN)) { ControlObject_sendLastApplError(self, self->mmsConnection, "Oper", self->errorValue, self->addCauseValue, self->ctlNum, self->origin, false); } - else + + if (!isTimeActivatedControl) { MmsServerConnection_sendWriteResponse(self->mmsConnection, self->operateInvokeId, DATA_ACCESS_ERROR_OBJECT_ACCESS_DENIED, true); + } abortControlOperation(self); exitControlTask(self);