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.
This commit is contained in:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user