Index: denali.pro =================================================================== diff -u -r380136967ba230affe91f614a9805319688eb05b -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- denali.pro (.../denali.pro) (revision 380136967ba230affe91f614a9805319688eb05b) +++ denali.pro (.../denali.pro) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -230,6 +230,7 @@ sources/model/hd/data/treatmentlog/MTreatmentLogEventData.h \ \ # ---------- Models - DG - Adjustment sources/model/dg/adjustment/settings/MAdjustDGRequests.h \ + sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.h \ \ # ---------- Models - DG - Adjustment - Settings sources/model/dg/adjustment/settings/MAdjustDGVersionsResponse.h \ sources/model/dg/adjustment/settings/MAdjustDGDateTimeResponse.h \ @@ -282,6 +283,7 @@ sources/view/settings/VAdjustmentAlarmVolume.h \ sources/view/settings/VAdjustmentServiceMode.h \ sources/view/settings/VAdjustmentServiceDates.h \ + sources/view/settings/VAdjustmentDGCleaningUsage.h \ sources/view/settings/VDuetRoWaterDG.h \ sources/view/settings/VCloudSync.h \ \ # ---------- Views - Alarm @@ -493,6 +495,7 @@ \ # ---------- Models - DG - Adjustment - Settings sources/model/dg/adjustment/settings/MAdjustDGVersionsResponse.cpp \ sources/model/dg/adjustment/settings/MAdjustDGDateTimeResponse.cpp \ + sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.cpp \ \ # ---------- Models - DG - Data - Pre-Treatment - Progress sources/model/dg/data/pretreatment/MDGFilterFlushData.cpp \ \ # ---------- Models - DG - Data - Disinfection - Progress @@ -545,6 +548,7 @@ sources/view/settings/VAdjustmentServiceDates.cpp \ sources/view/settings/VDuetRoWaterDG.cpp \ sources/view/settings/VCloudSync.cpp \ + sources/view/settings/VAdjustmentDGCleaningUsage.cpp \ \ # ---------- Views - HD - Adjustment sources/view/VAdjustmentResponseBase.cpp \ \ # ---------- Views - HD - Adjustment - common Index: denali.pro.user =================================================================== diff -u -r5e1966a8b22d556e9c0c08533f84c6894127b248 -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- denali.pro.user (.../denali.pro.user) (revision 5e1966a8b22d556e9c0c08533f84c6894127b248) +++ denali.pro.user (.../denali.pro.user) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -1,6 +1,6 @@ - + EnvironmentId Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -rd949be21f2a9badd0978dddaaf436f6805de28dc -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision d949be21f2a9badd0978dddaaf436f6805de28dc) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -733,6 +733,17 @@ /*! * \brief MessageDispatcher::onAdjustment + * \details This method transmits the DG Cleaning Usage request message. + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustDGCleaningUsageRequestData &) +{ + QVariantList mData; + onActionTransmit(GuiActionType::ID_AdjustDGCleaningUsageReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment * \details This method transmits the Disinfect request Denali message. * \param vData - Data model contains the epoch time * \return void Index: sources/canbus/MessageDispatcher.h =================================================================== diff -u -r53b262fea2d4b5bd78ff878fda0848f3737e7b74 -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 53b262fea2d4b5bd78ff878fda0848f3737e7b74) +++ sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -149,6 +149,8 @@ // Disinfect GuiActionType::ID_AdjustDisinfectModeReq , GuiActionType::ID_AdjustDisinfectStartReq , + // DG Cleaning + GuiActionType::ID_AdjustDGCleaningUsageReq , // Settings GuiActionType::ID_AdjustServiceModeReq , GuiActionType::ID_AdjustVersionsUIReq , Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -rd949be21f2a9badd0978dddaaf436f6805de28dc -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision d949be21f2a9badd0978dddaaf436f6805de28dc) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -247,6 +247,9 @@ {Gui::GuiActionType::ID_AdjustDisinfectModeRsp , 2 * 4 }, // 2 parameters each 4bytes {Gui::GuiActionType::ID_AdjustDisinfectStartReq , 1 * 4 }, // 1 parameter 4bytes {Gui::GuiActionType::ID_AdjustDisinfectStartRsp , 2 * 4 }, // 2 parameters each 4bytes + // ---- DG Cleaning Usage + {Gui::GuiActionType::ID_AdjustDGCleaningUsageReq , 0 * 4 }, // 0 parameter + {Gui::GuiActionType::ID_AdjustDGCleaningUsageRsp , 10 * 4 }, //10 parameters each 4bytes // ---- RO Water {Gui::GuiActionType::ID_DuetRoWaterStatDGq , 0 * 4 }, // 0 parameter each 4bytes {Gui::GuiActionType::ID_DuetRoWaterModeUIi , 1 * 4 }, // 1 parameter each 4bytes Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -rd949be21f2a9badd0978dddaaf436f6805de28dc -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision d949be21f2a9badd0978dddaaf436f6805de28dc) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -271,6 +271,9 @@ // 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; @@ -570,9 +573,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; + 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; Index: sources/gui/GuiGlobals.cpp =================================================================== diff -u -r6d76149dca70e879f33bf6ed44203d0d06bc523a -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 6d76149dca70e879f33bf6ed44203d0d06bc523a) +++ sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -119,6 +119,8 @@ #include "VPostTreatmentAdjustTreatmentLog.h" // ----- Disinfection #include "VDisinfectAdjustDisinfect.h" +#include "VAdjustmentDGCleaningUsage.h" + // ----- #include "VTreatmentAdjustmentEnd.h" Index: sources/gui/GuiGlobals.h =================================================================== diff -u -rd949be21f2a9badd0978dddaaf436f6805de28dc -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision d949be21f2a9badd0978dddaaf436f6805de28dc) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -271,6 +271,9 @@ ID_AdjustDisinfectStartReq = 0x7F00, // 127 ID_AdjustDisinfectStartRsp = 0x8000, // 128 + ID_AdjustDGCleaningUsageReq = 0xB800, // 184 + ID_AdjustDGCleaningUsageRsp = 0x8D00, // 141 + // RO Water Input Mode ID_DuetRoWaterStatDGq = 0xC300, // 195 DG -> UI // DG initiates Status query ID_DuetRoWaterModeUIi = 0xBC00, // 188 UI -> DG // UI initiates Mode Set || responses to status query Index: sources/gui/qml/main.qml =================================================================== diff -u -re6751c7048908beab6a5572041bef62feaa4662f -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/gui/qml/main.qml (.../main.qml) (revision e6751c7048908beab6a5572041bef62feaa4662f) +++ sources/gui/qml/main.qml (.../main.qml) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -111,6 +111,7 @@ import VPostTreatmentAdjustmentTreatmentLog 0.1 // Disinfection import VDisinfectAdjustDisinfect 0.1 +import VAdjustDGCleaningUsage 0.1 // Confirm import VConfirm 0.1 @@ -239,6 +240,7 @@ // --- Disinfection VDisinfectAdjustDisinfect { id: vDisinfectAdjustDisinfect } + VAdjustDGCleaningUsage { id: vAdjustDGCleaningUsage } Background {} Index: sources/gui/qml/pages/settings/SettingsDGCleaning.qml =================================================================== diff -u -r1399994928085bd96ea57ce2970ed1723ee19ef2 -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/gui/qml/pages/settings/SettingsDGCleaning.qml (.../SettingsDGCleaning.qml) (revision 1399994928085bd96ea57ce2970ed1723ee19ef2) +++ sources/gui/qml/pages/settings/SettingsDGCleaning.qml (.../SettingsDGCleaning.qml) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -47,26 +47,34 @@ ] itemsValueLeftMargin: 500 itemsValue : [ - "" , - vAdjustmentVersions .hdVerDevice , - vAdjustmentVersions .hdVerFPGA , - vAdjustmentVersions .hdSerial , - vAdjustmentVersions .dgVerDevice , - vAdjustmentVersions .dgVerFPGA , - vAdjustmentVersions .dgSerial , + "" , + vAdjustDGCleaningUsage.lastBasicFlushCompleteDate , + vAdjustDGCleaningUsage.lastChemDisStartDate , + vAdjustDGCleaningUsage.lastChemDisCompleteDate , + vAdjustDGCleaningUsage.lastChemDisFlushCompleteDate , + vAdjustDGCleaningUsage.lastHeatDisCompleteDate , + // vAdjustDGCleaningUsage.lastHeatActiveCoolCompleteDate , + // vAdjustDGCleaningUsage.lastFilterFlushCompleteDate , + // vAdjustDGCleaningUsage.lastResetTime , ] itemsText : [ - "Cleaning Last Status" , // title - qsTr("Last Basic Flush Complete" ), - qsTr("Last Chemical Disinfect Start" ), - qsTr("Last Chemical Disinfect Complete" ), - qsTr("Last Chemical Disinfect Flush Complete" ), - qsTr("Last Heat Disinfect Complete" ), + "Cleaning Last Status" , // title + qsTr("Last Basic Flush Complete" ), + qsTr("Last Chemical Disinfect Start" ), + qsTr("Last Chemical Disinfect Complete" ), + qsTr("Last Chemical Disinfect Flush Complete" ), + qsTr("Last Heat Disinfect Complete" ), ] } onVisibleChanged: { - if ( ! visible ) _root.notificationText = "" + if ( ! visible ) { + _root.notificationText = "" + } + else { + vAdjustDGCleaningUsage.doAdjustment() + } + } Footer { id: _footer Index: sources/model/MModel.h =================================================================== diff -u -rd949be21f2a9badd0978dddaaf436f6805de28dc -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/model/MModel.h (.../MModel.h) (revision d949be21f2a9badd0978dddaaf436f6805de28dc) +++ sources/model/MModel.h (.../MModel.h) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -142,6 +142,7 @@ #include "MDisinfectAdjustStartRequests.h" #include "MDisinfectAdjustModeResponse.h" #include "MDisinfectAdjustStartResponse.h" +#include "MAdjustDGCleaningUsageResponse.h" /*! * \page MessageFlow Message interpretation Flow @@ -365,6 +366,8 @@ /* Disinfection */ \ REGISTER_METATYPE( AdjustDisinfectModeRequestData ) \ REGISTER_METATYPE( AdjustDisinfectStartRequestData ) \ + /* DGCleaningUsage */ \ + REGISTER_METATYPE( AdjustDGCleaningUsageRequestData ) \ \ /* Alarms */ \ REGISTER_METATYPE( AlarmSilenceRequestData ) \ @@ -409,6 +412,7 @@ /* Disinfect */ \ REGISTER_METATYPE( AdjustDisinfectModeResponseData ) \ REGISTER_METATYPE( AdjustDisinfectStartResponseData ) \ + REGISTER_METATYPE( AdjustDGCleaningUsageResponseData ) \ \ REGISTER_METATYPE( AdjustBloodDialysateResponseData ) \ REGISTER_METATYPE( AdjustDurationResponseData ) \ @@ -537,6 +541,7 @@ /* Disinfect */ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDisinfectModeResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDisinfectStartResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDGCleaningUsageResponseData ) \ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustBloodDialysateResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDurationResponseData ) \ @@ -611,6 +616,8 @@ /* Disinfection */ \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustDisinfectModeRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustDisinfectStartRequestData ) \ + /* DG Cleaning Usage */ \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustDGCleaningUsageRequestData ) \ /* Alarms */ \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmSilenceRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmUserActionRequestData ) \ @@ -722,6 +729,7 @@ /* Disinfect */ \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDisinfectModeResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDisinfectStartResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDGCleaningUsageResponseData ) \ \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustBloodDialysateResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDurationResponseData ) \ @@ -777,6 +785,8 @@ /* Disinfection */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDisinfectModeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDisinfectStartRequestData ) \ + /* DG Cleaning Usage */ \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDGCleaningUsageRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustBloodDialysateRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDurationRequestData ) \ @@ -832,6 +842,8 @@ /* Disinfection */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDisinfectModeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDisinfectStartRequestData ) \ + /* DG Cleaning Usage */ \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDGCleaningUsageRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustBloodDialysateRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDurationRequestData ) \ @@ -887,6 +899,8 @@ /* Disinfection */ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDisinfectModeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDisinfectStartRequestData ) \ + /* DG Cleaning Usage */ \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDGCleaningUsageRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustBloodDialysateRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDurationRequestData ) \ @@ -1000,6 +1014,7 @@ /* Disinfect */ \ ACTION_RECEIVE_SIGNAL( AdjustDisinfectModeResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustDisinfectStartResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustDGCleaningUsageResponseData ) \ \ ACTION_RECEIVE_SIGNAL( AdjustBloodDialysateResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustDurationResponseData ) \ Index: sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.cpp =================================================================== diff -u --- sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.cpp (revision 0) +++ sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.cpp (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -0,0 +1,77 @@ +/*! + * + * Copyright (c) 2021-2023 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 MAdjustDGCleaningUsageResponse.h + * \author (last) Behrouz NematiPour + * \date (last) 26-May-2023 + * \author (original) Behrouz NematiPour + * \date (original) 26-May-2023 + * + */ +#include "MAdjustDGCleaningUsageResponse.h" + +using namespace Model; + +QVariantList MAdjustDGCleaningUsageResponse::parameters() const { + return { + _data.mRoWaterGenTotalL .value, + _data.mRoWaterGenSinceLastServiceL .value, + _data.mLastBasicFlushCompleteDateEpoch .value, + _data.mLastChemDisStartDateEpoch .value, + _data.mLastChemDisCompleteDateEpoch .value, + _data.mLastChemDisFlushCompleteDateEpoch .value, + _data.mLastHeatDisCompleteDateEpoch .value, + _data.mLastHeatActiveCoolCompleteDateEpoch .value, + _data.mLastFilterFlushCompleteDateEpoch .value, + _data.mLastResetTimeEpoch .value, + }; +} + +bool MAdjustDGCleaningUsageResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mRoWaterGenTotalL )) + if (GetValue(vByteArray, index, _data.mRoWaterGenSinceLastServiceL )) + if (GetValue(vByteArray, index, _data.mLastBasicFlushCompleteDateEpoch )) + if (GetValue(vByteArray, index, _data.mLastChemDisStartDateEpoch )) + if (GetValue(vByteArray, index, _data.mLastChemDisCompleteDateEpoch )) + if (GetValue(vByteArray, index, _data.mLastChemDisFlushCompleteDateEpoch )) + if (GetValue(vByteArray, index, _data.mLastHeatDisCompleteDateEpoch )) + if (GetValue(vByteArray, index, _data.mLastHeatActiveCoolCompleteDateEpoch )) + if (GetValue(vByteArray, index, _data.mLastFilterFlushCompleteDateEpoch )) + if (GetValue(vByteArray, index, _data.mLastResetTimeEpoch )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +/*! + * \brief MAdjustDGCleaningUsageResponse::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +AdjustDGCleaningUsageResponseData MAdjustDGCleaningUsageResponse::data() const { + Data data; + data.mRoWaterGenTotalL = _data.mRoWaterGenTotalL .value; + data.mRoWaterGenSinceLastServiceL = _data.mRoWaterGenSinceLastServiceL .value; + data.mLastBasicFlushCompleteDateEpoch = _data.mLastBasicFlushCompleteDateEpoch .value; + data.mLastChemDisStartDateEpoch = _data.mLastChemDisStartDateEpoch .value; + data.mLastChemDisCompleteDateEpoch = _data.mLastChemDisCompleteDateEpoch .value; + data.mLastChemDisFlushCompleteDateEpoch = _data.mLastChemDisFlushCompleteDateEpoch .value; + data.mLastHeatDisCompleteDateEpoch = _data.mLastHeatDisCompleteDateEpoch .value; + data.mLastHeatActiveCoolCompleteDateEpoch = _data.mLastHeatActiveCoolCompleteDateEpoch .value; + data.mLastFilterFlushCompleteDateEpoch = _data.mLastFilterFlushCompleteDateEpoch .value; + data.mLastResetTimeEpoch = _data.mLastResetTimeEpoch .value; + return data; +} Index: sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.h =================================================================== diff -u --- sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.h (revision 0) +++ sources/model/dg/adjustment/settings/MAdjustDGCleaningUsageResponse.h (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -0,0 +1,106 @@ +/*! + * + * Copyright (c) 2021-2023 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 MAdjustDGCleaningUsageResponse.h + * \author (last) Behrouz NematiPour + * \date (last) 26-May-2023 + * \author (original) Behrouz NematiPour + * \date (original) 26-May-2023 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MAdjustDGCleaningUsageResponse class + * \details The DG Date and Time adjustment response model + * + * | MSG | Type | Ack | Src | Dest | Description | + * |:----:|:----:|:---:|:---:|:----:|:-----------:| + * |0x7000| Rsp | Y | DG | UI | DGCleaningUsage | + * + * | Payload || + * | || + * | #01:(F32) | \ref Data::mRoWaterGenTotalL | + * | #02:(F32) | \ref Data::mRoWaterGenSinceLastServiceL | + * | #03:(U32) | \ref Data::mLastBasicFlushCompleteDateEpoch | + * | #04:(U32) | \ref Data::mLastChemDisStartDateEpoch | + * | #05:(U32) | \ref Data::mLastChemDisCompleteDateEpoch | + * | #06:(U32) | \ref Data::mLastChemDisFlushCompleteDateEpoch | + * | #07:(U32) | \ref Data::mLastHeatDisCompleteDateEpoch | + * | #08:(U32) | \ref Data::mLastHeatActiveCoolCompleteDateEpoch | + * | #09:(U32) | \ref Data::mLastFilterFlushCompleteDateEpoch | + * | #10:(U32) | \ref Data::mLastResetTimeEpoch | + * + * \sa Data + * + *

