Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -rcedf17d9edc7e3f0f08e2877e702aaf4f94d4202 -r38ae7b93679d05a54fc460dac68891562d7da72d --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision cedf17d9edc7e3f0f08e2877e702aaf4f94d4202) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 38ae7b93679d05a54fc460dac68891562d7da72d) @@ -1,13 +1,13 @@ /*! * - * Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. + * Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file MessageInterpreter.cpp - * \author (last) Behrouz NematiPour - * \date (last) 13-Oct-2022 + * \author (last) Dara Navaei + * \date (last) 06-May-2024 * \author (original) Behrouz NematiPour * \date (original) 26-Aug-2020 * @@ -29,15 +29,14 @@ #define DISABLE_CHECKIN_LOG 0 #define DEBUG_SIGNAL(vID, vMODEL) // qDebug() << vID << vMODEL; - // a macro to simplify the transmit message // would be better later to be replaced by a template method // like the notify method of received messages #define INTERPRET_TRANSMIT_MESSAGE(vMODEL) \ if ( ! length ) { logInvalidLength(vActionId); return false; } \ vCanId = vMODEL::canid(); \ vPayload = Format::fromVariant(vData); \ - LOG_APPED(QString("%1,%2").arg(vActionId,4,16).arg(vMODEL::toString(vData))); \ + LOG_APPED_MSG(vActionId, vMODEL::toString(vData)); \ DEBUG_SIGNAL(0, typeid(vMODEL).name()) // another version of the INTERPRET_TRANSMIT_MESSAGE for empty messages @@ -46,7 +45,7 @@ if ( length ) { logInvalidLength(vActionId); return false; } \ vCanId = vMODEL::canid(); \ vPayload = Format::fromVariant(vData); \ - LOG_APPED(QString("%1,%2").arg(vActionId,4,16).arg(vMODEL::toString(vData))); \ + LOG_APPED_MSG(vActionId, vMODEL::toString(vData)); \ DEBUG_SIGNAL(0, typeid(vMODEL).name()) /*! @@ -82,7 +81,7 @@ if ( ! ok ) return false; // disabled coco end emit didActionReceive(tModel.data()); - LOG_APPED(QString("%1,%2").arg(vIdCheck,4,16).arg(tModel.toString())); + LOG_APPED_MSG(vIdCheck, tModel.toString()); DEBUG_SIGNAL(vIdCheck, typeid(TModel).name()) return ok; } @@ -211,9 +210,9 @@ if ( length ) { // this message has a variable length vPayload = Format::fromVariant(vData.first()); } - if ( gEnableCheckInLog ) + if ( ! gDisableCheckInLog ) { LOG_APPED_UI(QString("CheckIn")); - + } break; case Gui::GuiActionType::ID_RawData: // len: 255, can have any len @@ -222,8 +221,12 @@ } LOG_APPED_UI(QString("RawData")); break; + // Generic Confirm case Gui::GuiActionType::ID_DuetConfirmUIr : INTERPRET_TRANSMIT_MESSAGE(DuetConfirmUIrData ); break; + // RO Water + case Gui::GuiActionType::ID_DuetRoWaterModeUIi : INTERPRET_TRANSMIT_MESSAGE(DuetRoWaterModeUIiData ); break; + // Power Off case Gui::GuiActionType::ID_PowerOff : INTERPRET_TRANSMIT_MESSAGE(AdjustPowerOffRequestData ); break; // POST case Gui::GuiActionType::ID_UIPostFinalResultData : INTERPRET_TRANSMIT_MESSAGE(AdjustUIPostFinalResultRequestData ); break; @@ -234,6 +237,8 @@ case Gui::GuiActionType::ID_AdjustHDDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustHDDateTimeRequestData ); break; case Gui::GuiActionType::ID_AdjustDGDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDGDateTimeRequestData ); break; case Gui::GuiActionType::ID_AdjustServiceDatesReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustServiceDatesRequestData ); break; + case Gui::GuiActionType::ID_HDUsageInfoReq : INTERPRET_TRSMT_MT_MESSAGE(HDUsageInfoRequestData ); break; + case Gui::GuiActionType::ID_AdjustInstitutionalRecordReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustInstitutionalRequestData ); break; // Pre-Treatment case Gui::GuiActionType::ID_AdjustInitTreatmentReq : INTERPRET_TRANSMIT_MESSAGE(AdjustInitTreatmentRequestData ); break; case Gui::GuiActionType::ID_AdjustParametersValidationReq : INTERPRET_TRANSMIT_MESSAGE(AdjustParametersValidationRequestData ); break; @@ -262,12 +267,16 @@ case Gui::GuiActionType::ID_AdjustRecirculateReq : INTERPRET_TRANSMIT_MESSAGE(AdjustRecirculateRequestData ); break; case Gui::GuiActionType::ID_AdjustTreatmentEndReq : INTERPRET_TRANSMIT_MESSAGE(AdjustTreatmentEndRequestData ); break; // Post-Treatment - case Gui::GuiActionType::ID_AdjustPatientDisconnectionConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientDisconnectionConfirmRequestData ); break; + case Gui::GuiActionType::ID_AdjustPatientDisconnectNotifyReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientDisconnectionNotifyRequestData ); break; + case Gui::GuiActionType::ID_AdjustPatientDisconnectConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientDisconnectionConfirmRequestData ); break; case Gui::GuiActionType::ID_AdjustDisposablesRemovalConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustDisposablesRemovalConfirmRequestData ); break; case Gui::GuiActionType::ID_AdjustTreatmentLogReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustTreatmentLogRequestData ); break; // Disinfection case Gui::GuiActionType::ID_AdjustDisinfectModeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDisinfectModeRequestData ); break; case Gui::GuiActionType::ID_AdjustDisinfectStartReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDisinfectStartRequestData ); break; + // DG Cleaning + case Gui::GuiActionType::ID_AdjustDGCleaningUsageReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustDGCleaningUsageRequestData ); break; + // alarms case Gui::GuiActionType::ID_AlarmSilenceReq : INTERPRET_TRANSMIT_MESSAGE(AlarmSilenceRequestData ); break; case Gui::GuiActionType::ID_AlarmUserActionReq : INTERPRET_TRANSMIT_MESSAGE(AlarmUserActionRequestData ); break; @@ -276,6 +285,10 @@ case Gui::GuiActionType::ID_AlarmClearedConditionReq : INTERPRET_TRANSMIT_MESSAGE(AlarmClearedConditionRequestData ); break; case Gui::GuiActionType::ID_AlarmActiveListReq : INTERPRET_TRSMT_MT_MESSAGE(AlarmActiveListRequestData ); break; case Gui::GuiActionType::ID_AlarmTriggered : INTERPRET_TRANSMIT_MESSAGE(AlarmTriggeredRequestData ); break; + + // HD reset in service mode + case Gui::GuiActionType::ID_ResetHDInServiceModeReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustHDResetInSrvcRequestData ); break; + // disabled coco end default: QString mActionIdHexString = Format::toHexString(vActionId); @@ -425,6 +438,7 @@ case Gui::GuiActionType::ID_HDPostSingleResultData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDPostSingleResultData ); break; case Gui::GuiActionType::ID_HDPostFinalResultData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDPostFinalResultData ); break; case Gui::GuiActionType::ID_UIPostFinalResultHDReq : ok = notify(vMessage, vData, Gui::GuiActionType::ID_UIPostFinalResultHDReq ); break; + case Gui::GuiActionType::ID_HDRTCEpochData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDRTCEpochData ); break; // ----- Settings case Gui::GuiActionType::ID_AdjustServiceModeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustServiceModeRsp ); break; @@ -433,8 +447,8 @@ case Gui::GuiActionType::ID_AdjustSerialHDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSerialHDRsp ); break; case Gui::GuiActionType::ID_AdjustServiceDatesHDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustServiceDatesHDRsp ); break; case Gui::GuiActionType::ID_AdjustHDDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHDDateTimeRsp ); break; - - + case Gui::GuiActionType::ID_HDUsageInfoRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDUsageInfoRsp ); break; + case Gui::GuiActionType::ID_AdjustInstitutionalRecordRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustInstitutionalRecordRsp ); break; // ----- States case Gui::GuiActionType::ID_HDOperationModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDOperationModeData ); break; case Gui::GuiActionType::ID_PreTreatmentStates : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PreTreatmentStates ); break; @@ -490,7 +504,8 @@ case Gui::GuiActionType::ID_AdjustTreatmentEndRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustTreatmentEndRsp ); break; // ----- Post-Treatment Adjust - case Gui::GuiActionType::ID_AdjustDisposableRemovalConfirmRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDisposableRemovalConfirmRsp ); break; + case Gui::GuiActionType::ID_AdjustPatientDisconnectConfirmRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustPatientDisconnectConfirmRsp ); break; + case Gui::GuiActionType::ID_AdjustDisposablesRemovalConfirmRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDisposablesRemovalConfirmRsp); break; case Gui::GuiActionType::ID_AdjustTreatmentLogRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustTreatmentLogRsp ); break; // ----- Treatment Log case Gui::GuiActionType::ID_TreatmentLogAvrgeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentLogAvrgeData ); break; @@ -567,7 +582,10 @@ case Gui::GuiActionType::ID_AdjustSerialDGRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSerialDGRsp ); break; case Gui::GuiActionType::ID_AdjustServiceDatesDGRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustServiceDatesDGRsp ); break; case Gui::GuiActionType::ID_AdjustDGDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDGDateTimeRsp ); break; - + case Gui::GuiActionType::ID_AdjustDGCleaningUsageRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDGCleaningUsageRsp ); break; + // RO Water + case Gui::GuiActionType::ID_DuetRoWaterStatDGq : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DuetRoWaterStatDGq ); break; + case Gui::GuiActionType::ID_DuetRoWaterModeDGr : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DuetRoWaterModeDGr ); break; // unhandled messages: these will only be logged as received message // there has nothing been defined for these messages. default : printUnhandled (vMessage ); break; @@ -685,7 +703,7 @@ bool MessageInterpreter::logUnhandledMessage(const Message &vMessage) const { bool ok = false; quint16 id = vMessage.actionId; - QString logString; + QString logString = QString("%1,").arg(id,4,16); if (_messageList.contains(id)) { ok = true; QStringList items = _messageList[id]; @@ -695,10 +713,10 @@ if (i == 0) { QString ID; switch (identifySource(vMessage.can_id, &ID)) { - case Can_Source::eCan_HD: logString = ID + ",~" + item; break; - case Can_Source::eCan_DG: logString = ID + ",~" + item; break; - case Can_Source::eCan_DI: logString = ID + ",~" + item; break; - default : logString = ID + ",~" + item; break; + case Can_Source::eCan_HD: logString += ID + ",~" + item; break; + case Can_Source::eCan_DG: logString += ID + ",~" + item; break; + case Can_Source::eCan_DI: logString += ID + ",~" + item; break; + default : logString += ID + ",~" + item; break; } } else { @@ -736,6 +754,11 @@ Types::U08 param; if (! GetValue(vMessage.data, index, param )) logString += ",?"; else logString += "," + QString::number(param.value); + } else + if ( item == "BOOL" ) { + Types::U32 param; + if (! GetValue(vMessage.data, index, param )) logString += ",?"; + else logString += "," + QString::number(param.value); } } }