From 8a55ef47bfd9966e03e79f3726791b3091a3ffc3 Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Wed, 18 Nov 2020 17:37:00 +0100 Subject: [PATCH] - IED server: ControlPerformCheckHandler has same parameters when called again in state WAITING_FOR_SELECT --- src/iec61850/server/mms_mapping/control.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/iec61850/server/mms_mapping/control.c b/src/iec61850/server/mms_mapping/control.c index 41137f66..df654ba0 100644 --- a/src/iec61850/server/mms_mapping/control.c +++ b/src/iec61850/server/mms_mapping/control.c @@ -696,7 +696,8 @@ executeStateMachine: controlObject->errorValue = 0; controlObject->addCauseValue = ADD_CAUSE_SELECT_FAILED; - CheckHandlerResult checkHandlerResult = controlObject->checkHandler((ControlAction) controlObject, controlObject->checkHandlerParameter, NULL, false, false); + CheckHandlerResult checkHandlerResult = controlObject->checkHandler((ControlAction) controlObject, controlObject->checkHandlerParameter, + controlObject->ctlVal, controlObject->testMode, controlObject->interlockCheck); controlObject->isSelect = 0; @@ -2004,6 +2005,8 @@ Control_writeAccessControlObject(MmsMapping* self, MmsDomain* domain, char* vari updateControlParameters(controlObject, ctlVal, ctlNum, origin, synchroCheck, interlockCheck); + controlObject->testMode = testCondition; + if (controlObject->checkHandler != NULL) { /* perform operative tests */ controlObject->isSelect = 1;