Diag: E255

- handle E255 in previousMachineEventSet (because machineEventSet will
   be cleared regularely)
 - do not call finishDiag() on E255 because this will interscect
   previous- with current machineEventSet and thus remove all Errors/
   Warnings because machineEventSet was cleared and includes only E255!
This commit is contained in:
Siegfried Siegert 2025-06-24 14:18:35 +02:00
parent cc6dfee0e2
commit fe3696ce9c
Signed by: SiegfriedSiegert
GPG Key ID: 68371E015E8F0B03

View File

@ -114,7 +114,7 @@ void DeviceControllerDiag::private_startDiag()
qCritical() << "DeviceControllerDiag::private_startDiag() interrupted!"; qCritical() << "DeviceControllerDiag::private_startDiag() interrupted!";
DCMachineEvent E255Event = DCMachineEvent(DeviceController::State::E255); DCMachineEvent E255Event = DCMachineEvent(DeviceController::State::E255);
if (!this->previousMachineEventSet.contains(E255Event)) { if (!this->previousMachineEventSet.contains(E255Event)) {
machineEventSet.insert(E255Event); previousMachineEventSet.insert(E255Event);
private_sendDiagEvent(E255Event, DeviceController::Action::SET); private_sendDiagEvent(E255Event, DeviceController::Action::SET);
} }
if (this->E255counter > 5) { if (this->E255counter > 5) {
@ -133,7 +133,9 @@ void DeviceControllerDiag::private_startDiag()
* - diag is called again in ModeOOO wokeup() * - diag is called again in ModeOOO wokeup()
*/ */
} }
this->private_finishDiag(); this->diagRequestTimeoutTimer->stop();
this->isRequestRunning = false;
this->flagInterruptDiag = false;
return; return;
} }
@ -177,13 +179,15 @@ void DeviceControllerDiag::sys_superviseSystem()
// send // send
DCMachineEvent E255Event = DCMachineEvent(DeviceController::State::E255); DCMachineEvent E255Event = DCMachineEvent(DeviceController::State::E255);
if (!this->previousMachineEventSet.contains(E255Event)) { if (!this->previousMachineEventSet.contains(E255Event)) {
machineEventSet.insert(E255Event); previousMachineEventSet.insert(E255Event);
private_sendDiagEvent(E255Event, DeviceController::Action::SET); private_sendDiagEvent(E255Event, DeviceController::Action::SET);
} }
if (this->E255counter > 5) { this->restartCArun(); } if (this->E255counter > 5) { this->restartCArun(); }
else { this->E255counter++; } else { this->E255counter++; }
QTimer::singleShot(400, this, &DeviceControllerDiag::diagRequest); QTimer::singleShot(400, this, &DeviceControllerDiag::diagRequest);
this->private_finishDiag(); this->diagRequestTimeoutTimer->stop();
this->isRequestRunning = false;
this->flagInterruptDiag = false;
return; return;
} }
@ -194,13 +198,15 @@ void DeviceControllerDiag::sys_superviseSystem()
hw->dc_autoRequest(true); hw->dc_autoRequest(true);
DCMachineEvent E255Event = DCMachineEvent(DeviceController::State::M0254); DCMachineEvent E255Event = DCMachineEvent(DeviceController::State::M0254);
machineEventSet.insert(E255Event); previousMachineEventSet.insert(E255Event);
private_sendDiagEvent(E255Event, DeviceController::Action::SET); private_sendDiagEvent(E255Event, DeviceController::Action::SET);
if (this->E255counter > 5) { this->restartCArun(); } if (this->E255counter > 5) { this->restartCArun(); }
else { this->E255counter++; } else { this->E255counter++; }
QTimer::singleShot(400, this, &DeviceControllerDiag::diagRequest); QTimer::singleShot(400, this, &DeviceControllerDiag::diagRequest);
this->private_finishDiag(); this->diagRequestTimeoutTimer->stop();
this->isRequestRunning = false;
this->flagInterruptDiag = false;
return; return;
} }