Logging info

+ * | || + * | || + * | typeText | Event | + * | unitText | DG | + * | infoText | DGCleaningUsage | + * + */ +class MAdjustDGCleaningUsageResponse : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::F32 mRoWaterGenTotalL ; + Types::F32 mRoWaterGenSinceLastServiceL ; + Types::U32 mLastBasicFlushCompleteDateEpoch ; + Types::U32 mLastChemDisStartDateEpoch ; + Types::U32 mLastChemDisCompleteDateEpoch ; + Types::U32 mLastChemDisFlushCompleteDateEpoch ; + Types::U32 mLastHeatDisCompleteDateEpoch ; + Types::U32 mLastHeatActiveCoolCompleteDateEpoch ; + Types::U32 mLastFilterFlushCompleteDateEpoch ; + Types::U32 mLastResetTimeEpoch ; + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eEvent ; } + Unit_Enum unitText () const override { return Unit_Enum::eDG ; } + QString infoText () const override { return QString("DGCleaningUsage") ; } + + struct Data { + float mRoWaterGenTotalL ; + float mRoWaterGenSinceLastServiceL ; + quint32 mLastBasicFlushCompleteDateEpoch ; + quint32 mLastChemDisStartDateEpoch ; + quint32 mLastChemDisCompleteDateEpoch ; + quint32 mLastChemDisFlushCompleteDateEpoch ; + quint32 mLastHeatDisCompleteDateEpoch ; + quint32 mLastHeatActiveCoolCompleteDateEpoch ; + quint32 mLastFilterFlushCompleteDateEpoch ; + quint32 mLastResetTimeEpoch ; + }; + + MAdjustDGCleaningUsageResponse () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MAdjustDGCleaningUsageResponse::Data AdjustDGCleaningUsageResponseData; Index: sources/model/dg/adjustment/settings/MAdjustDGRequests.h =================================================================== diff -u -r53b262fea2d4b5bd78ff878fda0848f3737e7b74 -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/model/dg/adjustment/settings/MAdjustDGRequests.h (.../MAdjustDGRequests.h) (revision 53b262fea2d4b5bd78ff878fda0848f3737e7b74) +++ sources/model/dg/adjustment/settings/MAdjustDGRequests.h (.../MAdjustDGRequests.h) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -32,7 +32,7 @@ */ /*! - * \brief The MAdjustDGDateTime class + * \brief The MAdjustDGDateTimeReq class * \details The model to request starting a treatment * * | MSG | CAN ID | Type | Ack | Src | Dest | Description | @@ -59,6 +59,31 @@ static Can::Can_Id canid () { return Can::Can_Id::eChlid_UI_DG; } }; +/*! + * \brief The MAdjustDGCleaningUsageReq class + * \details The model to request DG Cleaning Usage + * + * | MSG | Type | Ack | Src | Dest | Description | + * |:----:|:----:|:---:|:---:|:----:|:-----------:| + * | 0xB8 | Req | Y | UI | DG | DGCleaningUsage | + * + * | Payload || + * | || + * + */ +class MAdjustDGCleaningUsageReq : public MModel { +public: + QString toString() { + return toString({}); + } + + static QString toString(const QVariantList &vParameters) { + return MModel::toString("DGCleaningUsage", vParameters); + } + + static Can::Can_Id canid () { return Can::Can_Id::eChlid_UI_DG; } +}; } -typedef Model::MAdjustDGDateTimeReq AdjustDGDateTimeRequestData; +typedef Model::MAdjustDGDateTimeReq AdjustDGDateTimeRequestData; +typedef Model::MAdjustDGCleaningUsageReq AdjustDGCleaningUsageRequestData; Index: sources/model/settings/MSettings.cpp =================================================================== diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/model/settings/MSettings.cpp (.../MSettings.cpp) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263) +++ sources/model/settings/MSettings.cpp (.../MSettings.cpp) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -154,6 +154,9 @@ QString category = Storage::Settings_Category_SettingsSystem; QVariant dateFotmat = _Settings.value(category, "Date", "Format"); QVariant timeFotmat = _Settings.value(category, "Time", "Format"); - if (dateFotmat.isValid() && timeFotmat.isValid()) - _datetimeFormat = dateFotmat.toString() + " " + timeFotmat.toString(); + if (dateFotmat.isValid() && timeFotmat.isValid()) { + _dateFormat = dateFotmat.toString(); + _timeFormat = timeFotmat.toString(); + _datetimeFormat = _dateFormat + " " + _timeFormat; + } } Index: sources/model/settings/MSettings.h =================================================================== diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/model/settings/MSettings.h (.../MSettings.h) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263) +++ sources/model/settings/MSettings.h (.../MSettings.h) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -86,9 +86,12 @@ // the utility static functions private : QString _datetimeFormat = "MM/dd/yyyy HH:mm:ss"; +private : QString _dateFormat = "MM/dd/yyyy"; +private : QString _timeFormat = "HH:mm:ss"; public : void datetimeFormat(); public : QString getDatetimeFormat() { return _datetimeFormat; } - +public : QString timeFormat() { return _timeFormat;} +public : QString dateFormat() { return _dateFormat;} }; } Index: sources/view/VView.h =================================================================== diff -u -r6d76149dca70e879f33bf6ed44203d0d06bc523a -r9b54c54dbe75f2bd6d04ea73d48e1247682002e8 --- sources/view/VView.h (.../VView.h) (revision 6d76149dca70e879f33bf6ed44203d0d06bc523a) +++ sources/view/VView.h (.../VView.h) (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -195,5 +195,6 @@ REGISTER_TYPE( VPostTreatmentAdjustmentTreatmentLog ) \ /* Disinfection */ \ REGISTER_TYPE( VDisinfectAdjustDisinfect ) \ + REGISTER_TYPE( VAdjustDGCleaningUsage ) \ //--------------------------------------------------------------------------------// Index: sources/view/settings/VAdjustmentDGCleaningUsage.cpp =================================================================== diff -u --- sources/view/settings/VAdjustmentDGCleaningUsage.cpp (revision 0) +++ sources/view/settings/VAdjustmentDGCleaningUsage.cpp (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -0,0 +1,52 @@ +/*! + * + * Copyright (c) 2022-2023 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 VAdjustmentDGCleaningUsage.h + * \author (last) Behrouz NematiPour + * \date (last) 26-May-2023 + * \author (original) Behrouz NematiPour + * \date (original) 26-May-2023 + * + */ +#include "VAdjustmentDGCleaningUsage.h" + +// Project +#include "GuiController.h" +#include "format.h" + + +VIEW_DEF_CLASS_ADJUSTMENT(VAdjustDGCleaningUsage) + +void View::VAdjustDGCleaningUsage::initConnections() { + ADJUST_VIEW_CONNECTION( AdjustDGCleaningUsageRequestData) + ACTION_VIEW_CONNECTION(AdjustDGCleaningUsageResponseData) + ACTION_VIEW_CONNECTION(SettingsData) +} + +void View::VAdjustDGCleaningUsage::onActionReceive(const AdjustDGCleaningUsageResponseData &vData) +{ + // DG Cleaning Usage + roWaterGenTotalL ( vData.mRoWaterGenTotalL ); + roWaterGenSinceLastServiceL ( vData.mRoWaterGenSinceLastServiceL ); + lastBasicFlushCompleteDate ( Format::fromEpoch(vData.mLastBasicFlushCompleteDateEpoch , _datetimeFormat )); + lastChemDisStartDate ( Format::fromEpoch(vData.mLastChemDisStartDateEpoch , _datetimeFormat )); + lastChemDisCompleteDate ( Format::fromEpoch(vData.mLastChemDisCompleteDateEpoch , _datetimeFormat )); + lastChemDisFlushCompleteDate ( Format::fromEpoch(vData.mLastChemDisFlushCompleteDateEpoch , _datetimeFormat )); + lastHeatDisCompleteDate ( Format::fromEpoch(vData.mLastHeatDisCompleteDateEpoch , _datetimeFormat )); + lastHeatActiveCoolCompleteDate ( Format::fromEpoch(vData.mLastHeatActiveCoolCompleteDateEpoch , _datetimeFormat )); + lastFilterFlushCompleteDate ( Format::fromEpoch(vData.mLastFilterFlushCompleteDateEpoch , _datetimeFormat )); + lastResetTime ( Format::fromEpoch(vData.mLastResetTimeEpoch , _datetimeFormat )); + + // *** has to be the last to let the information to be set and then emit the signal *** + // *** otherwise will use the previous values before being set. *** + adjustment(true); // set here only because adjustment parent needs it, but HD Service does not +} + +void View::VAdjustDGCleaningUsage::onActionReceive(const SettingsData &) +{ + _datetimeFormat = _Settings.dateFormat() + " " + _Settings.timeFormat(); +} Index: sources/view/settings/VAdjustmentDGCleaningUsage.h =================================================================== diff -u --- sources/view/settings/VAdjustmentDGCleaningUsage.h (revision 0) +++ sources/view/settings/VAdjustmentDGCleaningUsage.h (revision 9b54c54dbe75f2bd6d04ea73d48e1247682002e8) @@ -0,0 +1,74 @@ +/*! + * + * Copyright (c) 2022-2023 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 VAdjustmentDGCleaningUsage.h + * \author (last) Behrouz NematiPour + * \date (last) 26-May-2023 + * \author (original) Behrouz NematiPour + * \date (original) 26-May-2023 + * + */ +#pragma once + +#include +#include + +// Project +#include "main.h" // Doxygen : do not remove +#include "VAdjustmentResponseBase.h" +#include "MAdjustDGCleaningUsageResponse.h" +#include "MSettings.h" + +namespace View { + +/*! + * \brief The VAdjustDGCleaningUsage class + * \details View for Model's Data representation. + * + * \sa Model::MAdjustDGCleaningUsageReq + * + */ +class VAdjustDGCleaningUsage : public VAdjustmentResponseBase { + Q_OBJECT + + // friends + friend class ::tst_views; + + QString _datetimeFormat = "yyyy/MM/dd HH:mm"; + + // The property adjustment_Triggered has to be always true + // and to always trigger the change event to work as a notifier for GUI + // has been manually tested that it works perfectly fine + TRIGGER( bool , adjustment , 0) + + // DG Cleaning data + PROPERTY( float , roWaterGenTotalL , 0) + PROPERTY( float , roWaterGenSinceLastServiceL , 0) + PROPERTY( QString , lastBasicFlushCompleteDate , "") + PROPERTY( QString , lastChemDisStartDate , "") + PROPERTY( QString , lastChemDisCompleteDate , "") + PROPERTY( QString , lastChemDisFlushCompleteDate , "") + PROPERTY( QString , lastHeatDisCompleteDate , "") + PROPERTY( QString , lastHeatActiveCoolCompleteDate , "") + PROPERTY( QString , lastFilterFlushCompleteDate , "") + PROPERTY( QString , lastResetTime , "") + + VIEW_DEC_CLASS(VAdjustDGCleaningUsage) + VIEW_DEC_SLOT (AdjustDGCleaningUsageResponseData) + VIEW_DEC_SLOT (SettingsData) + +// ---------- Version +public slots: + void doAdjustment() { + AdjustDGCleaningUsageRequestData data; + emit didAdjustment(data); + } + +signals: + void didAdjustment(const AdjustDGCleaningUsageRequestData &vData); +}; +}