From 6c2717c56b939da3781a27819841da0091e285c4 Mon Sep 17 00:00:00 2001 From: Siegfried Siegert Date: Tue, 11 Jun 2024 09:27:07 +0200 Subject: [PATCH] Diag: check doors in sub_componentAssessment ... ... this prevents sending Operate "O000" in case of an opend door and enables sending Operate "O000" after closing all doors because 'lastResult' has not changed. --- src/ATBAPP/DeviceControllerDiag.cpp | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/ATBAPP/DeviceControllerDiag.cpp b/src/ATBAPP/DeviceControllerDiag.cpp index 6ec95ae..fe4fb67 100644 --- a/src/ATBAPP/DeviceControllerDiag.cpp +++ b/src/ATBAPP/DeviceControllerDiag.cpp @@ -178,18 +178,6 @@ void DeviceControllerDiag::sys_superviseSystem() return; } - // all doors: 99: undefined 0:closed 1:open - if (dynMaCond.lowerDoor || dynMaCond.upperDoor) { - // Service or battery door is open, goto INTRUSION MODE - qCritical() << "DeviceControllerDiag::sys_superviseSystem() Service or battery door is open, goto INTRUSION MODE"; - this->private_sendDiagEvent(DeviceController::State::E253); - } - if (dynMaCond.middleDoor) { - // vault door is open, goto INTRUSION MODE - qCritical() << "DeviceControllerDiag::sys_superviseSystem() vault door is open, goto INTRUSION MODE"; - this->private_sendDiagEvent(DeviceController::State::E252); - } - qCritical() << " --> call sub_componentAssessment()"; sub_componentAssessment(); @@ -223,6 +211,21 @@ void DeviceControllerDiag::sub_componentAssessment() this->private_sendDiagEvent(DeviceController::State::A000); } + // check for open doors + // all doors: 99: undefined 0:closed 1:open + if (dynMaCond.lowerDoor || dynMaCond.upperDoor) { + // Service or battery door is open + flag_sendOperate = false; + qCritical() << "DeviceControllerDiag::sys_superviseSystem() Service or battery door is open, goto INTRUSION MODE"; + this->private_sendDiagEvent(DeviceController::State::E253); + } + if (dynMaCond.middleDoor) { + // vault door is open + flag_sendOperate = false; + qCritical() << "DeviceControllerDiag::sys_superviseSystem() vault door is open, goto INTRUSION MODE"; + this->private_sendDiagEvent(DeviceController::State::E252); + } + // check for invalid states: if (modCond.rtc>=200) {