Introduce DCMachineEvent ...
... this is an DC-Plugin internal data-structure which can be transformed to an ATBMachineEvent and sent to ISMAS. DCMachineEvent is in fact a couple ot DeviceController::State and a QString eventID. Thi eventID is necessary to send a state-reset to ISMAS. ISMAS needs same enventID for set- and reset Events.
This commit is contained in:
@@ -95,7 +95,7 @@ bool DeviceControllerDiag::isOperatingState()
|
||||
return !this->_isErrorState;
|
||||
}
|
||||
|
||||
QSet<DeviceController::State> DeviceControllerDiag::getCurrentMachineState()
|
||||
QSet<DCMachineEvent> DeviceControllerDiag::getCurrentMachineState()
|
||||
{
|
||||
return this->machineEventSet;
|
||||
}
|
||||
@@ -421,33 +421,30 @@ void DeviceControllerDiag::sub_componentAssessment()
|
||||
|
||||
// compare machineEventSets
|
||||
// New events: present in current but not previous
|
||||
QSet<DeviceController::State> newEvents = this->machineEventSet - this->previousMachineEventSet;
|
||||
QSet<DCMachineEvent> newEvents = this->machineEventSet - this->previousMachineEventSet;
|
||||
|
||||
// Reset events: present in previous but not current
|
||||
QSet<DeviceController::State> resetEvents = this->previousMachineEventSet - this->machineEventSet;
|
||||
QSet<DCMachineEvent> resetEvents = this->previousMachineEventSet - this->machineEventSet;
|
||||
|
||||
// Triggering Actions
|
||||
// Iterate through the results
|
||||
for (const DeviceController::State& event : newEvents) {
|
||||
for (const DCMachineEvent& event : newEvents) {
|
||||
private_sendDiagEvent(event, DeviceController::Action::SET); // New event detected
|
||||
}
|
||||
|
||||
// Proposal: send reset
|
||||
/*
|
||||
for (const DeviceController::State& event : resetEvents) {
|
||||
// send reset
|
||||
for (const DCMachineEvent& event : resetEvents) {
|
||||
private_sendDiagEvent(event, DeviceController::Action::RESET); // Event no longer present
|
||||
}
|
||||
*/
|
||||
|
||||
// DEBUG
|
||||
// print all current states
|
||||
QStringList DeviceControllerStateStringList;
|
||||
for (const DeviceController::State& event : this->machineEventSet) {
|
||||
DeviceControllerStateStringList.append(QMetaEnum::fromType<DeviceController::State>().valueToKey(event));
|
||||
for (const DCMachineEvent& event : this->machineEventSet) {
|
||||
DeviceControllerStateStringList.append(QMetaEnum::fromType<DeviceController::State>().valueToKey(event.state));
|
||||
}
|
||||
qCritical() << "diagReq result: " << DeviceControllerStateStringList;
|
||||
|
||||
|
||||
// finish diag
|
||||
|
||||
this->diagRequestTimeoutTimer->stop();
|
||||
@@ -482,18 +479,26 @@ void DeviceControllerDiag::private_setDiagEvent(DeviceController::State result)
|
||||
return;
|
||||
}
|
||||
|
||||
machineEventSet.insert(result);
|
||||
DCMachineEvent newState = DCMachineEvent(result, QUuid::createUuid().toString(QUuid::WithoutBraces).mid(0, 8));
|
||||
|
||||
machineEventSet.insert(newState);
|
||||
}
|
||||
|
||||
|
||||
void DeviceControllerDiag::private_sendDiagEvent(DeviceController::State result, DeviceController::Action action)
|
||||
{
|
||||
QString eventId = QUuid::createUuid().toString(QUuid::WithoutBraces).mid(0, 8);
|
||||
|
||||
QString eventName = QMetaEnum::fromType<DeviceController::State>().valueToKey(result);;
|
||||
/**
|
||||
* @brief DeviceControllerDiag::private_sendDiagEvent
|
||||
* @param result WXXX | EXXX | O000
|
||||
* @param action SET|RESET
|
||||
*/
|
||||
void DeviceControllerDiag::private_sendDiagEvent(DCMachineEvent result, DeviceController::Action action)
|
||||
{
|
||||
QString eventId = result.eventId;
|
||||
|
||||
QString eventName = QMetaEnum::fromType<DeviceController::State>().valueToKey(result.state);
|
||||
EVENT_CLASS eventClass = EVENT_CLASS::STATE;
|
||||
QString parameter;
|
||||
switch (result) {
|
||||
switch (result.state) {
|
||||
|
||||
case DeviceController::State::INITIAL_STATE:
|
||||
break;
|
||||
@@ -637,7 +642,7 @@ void DeviceControllerDiag::private_sendDiagEvent(DeviceController::State result,
|
||||
break;
|
||||
}
|
||||
|
||||
this->lastState = result;
|
||||
this->lastState = result.state;
|
||||
|
||||
/**
|
||||
* Variant: send 'parameter' as JSON:
|
||||
|
||||
Reference in New Issue
Block a user