Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r3c07dc803109f716937b692cb4a67a5324bb9ca3 -rb12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 3c07dc803109f716937b692cb4a67a5324bb9ca3) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision b12cc2840bb819c5222bfd3bc2cc5ca6eb4c37fd) @@ -170,8 +170,8 @@ */ void MessageInterpreter::printUnhandled(const Message &vMessage) const { - if ( logUnhandledMessage(vMessage)) return; // the message is defined as unhandled and can still be handled and logged, return. if ( gDisableUnhandledReport ) return; // if the unhandled message error has been disabled, return. + if ( logUnhandledMessage(vMessage)) return; // the message is defined as unhandled and can still be handled and logged, return. QString mActionIdHexString = Format::toHexString(vMessage.actionId, false, eLenMessageIDDigits); QString logMessage = tr("Unhandled Message ID (HD)") + '\n' + QString("%1 # %2 %3") @@ -200,7 +200,6 @@ vCanId = Can::Can_Id::eChlid_UI_TD ; vPayload.clear(); int length = vData.length(); - // DEBUG: LOG_EVENT(QString("0x%0").arg(vActionId, 4, 16,QChar('0'))); switch (vActionId) { // notice we are in transmit mode case Gui::GuiActionType::ID_Acknow: // len: 0, can have zero len @@ -219,24 +218,23 @@ 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; // Settings case Gui::GuiActionType::ID_AdjustServiceModeReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustServiceModeRequestData ); break; case Gui::GuiActionType::ID_AdjustVersionsUIRsp : INTERPRET_TRANSMIT_MESSAGE(AdjustVersionsResponseData ); break; case Gui::GuiActionType::ID_AdjustVersionsUIReq : INTERPRET_TRANSMIT_MESSAGE(AdjustVersionsRequestData ); break; - case Gui::GuiActionType::ID_AdjustHDDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustHDDateTimeRequestData ); break; - case Gui::GuiActionType::ID_AdjustDGDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDGDateTimeRequestData ); break; + case Gui::GuiActionType::ID_AdjustTDDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustTDDateTimeRequestData ); break; + case Gui::GuiActionType::ID_AdjustDDDateTimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDDDateTimeRequestData ); 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; + case Gui::GuiActionType::ID_AdjustInstitutionalRecordReq : INTERPRET_TRANSMIT_MESSAGE(AdjustInstitutionalRequestData ); break; + case Gui::GuiActionType::ID_InstitutionalRecordReq : INTERPRET_TRSMT_MT_MESSAGE(InstitutionalRequestData ); break; + case Gui::GuiActionType::ID_AdjustAdvancedInstitutionalRecordReq : INTERPRET_TRANSMIT_MESSAGE(AdjustAdvancedInstitutionalRequestData ); break; + case Gui::GuiActionType::ID_AdvancedInstitutionalRecordReq : INTERPRET_TRSMT_MT_MESSAGE(AdvancedInstitutionalRequestData ); break; // Pre-Treatment case Gui::GuiActionType::ID_AdjustInitTreatmentReq : INTERPRET_TRANSMIT_MESSAGE(AdjustInitTreatmentRequestData ); break; case Gui::GuiActionType::ID_AdjustParametersValidationReq : INTERPRET_TRANSMIT_MESSAGE(AdjustParametersValidationRequestData ); break; - case Gui::GuiActionType::ID_AdjustParametersConfirmReq : INTERPRET_TRANSMIT_MESSAGE(AdjustParametersConfirmRequestData ); break; - case Gui::GuiActionType::ID_AdjustWaterSampleReq : INTERPRET_TRANSMIT_MESSAGE(AdjustWaterSampleRequestData ); break; case Gui::GuiActionType::ID_AdjustWaterSampleResultReq : INTERPRET_TRANSMIT_MESSAGE(AdjustWaterSampleResultRequestData ); break; case Gui::GuiActionType::ID_AdjustConsumablesConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustConsumablesConfirmRequestData ); break; case Gui::GuiActionType::ID_AdjustDisposablesConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustDisposablesConfirmRequestData ); break; @@ -246,19 +244,33 @@ case Gui::GuiActionType::ID_AdjustPatientConnectionConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientConnectionConfirmRequestData ); break; case Gui::GuiActionType::ID_AdjustStartTreatmentReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustStartTreatmentRequestData ); break; // in-treatment - case Gui::GuiActionType::ID_AdjustDurationReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDurationRequestData ); break; + case Gui::GuiActionType::ID_AdjustBloodPrimeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustBloodPrimeRequestData ); break; + case Gui::GuiActionType::ID_AdjustBolusVolumeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustBolusVolumeRequestData ); break; + case Gui::GuiActionType::ID_AdjustDurationEditReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDurationEditRequestData ); break; + case Gui::GuiActionType::ID_AdjustDurationConfirmReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDurationConfirmRequestData ); break; + case Gui::GuiActionType::ID_AdjustSetPointsReq : INTERPRET_TRANSMIT_MESSAGE(AdjustSetPointsRequestData ); break; + case Gui::GuiActionType::ID_AdjustVitalsAlarmLimitsReq : INTERPRET_TRANSMIT_MESSAGE(AdjustVitalsAlarmLimitsRequestData ); break; + case Gui::GuiActionType::ID_AdjustBloodFlowRateReq : INTERPRET_TRANSMIT_MESSAGE(AdjustBloodFlowRateRequestData ); break; + case Gui::GuiActionType::ID_AdjustDialysateFlowRateReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDialysateFlowRateRequestData ); break; + case Gui::GuiActionType::ID_AdjustDialysateTemperatureReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDialysateTemperatureRequestData ); break; + case Gui::GuiActionType::ID_AdjustBloodDialysateReq : INTERPRET_TRANSMIT_MESSAGE(AdjustBloodDialysateRequestData ); break; case Gui::GuiActionType::ID_AdjustPressuresLimitsReq : INTERPRET_TRANSMIT_MESSAGE(AdjustPressuresLimitsRequestData ); break; + case Gui::GuiActionType::ID_AdjustPressuresWideningReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPressuresWideningRequestData ); break; case Gui::GuiActionType::ID_AdjustSalineReq : INTERPRET_TRANSMIT_MESSAGE(AdjustSalineRequestData ); break; + case Gui::GuiActionType::ID_AdjustVitalsReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustVitalsRequestData ); break; case Gui::GuiActionType::ID_AdjustHeparinReq : INTERPRET_TRANSMIT_MESSAGE(AdjustHeparinRequestData ); break; // in-treatment - ultrafiltration case Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq : INTERPRET_TRANSMIT_MESSAGE(AdjustUltrafiltrationStateRequestData ); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationEditReq : INTERPRET_TRANSMIT_MESSAGE(AdjustUltrafiltrationEditRequestData ); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmReq : INTERPRET_TRANSMIT_MESSAGE(AdjustUltrafiltrationConfirmRequestData ); break; + case Gui::GuiActionType::ID_AdjustIsolatedUFDurationEditReq : INTERPRET_TRANSMIT_MESSAGE(AdjustIsolatedUFDurationEditRequestData ); break; + case Gui::GuiActionType::ID_AdjustIsolatedUFVolumeEditReq : INTERPRET_TRANSMIT_MESSAGE(AdjustIsolatedUFVolumeEditRequestData ); break; + case Gui::GuiActionType::ID_AdjustIsolatedUFConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustIsolatedUFConfirmRequestData ); break; // End-Treatment case Gui::GuiActionType::ID_AdjustRinsebackReq : INTERPRET_TRANSMIT_MESSAGE(AdjustRinsebackRequestData ); break; case Gui::GuiActionType::ID_AdjustRecirculateReq : INTERPRET_TRANSMIT_MESSAGE(AdjustRecirculateRequestData ); break; - case Gui::GuiActionType::ID_AdjustTreatmentEndReq : INTERPRET_TRANSMIT_MESSAGE(AdjustTreatmentEndRequestData ); break; + case Gui::GuiActionType::ID_AdjustTreatmentEndReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustTreatmentEndRequestData ); break; // Post-Treatment case Gui::GuiActionType::ID_AdjustPatientDisconnectNotifyReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientDisconnectionNotifyRequestData ); break; case Gui::GuiActionType::ID_AdjustPatientDisconnectConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientDisconnectionConfirmRequestData ); break; @@ -307,14 +319,14 @@ return Can_Source::eCan_TD; case eChlid_DD_TD : + case eChlid_DD_FP : //case eChlid_DD_UI : // has duplicate value as eChlid_DD_Sync case eChlid_DD_Alarm: case eChlid_DD_Sync : if (vText) *vText = "DD"; return Can_Source::eCan_DD; - case eChlid_DD_FP : - //case eChlid_FP_UI : + //case eChlid_FP_UI : // has duplicate value as eChlid_FP_Sync case eChlid_FP_Alarm: case eChlid_FP_Sync : if (vText) *vText = "FP"; @@ -357,18 +369,18 @@ return Can_Id::eChlid_UI_TD; //case eChlid_DD_UI : // has duplicate value as eChlid_DD_Sync + case eChlid_DD_FP : case eChlid_DD_Alarm: case eChlid_DD_Sync : if (vText) *vText = "DD"; return Can_Id::eChlid_UI_DD; // FP is not designed to directly communicate with UI - //case eChlid_DD_FP : - //case eChlid_FP_UI : - //case eChlid_FP_Alarm: - //case eChlid_FP_Sync : - // if (vText) *vText = "FP"; - // return Can_Id::eChlid_UI_Sync; + //case eChlid_FP_UI : // has duplicate value as eChlid_FP_Sync + case eChlid_FP_Alarm: + case eChlid_FP_Sync : + if (vText) *vText = "FP"; + return Can_Id::eChlid_UI_Sync; case eDialin_TD : case eTD_Dialin : @@ -411,8 +423,9 @@ if ( ! gLogUnhandledOnly ) { switch (identifySource(vMessage.can_id)) { - case Can_Source::eCan_TD: ok = interpretMessage_HD(vMessage, vData); break; - case Can_Source::eCan_DD: ok = interpretMessage_DG(vMessage, vData); break; + case Can_Source::eCan_TD: ok = interpretMessage_TD(vMessage, vData); break; + case Can_Source::eCan_DD: ok = interpretMessage_DD(vMessage, vData); break; + case Can_Source::eCan_FP: ok = interpretMessage_FP(vMessage, vData); break; default : printUnhandled (vMessage ); break; // ok is false, the individual interpreters for ?HD/DG should not be called, and it should be done here. } } @@ -424,9 +437,9 @@ } /*! - * \brief MessageInterpreter::interpretMessage_HD + * \brief MessageInterpreter::interpretMessage_TD * \details This method will be called - * for received messages from HD to interpret the vMessage of type Message + * for received messages from TD to interpret the vMessage of type Message * to vData of type QVariantList which UI understands regarding the Can_Id. * \param vMessage - The complete message of type Message which needs to be interpreted. * \param vActionId - The ActionId of GuiActionType which will be extracted from vMessage. @@ -436,23 +449,20 @@ * \return true if the message CANBus channel is in the range which can be interpreted, false otherwise. * This return value will be used later to emit MessageDispatcher::didActionReceive signal or not */ -bool MessageInterpreter::interpretMessage_HD(const Message &vMessage, QVariantList &vData) +bool MessageInterpreter::interpretMessage_TD(const Message &vMessage, QVariantList &vData) { bool ok = false; vData.clear(); switch (vMessage.actionId) { // notice we are in receive mode // ----- Debug - case Gui::GuiActionType::ID_CANBusFaultCount : ok = canbusFaultCountData (vMessage, vData); /* TODO : implement notify<>() */ break; case Gui::GuiActionType::ID_TDDebugText : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TDDebugText ); break; case Gui::GuiActionType::ID_HDGeneralEvent : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDGeneralEvent ); break; // ----- Events case Gui::GuiActionType::ID_Acknow : ok = true; /* TODO : implement notify<>() */ break; - case Gui::GuiActionType::ID_PowerOff : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PowerOff ); break; - case Gui::GuiActionType::ID_ShuttingDown : ok = true; LOG_APPED("HD,ShuttingDown"); /* TODO : implement notify<>() */ break; + case Gui::GuiActionType::ID_PowerOffWarning : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PowerOffWarning ); break; + case Gui::GuiActionType::ID_DuetConfirmTDi : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DuetConfirmTDi ); break; - case Gui::GuiActionType::ID_DuetConfirmHDi : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DuetConfirmHDi ); break; - // ----- POST 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; @@ -465,10 +475,15 @@ case Gui::GuiActionType::ID_AdjustVersionsTDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustVersionsTDRsp ); break; case Gui::GuiActionType::ID_AdjustSerialTDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSerialTDRsp ); 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_AdjustTDDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustTDDateTimeRsp ); 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_InstitutionalRecordRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_InstitutionalRecordRsp ); break; + case Gui::GuiActionType::ID_AdjustAdvancedInstitutionalRecordRsp: ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustAdvancedInstitutionalRecordRsp); break; + case Gui::GuiActionType::ID_AdvancedInstitutionalRecordRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdvancedInstitutionalRecordRsp ); break; + + + // ----- States case Gui::GuiActionType::ID_TDOpModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TDOpModeData ); break; case Gui::GuiActionType::ID_PreTreatmentStates : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PreTreatmentStates ); break; case Gui::GuiActionType::ID_TreatmentStates : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentStates ); break; @@ -495,16 +510,18 @@ case Gui::GuiActionType::ID_SelfTestNoCartridgeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_SelfTestNoCartridgeData ); break; case Gui::GuiActionType::ID_SelfTestDryData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_SelfTestDryData ); break; case Gui::GuiActionType::ID_DisposablesPrimeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DisposablesPrimeData ); break; - // ----- Pre-Treatment - Adjust + + // ----- Pre-Treatment - Adjust case Gui::GuiActionType::ID_AdjustInitTreatmentRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustInitTreatmentRsp ); break; case Gui::GuiActionType::ID_AdjustParametersValidationRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustParametersValidationRsp ); break; - case Gui::GuiActionType::ID_AdjustWaterSampleRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustWaterSampleRsp ); break; + case Gui::GuiActionType::ID_AdjustWaterSampleResultRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustWaterSampleResultRsp ); break; case Gui::GuiActionType::ID_AdjustDisposablesConfirmRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDisposablesConfirmRsp ); break; case Gui::GuiActionType::ID_AdjustDisposablesPrimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDisposablesPrimeRsp ); break; case Gui::GuiActionType::ID_AdjustPatientConnectionBeginRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustPatientConnectionBeginRsp ); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationInitRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationInitRsp ); break; case Gui::GuiActionType::ID_AdjustPatientConnectionConfirmRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustPatientConnectionConfirmRsp ); break; case Gui::GuiActionType::ID_AdjustStartTreatmentRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustStartTreatmentRsp ); break; + case Gui::GuiActionType::ID_AdjustWaterSampleData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustWaterSampleData ); break; // ----- In-Treatment - Datum case Gui::GuiActionType::ID_TreatmentTime : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentTime ); break; @@ -513,23 +530,38 @@ case Gui::GuiActionType::ID_DialysateOutletFlow : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DialysateOutletFlow ); break; case Gui::GuiActionType::ID_PressureOcclusion : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PressureOcclusion ); break; case Gui::GuiActionType::ID_Saline : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Saline ); break; + case Gui::GuiActionType::ID_Vitals : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Vitals ); break; case Gui::GuiActionType::ID_Heparin : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Heparin ); break; case Gui::GuiActionType::ID_Rinseback : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Rinseback ); break; case Gui::GuiActionType::ID_Recirculate : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Recirculate ); break; case Gui::GuiActionType::ID_BloodPrime : ok = notify(vMessage, vData, Gui::GuiActionType::ID_BloodPrime ); break; case Gui::GuiActionType::ID_TreatmentStop : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentStop ); break; case Gui::GuiActionType::ID_Ultrafiltration : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Ultrafiltration ); break; + case Gui::GuiActionType::ID_IsolatedUF : ok = notify(vMessage, vData, Gui::GuiActionType::ID_IsolatedUF ); break; case Gui::GuiActionType::ID_TreatmentParametersSetPointData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentParametersSetPointData ); break; // ----- In-Treatment Adjust - case Gui::GuiActionType::ID_AdjustDurationRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDurationRsp ); break; + case Gui::GuiActionType::ID_AdjustBloodPrimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustBloodPrimeRsp ); break; + case Gui::GuiActionType::ID_AdjustDurationEditRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDurationEditRsp ); break; + case Gui::GuiActionType::ID_AdjustDurationConfirmRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDurationConfirmRsp ); break; + case Gui::GuiActionType::ID_AdjustSetPointsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSetPointsRsp ); break; + case Gui::GuiActionType::ID_AdjustVitalsAlarmLimitsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustVitalsAlarmLimitsRsp ); break; + case Gui::GuiActionType::ID_AdjustBloodFlowRateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustBloodFlowRateRsp ); break; + case Gui::GuiActionType::ID_AdjustDialysateFlowRateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDialysateFlowRateRsp ); break; + case Gui::GuiActionType::ID_AdjustDialysateTemperatureRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDialysateTemperatureRsp ); break; + case Gui::GuiActionType::ID_AdjustBolusVolumeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustBolusVolumeRsp ); break; case Gui::GuiActionType::ID_AdjustBloodDialysateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustBloodDialysateRsp ); break; case Gui::GuiActionType::ID_AdjustPressuresLimitsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustPressuresLimitsRsp ); break; + case Gui::GuiActionType::ID_AdjustPressuresWideningRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustPressuresWideningRsp ); break; case Gui::GuiActionType::ID_AdjustSalineRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSalineRsp ); break; + case Gui::GuiActionType::ID_AdjustVitalsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustVitalsRsp ); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationStateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationStateRsp ); break; case Gui::GuiActionType::ID_AdjustHeparinRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHeparinRsp ); break; case Gui::GuiActionType::ID_AdjustRinsebackRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustRinsebackRsp ); break; case Gui::GuiActionType::ID_AdjustRecirculateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustRecirculateRsp ); break; case Gui::GuiActionType::ID_AdjustTreatmentEndRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustTreatmentEndRsp ); break; + case Gui::GuiActionType::ID_AdjustIsolatedUFDurationEditRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustIsolatedUFDurationEditRsp ); break; + case Gui::GuiActionType::ID_AdjustIsolatedUFVolumeEditRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustIsolatedUFVolumeEditRsp ); break; + case Gui::GuiActionType::ID_AdjustIsolatedUFConfirmRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustIsolatedUFConfirmRsp ); break; // ----- Post-Treatment Adjust case Gui::GuiActionType::ID_AdjustPatientDisconnectConfirmRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustPatientDisconnectConfirmRsp ); break; @@ -543,8 +575,8 @@ case Gui::GuiActionType::ID_AdjustDisinfectModeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDisinfectModeRsp ); break; case Gui::GuiActionType::ID_AdjustDisinfectStartRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDisinfectStartRsp ); break; // these need to be standard and use notify as well - case Gui::GuiActionType::ID_AdjustUltrafiltrationEditRsp : ok = adjustUltrafiltrationEdit (vMessage, vData); /* TODO : implement notify<>() */ break; - case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmRsp : ok = adjustUltrafiltrationConfirm (vMessage, vData); /* TODO : implement notify<>() */ break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationEditRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationEditRsp ); break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmRsp ); break; // ----- Alarms case Gui::GuiActionType::ID_AlarmStatus : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmStatus ); break; @@ -556,16 +588,17 @@ // unhandled messages: these will only be logged as received message // there has nothing been defined for these messages. - default : printUnhandled (vMessage ); break; +// default : printUnhandled (vMessage ); break; + default: break; //FIXME later enabled } return ok; } /*! - * \brief MessageInterpreter::interpretMessage_DG + * \brief MessageInterpreter::interpretMessage_DD * \details This method will be called - * for received messages from DG to interpret the vMessage of type Message + * for received messages from DD to interpret the vMessage of type Message * to vData of type QVariantList which UI understands regarding the Can_Id. * \param vMessage - The complete message of type Message which needs to be interpreted. * \param vActionId - The ActionId of GuiActionType which will be extracted from vMessage. @@ -575,133 +608,112 @@ * \return true if the message CANBus channel is in the range which can be interpreted, false otherwise. * This return value will be used later to emit MessageDispatcher::didActionReceive signal or not */ -bool MessageInterpreter::interpretMessage_DG(const Message &vMessage, QVariantList &vData) +bool MessageInterpreter::interpretMessage_DD(const Message &vMessage, QVariantList &vData) { bool ok = false; vData.clear(); switch (vMessage.actionId) { // notice we are in receive mode case Gui::GuiActionType::ID_Acknow : ok = true; /* TODO : implement notify<>() */ break; LOG_APPED(QString("DD,CheckIn," + QVariant(vData).toStringList().join(','))); break; + + /* // ----- POST case Gui::GuiActionType::ID_DGPostSingleResultData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGPostSingleResultData ); break; case Gui::GuiActionType::ID_DGPostFinalResultData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGPostFinalResultData ); break; // DG data messages case Gui::GuiActionType::ID_DGROPumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGROPumpData ); break; - case Gui::GuiActionType::ID_DDPressuresData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDPressuresData ); break; case Gui::GuiActionType::ID_DGDrainPumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGDrainPumpData ); break; - case Gui::GuiActionType::ID_DGOperationModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGOperationModeData ); break; case Gui::GuiActionType::ID_DGReservoirData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGReservoirData ); break; - case Gui::GuiActionType::ID_DDValvesStatesData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDValvesStatesData ); break; - case Gui::GuiActionType::ID_DDHeatersData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDHeatersData ); break; case Gui::GuiActionType::ID_DGLoadCellReadingsData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGLoadCellReadingsData ); break; - case Gui::GuiActionType::ID_DDConcentratePumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDConcentratePumpData ); break; - case Gui::GuiActionType::ID_DDTemperaturesData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDTemperaturesData ); break; - case Gui::GuiActionType::ID_DDDialysatePumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDDialysatePumpData ); break; case Gui::GuiActionType::ID_DDDebugText : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDDebugText ); break; case Gui::GuiActionType::ID_DGGeneralEvent : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGGeneralEvent ); break; case Gui::GuiActionType::ID_DGAccelerometerData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGAccelerometerData ); break; - case Gui::GuiActionType::ID_DDConductivityData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDConductivityData ); break; - case Gui::GuiActionType::ID_DDGenDialysateData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDGenDialysateData ); break; - case Gui::GuiActionType::ID_DDLevelData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDLevelData ); break; - case Gui::GuiActionType::ID_DDBloodLeakData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDBloodLeakData ); break; // ----- Datum - Pre-Treatment progress case Gui::GuiActionType::ID_DGFilterFlushData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGFilterFlushData ); break; // DG Response Messages - case Gui::GuiActionType::ID_AdjustVersionsDDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustVersionsDDRsp ); break; - case Gui::GuiActionType::ID_AdjustSerialDDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSerialDDRsp ); 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; - } + */ + /////////////////////////////////////// + //// FIXME: RO LOOP TEST + /////////////////////////////////////// + /// + // DD data messages - return ok; -} + case Gui::GuiActionType::ID_DDGenDialysateData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDGenDialysateData ); break; + case Gui::GuiActionType::ID_DDConductivityData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDConductivityData ); break; + case Gui::GuiActionType::ID_DDConcentratePumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDConcentratePumpData ); break; + case Gui::GuiActionType::ID_DDDialysatePumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDDialysatePumpData ); break; + case Gui::GuiActionType::ID_DDHeatersData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDHeatersData ); break; + case Gui::GuiActionType::ID_DDTemperaturesData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDTemperaturesData ); break; + case Gui::GuiActionType::ID_DDPressuresData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDPressuresData ); break; + case Gui::GuiActionType::ID_DDLevelData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDLevelData ); break; + case Gui::GuiActionType::ID_DDBloodLeakData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDBloodLeakData ); break; + case Gui::GuiActionType::ID_DDValvesStatesData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDValvesStatesData ); break; -// ---------- ---------- Message handlers ---------- ---------- // + case Gui::GuiActionType::ID_AdjustDDDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDDDateTimeRsp ); break; + case Gui::GuiActionType::ID_DDOperationModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDOperationModeData ); break; + case Gui::GuiActionType::ID_AdjustVersionsDDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustVersionsDDRsp ); break; + case Gui::GuiActionType::ID_AdjustSerialDDRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSerialDDRsp ); break; -// ---------- ---------- ---------- ---------- ---------- Debug ---------- ---------- ---------- ---------- ---------- // -/*! - * \brief MessageInterpreter::canbusFaultCountData - * \details This method interprets Fault Count message data - * in vMessage of type Message. This message is only used for debugging purposes. - * \param vMessage - The vMessage of type Message which contains all the data, - * require to be interpreted. - * \param vData - Fault Count data - * \return true if the data can be extracted as defined for Fault Count Message ID - */ -bool MessageInterpreter::canbusFaultCountData(const Message &vMessage, QVariantList &vData) -{ - // TODO : review other methods - bool ok = false; - if ( ! isValidMessage(vMessage, Gui::GuiActionType::ID_CANBusFaultCount) ) return ok; - - QVariantList mData; - int index = 0; - Types::U32 mCanBUSFaultCount; - ok = GetValue(vMessage.data, index, mCanBUSFaultCount); - // developer safety if for any reason length of CanBUSFaultCount set to 0 - if (ok) { - vData += mCanBUSFaultCount.value; + default: break; //FIXME later enabled } - return ok; -} -// ---------- ---------- ---------- ---------- ---------- Adjustments ---------- ---------- ---------- ---------- ---------- // -/*! - * \brief MessageInterpreter::adjustUltrafiltrationEditData - * \details This method interprets Treatment Ultrafiltration Volume Adjustment Response message data - * in vMessage of type Message. - * \param vMessage - The vMessage of type Message which contains all the data, - * require to be interpreted. - * \param vData - Treatment Ultrafiltration Volume Adjustment Response data - * \return true if the data can be extracted as defined for Treatment Ultrafiltration Volume Adjustment Response Message ID - */ -bool MessageInterpreter::adjustUltrafiltrationEdit(const Message &vMessage, QVariantList &vData) -{ - bool ok = false; - if ( ! isValidMessage(vMessage, Gui::GuiActionType::ID_AdjustUltrafiltrationEditRsp) ) return ok; - - Model::MAdjustUltrafiltrationEditResponse mData; - ok = mData.fromByteArray(vMessage.data); - LOG_APPED("HD," + mData.toString()); // TODO : Not Standard - - mData.toVariantList(vData); - emit didActionReceive(mData.data()); - return ok; } /*! - * \brief MessageInterpreter::adjustUltrafiltrationConfirmData - * \details This method interprets Treatment Ultrafiltration Volume Adjustment Confirm Response message data - * in vMessage of type Message. - * \param vMessage - The vMessage of type Message which contains all the data, - * require to be interpreted. - * \param vData - Treatment Ultrafiltration Volume Adjustment Confirm Response data - * \return true if the data can be extracted as defined for Treatment Ultrafiltration Volume Adjustment Confirm Response Message ID + * \brief MessageInterpreter::interpretMessage_FP + * \details This method will be called + * for received messages from FP to interpret the vMessage of type Message + * to vData of type QVariantList which UI understands regarding the Can_Id. + * \param vMessage - The complete message of type Message which needs to be interpreted. + * \param vActionId - The ActionId of GuiActionType which will be extracted from vMessage. + * \param vData - The values of QVariantList which is understandable for UI + * and has been extracted from hex values of the CANBus Message Payload + * in vMessage of type Message regarding each Message Id definition. + * \return true if the message CANBus channel is in the range which can be interpreted, false otherwise. + * This return value will be used later to emit MessageDispatcher::didActionReceive signal or not */ -bool MessageInterpreter::adjustUltrafiltrationConfirm(const Message &vMessage, QVariantList &vData) +bool MessageInterpreter::interpretMessage_FP(const Message &vMessage, QVariantList &vData) { - bool ok = false; - if ( ! isValidMessage(vMessage, Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmRsp) ) return ok; + bool ok = false; + vData.clear(); + switch (vMessage.actionId) { // notice we are in receive mode + case Gui::GuiActionType::ID_Acknow : ok = true; /* TODO : implement notify<>() */ break; + LOG_APPED(QString("FP,CheckIn," + QVariant(vData).toStringList().join(','))); break; - Model::MAdjustUltrafiltrationConfirmResponse mData; - ok = mData.fromByteArray(vMessage.data); - LOG_APPED("HD," + mData.toString()); // TODO : Not Standard + // FP data messages + case Gui::GuiActionType::ID_FPROPumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPROPumpData ); break; + case Gui::GuiActionType::ID_FPPressuresData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPPressuresData ); break; + case Gui::GuiActionType::ID_FPLevelData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPLevelData ); break; + case Gui::GuiActionType::ID_FPFlowSensorData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPFlowSensorData ); break; + case Gui::GuiActionType::ID_FPConductivityData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPConductivityData ); break; + case Gui::GuiActionType::ID_FPTemperaturesData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPTemperaturesData ); break; + case Gui::GuiActionType::ID_FPROBoosterPumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPROBoosterPumpData ); break; + case Gui::GuiActionType::ID_FPRORejectionPercentageData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPRORejectionPercentageData ); break; - mData.toVariantList(vData); - emit didActionReceive(mData.data()); + // FP Response Messages + case Gui::GuiActionType::ID_AdjustVersionsFPRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustVersionsFPRsp ); break; + // unhandled messages: these will only be logged as received message + // there has nothing been defined for these messages. +// default : printUnhandled (vMessage ); break; + default: break; //FIXME later enabled + } + return ok; } +// ---------- ---------- Message handlers ---------- ---------- // +// ---------- ---------- ---------- ---------- ---------- Adjustments ---------- ---------- ---------- ---------- ---------- // /*! * \brief MessageInterpreter::updateUnhandledMessages * \return this method is converting the general settings messages/unhandled (Storage::Settings_Category_MessagesUnhandled) group of settings to the message interpreter specific map structure. @@ -714,7 +726,7 @@ QString category = Storage::Settings_Category_MessagesUnhandled; QStringList groups = _Settings.groups(category); // DEBUG: qDebug() << groups; - for(const auto &group: qAsConst(groups)) { + for (const auto &group: std::as_const(groups)) { bool ok; quint16 id = QString(group).toUInt(&ok,16); if (!ok) continue;