- IED server: control handling - fixed problem in test flag handling

pull/331/head
Michael Zillgith 4 years ago
parent 3514e08252
commit 1a09b9548a

@ -953,7 +953,6 @@ ControlObject_create(IedServer iedServer, MmsDomain* domain, char* lnName, char*
printf("IED_SERVER: control object %s/%s.%s has no ctlVal element!\n", domain->domainName, lnName, name); printf("IED_SERVER: control object %s/%s.%s has no ctlVal element!\n", domain->domainName, lnName, name);
} }
MmsVariableSpecification* originSpec = MmsVariableSpecification_getChildSpecificationByName(operSpec, "origin", NULL); MmsVariableSpecification* originSpec = MmsVariableSpecification_getChildSpecificationByName(operSpec, "origin", NULL);
if (originSpec) { if (originSpec) {
@ -2178,6 +2177,8 @@ Control_writeAccessControlObject(MmsMapping* self, MmsDomain* domain, char* vari
} }
} }
controlObject->testMode = testCondition;
updateControlParameters(controlObject, ctlVal, ctlNum, origin, synchroCheck, interlockCheck); updateControlParameters(controlObject, ctlVal, ctlNum, origin, synchroCheck, interlockCheck);
MmsValue* operTm = getOperParameterOperTime(value); MmsValue* operTm = getOperParameterOperTime(value);
@ -2185,12 +2186,11 @@ Control_writeAccessControlObject(MmsMapping* self, MmsDomain* domain, char* vari
if (operTm != NULL) { if (operTm != NULL) {
controlObject->operateTime = MmsValue_getUtcTimeInMs(operTm); controlObject->operateTime = MmsValue_getUtcTimeInMs(operTm);
if (controlObject->operateTime != 0) { if (controlObject->operateTime > currentTime) {
controlObject->timeActivatedOperate = true; controlObject->timeActivatedOperate = true;
controlObject->synchroCheck = synchroCheck; controlObject->synchroCheck = synchroCheck;
controlObject->interlockCheck = interlockCheck; controlObject->interlockCheck = interlockCheck;
controlObject->mmsConnection = connection; controlObject->mmsConnection = connection;
controlObject->testMode = testCondition;
CheckHandlerResult checkResult = CONTROL_ACCEPTED; CheckHandlerResult checkResult = CONTROL_ACCEPTED;
if (controlObject->checkHandler != NULL) { /* perform operative tests */ if (controlObject->checkHandler != NULL) { /* perform operative tests */

Loading…
Cancel
Save