- IED server: also respect user provided error and addCause from ControlPerformCheckHandler when the handler is called multiple times in waiting-for-select state

pull/291/head
Michael Zillgith 5 years ago
parent a5bcd3c251
commit fb5ed11001

@ -677,6 +677,9 @@ executeStateMachine:
{ {
controlObject->isSelect = 1; controlObject->isSelect = 1;
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, NULL, false, false);
controlObject->isSelect = 0; controlObject->isSelect = 0;
@ -734,8 +737,8 @@ executeStateMachine:
setState(controlObject, STATE_UNSELECTED); setState(controlObject, STATE_UNSELECTED);
ControlObject_sendLastApplError(controlObject, controlObject->mmsConnection, "SBOw", 0, ControlObject_sendLastApplError(controlObject, controlObject->mmsConnection, "SBOw",
ADD_CAUSE_SELECT_FAILED, controlObject->ctlNum, controlObject->origin, false); controlObject->errorValue, controlObject->addCauseValue, controlObject->ctlNum, controlObject->origin, false);
MmsServerConnection_sendWriteResponse(controlObject->mmsConnection, controlObject->operateInvokeId, (MmsDataAccessError) checkHandlerResult, false); MmsServerConnection_sendWriteResponse(controlObject->mmsConnection, controlObject->operateInvokeId, (MmsDataAccessError) checkHandlerResult, false);

Loading…
Cancel
Save