Index: denali.pro =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- denali.pro (.../denali.pro) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ denali.pro (.../denali.pro) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -89,6 +89,7 @@ \ # ---------- Models - HD - Adjustment sources/model/hd/adjustment/MTreatmentAdjustHDVersionsResponse.h \ sources/model/hd/adjustment/MAdjustHDDateTimeResponse.h \ + sources/model/hd/adjustment/MAdjustHDServiceResponse.h \ \ # ---------- Models - HD - Adjustment - In-Treatment sources/model/hd/adjustment/MTreatmentAdjustRequests.h \ sources/model/hd/adjustment/MTreatmentAdjustDurationResponse.h \ @@ -122,6 +123,7 @@ \ # ---------- Models - DG - Adjustment sources/model/dg/adjustment/MTreatmentAdjustDGVersionsResponse.h \ sources/model/dg/adjustment/MAdjustDGDateTimeResponse.h \ + sources/model/dg/adjustment/MAdjustDGServiceResponse.h \ \ # ---------- Models - DG - Data sources/model/dg/data/MDGDrainPumpData.h \ sources/model/dg/data/MDGHeatersData.h \ @@ -252,6 +254,7 @@ \ # ---------- Models - HD - Adjustment - In-Treatment sources/model/hd/adjustment/MTreatmentAdjustHDVersionsResponse.cpp \ sources/model/hd/adjustment/MAdjustHDDateTimeResponse.cpp \ + sources/model/hd/adjustment/MAdjustHDServiceResponse.cpp \ \ # ---------- Models - HD - Adjustment - In-Treatment sources/model/hd/adjustment/MTreatmentAdjustDurationResponse.cpp \ sources/model/hd/adjustment/MTreatmentAdjustBloodDialysateResponse.cpp \ @@ -284,6 +287,7 @@ \ # ---------- Models - DG - Adjustment sources/model/dg/adjustment/MTreatmentAdjustDGVersionsResponse.cpp \ sources/model/dg/adjustment/MAdjustDGDateTimeResponse.cpp \ + sources/model/dg/adjustment/MAdjustDGServiceResponse.cpp \ \ # ---------- Models - DG - Data sources/model/dg/data/MDGDrainPumpData.cpp \ sources/model/dg/data/MDGHeatersData.cpp \ Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -rb5a7852d2637f7969680fbd3d2c821a6a74a8ccd -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision b5a7852d2637f7969680fbd3d2c821a6a74a8ccd) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -510,6 +510,19 @@ } /*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the DG Set Date Time Denali message. + * \param vData - Data model contains the epoch time + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustServiceRequestData &vData) +{ + Q_UNUSED(vData); + QVariantList mData; + onActionTransmit(GuiActionType::ID_AdjustServiceReq, mData); +} + +/*! * \brief MessageDispatcher::actionTransmit * \details This method is called by slot MessageDispatcher::onActionTransmit * which emits didFrameTransmit on successful interpretation of the requested message Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -157,6 +157,9 @@ {Gui::GuiActionType::ID_AdjustDGVersionsRsp , 9 }, // 9 parameters each 4bytes {Gui::GuiActionType::ID_HDSerialNumberRsp , 10 }, // 10 parameters each 4bytes {Gui::GuiActionType::ID_DGSerialNumberRsp , 10 }, // 10 parameters each 4bytes + {Gui::GuiActionType::ID_AdjustServiceReq , 0 }, // 0 parameters each 4bytes + {Gui::GuiActionType::ID_HDAdjustServiceRsp , 2 * 4 }, // 2 parameters each 4bytes + {Gui::GuiActionType::ID_DGAdjustServiceRsp , 2 * 4 }, // 2 parameters each 4bytes // ---- RTC {Gui::GuiActionType::ID_AdjustHDDateTimeReq , 1 * 4 }, // 1 parameters each 4bytes Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -235,6 +235,7 @@ case Gui::GuiActionType::ID_AdjustVersionsReq : INTERPRET_RECVD_MT_MESSAGE(AdjustVersionsRequestData ); break; case Gui::GuiActionType::ID_AdjustHDDateTimeReq : INTERPRET_RECEIVED_MESSAGE(AdjustHDDateTimeRequestData ); break; case Gui::GuiActionType::ID_AdjustDGDateTimeReq : INTERPRET_RECEIVED_MESSAGE(AdjustDGDateTimeRequestData ); break; + case Gui::GuiActionType::ID_AdjustServiceReq : INTERPRET_RECVD_MT_MESSAGE(AdjustServiceRequestData ); break; // in-treatment case Gui::GuiActionType::ID_AdjustDurationReq : INTERPRET_RECEIVED_MESSAGE(AdjustDurationRequestData ); break; case Gui::GuiActionType::ID_AdjustBloodDialysateReq : INTERPRET_RECEIVED_MESSAGE(AdjustBloodDialysateRequestData ); break; @@ -358,8 +359,9 @@ 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_AdjustHDVersionsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHDVersionsRsp ); break; - case Gui::GuiActionType::ID_AdjustHDDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHDDateTimeRsp ); break; + case Gui::GuiActionType::ID_AdjustHDVersionsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHDVersionsRsp ); break; + case Gui::GuiActionType::ID_AdjustHDDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHDDateTimeRsp ); break; + case Gui::GuiActionType::ID_HDAdjustServiceRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDAdjustServiceRsp ); break; // these need to be standard and use notify as well case Gui::GuiActionType::ID_AdjustUltrafiltrationEditRsp : ok = adjustUltrafiltrationEdit (vMessage, vData); break; // TODO : implement notify<>() @@ -422,6 +424,7 @@ case Gui::GuiActionType::ID_AdjustDGVersionsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDGVersionsRsp ); break; case Gui::GuiActionType::ID_AdjustDGDateTimeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDGDateTimeRsp ); break; case Gui::GuiActionType::ID_DGSerialNumberRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGSerialNumberRsp ); break; + case Gui::GuiActionType::ID_DGAdjustServiceRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGAdjustServiceRsp ); break; // unhandled messages: these will only be logged as received message Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -169,6 +169,9 @@ // independent bidirectional ID_AdjustVersionsReq = 0x1C00, // 28 + ID_AdjustServiceReq = 0x8900, // 137 + ID_HDAdjustServiceRsp = 0x8A00, // 138 + ID_DGAdjustServiceRsp = 0x8C00, // 140 ID_AdjustHDVersionsRsp = 0x1D00, // 29 ID_AdjustDGVersionsRsp = 0x1E00, // 30 ID_HDSerialNumberRsp = 0x8700, // 135 Index: sources/gui/qml/pages/SettingsDeviceInformation.qml =================================================================== diff -u -rc3bf2cd135f9351e16eb0f4237f71a7be38a4ce4 -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/gui/qml/pages/SettingsDeviceInformation.qml (.../SettingsDeviceInformation.qml) (revision c3bf2cd135f9351e16eb0f4237f71a7be38a4ce4) +++ sources/gui/qml/pages/SettingsDeviceInformation.qml (.../SettingsDeviceInformation.qml) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -49,8 +49,8 @@ } InformationTable { id: _table - leftColumnTitle: "Versions" - rightColumnTitle: "System Usage" + leftColumnTitle: qsTr("Versions") + rightColumnTitle: qsTr("Service") anchors { horizontalCenter: _root.horizontalCenter bottomMargin: 2*Variables.mainMenuHeight Index: sources/gui/qml/pages/SettingsHome.qml =================================================================== diff -u -r50199c98f47d614c1e3132963f68d3a81692e9e1 -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/gui/qml/pages/SettingsHome.qml (.../SettingsHome.qml) (revision 50199c98f47d614c1e3132963f68d3a81692e9e1) +++ sources/gui/qml/pages/SettingsHome.qml (.../SettingsHome.qml) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -139,7 +139,11 @@ anchors.centerIn: parent SettingsItem { id: _item_ title : qsTr("Device Information") - onClicked: _settingsStack.push(_deviceInformation) + onClicked: { + vDeviceInformation.doRequestHDDGVersions() + vDeviceInformation.doRequestServiceData() + _settingsStack.push(_deviceInformation) + } } SettingsItem { id: _item_bluetooth Index: sources/model/MModel.h =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/model/MModel.h (.../MModel.h) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ sources/model/MModel.h (.../MModel.h) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -74,6 +74,8 @@ #include "MAdjustDGDateTimeResponse.h" #include "MHDSerialNumberResponse.h" #include "MDGSerialNumberResponse.h" +#include "MAdjustHDServiceResponse.h" +#include "MAdjustDGServiceResponse.h" /*! * \page MessageFlow Message interpretation Flow @@ -255,6 +257,7 @@ REGISTER_METATYPE( AdjustPressuresLimitsRequestData ) \ REGISTER_METATYPE( AdjustTreatmentParametersRequestData ) \ REGISTER_METATYPE( AdjustVersionsRequestData ) \ + REGISTER_METATYPE( AdjustServiceRequestData ) \ REGISTER_METATYPE( AdjustHDDateTimeRequestData ) \ REGISTER_METATYPE( AdjustDGDateTimeRequestData ) \ /* Response */ \ @@ -280,7 +283,9 @@ REGISTER_METATYPE( AdjustHDDateTimeResponseData ) \ REGISTER_METATYPE( AdjustDGDateTimeResponseData ) \ REGISTER_METATYPE( HDSerialNumberResponseData ) \ - REGISTER_METATYPE( DGSerialNumberResponseData ) + REGISTER_METATYPE( DGSerialNumberResponseData ) \ + REGISTER_METATYPE( AdjustHDServiceResponseData ) \ + REGISTER_METATYPE( AdjustDGServiceResponseData ) \ //===============================================================================// /*! @@ -354,7 +359,9 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustHDDateTimeResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDGDateTimeResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDSerialNumberResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGSerialNumberResponseData ) + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGSerialNumberResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustHDServiceResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDGServiceResponseData ) \ // /* Request */ ---------------------------------------------------------// #define ADJUST_TRANSMT_MODEL_BRIDGE_CONNECTIONS(vSOURCE) \ @@ -376,6 +383,7 @@ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustTreatmentParametersRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustSalineRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustVersionsRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustServiceRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmSilenceRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmUserActionRequestData ) \ @@ -461,6 +469,8 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDGDateTimeResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( HDSerialNumberResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGSerialNumberResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustHDServiceResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDGServiceResponseData ) \ #define ADJUST_TRANSMT_MODEL_BRIDGE_DEFINITIONS \ /* Request --------------------------------------------------------- */ \ @@ -480,6 +490,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustTreatmentParametersRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustVersionsRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustServiceRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustHDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDGDateTimeRequestData ) \ \ @@ -507,6 +518,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustTreatmentParametersRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustVersionsRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustServiceRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustHDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDGDateTimeRequestData ) \ \ @@ -534,6 +546,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( TreatmentConfirmRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustTreatmentParametersRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustVersionsRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustServiceRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustHDDateTimeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDGDateTimeRequestData ) \ \ @@ -603,6 +616,8 @@ ACTION_RECEIVE_SIGNAL( AdjustDGDateTimeResponseData ) \ ACTION_RECEIVE_SIGNAL( HDSerialNumberResponseData ) \ ACTION_RECEIVE_SIGNAL( DGSerialNumberResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustHDServiceResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustDGServiceResponseData ) \ //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// Index: sources/model/dg/adjustment/MAdjustDGServiceResponse.cpp =================================================================== diff -u --- sources/model/dg/adjustment/MAdjustDGServiceResponse.cpp (revision 0) +++ sources/model/dg/adjustment/MAdjustDGServiceResponse.cpp (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -0,0 +1,31 @@ +#include "MAdjustDGServiceResponse.h" + +using namespace Model; + +QVariantList MAdjustDGServiceResponse::parameters() const { + return { + _data.mLastServiceDateEpoch.value, + _data.mServiceIntervalSeconds.value, + }; +} + +bool MAdjustDGServiceResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mLastServiceDateEpoch )) + if (GetValue(vByteArray, index, _data.mServiceIntervalSeconds )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +/*! + * \brief MAdjustHDDateTimeResponse::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +AdjustDGServiceResponseData MAdjustDGServiceResponse::data() const { + Data data; + data.mLastServiceDateEpoch = _data.mLastServiceDateEpoch.value; + data.mServiceIntervalSeconds = _data.mServiceIntervalSeconds.value; + return data; +} Index: sources/model/dg/adjustment/MAdjustDGServiceResponse.h =================================================================== diff -u --- sources/model/dg/adjustment/MAdjustDGServiceResponse.h (revision 0) +++ sources/model/dg/adjustment/MAdjustDGServiceResponse.h (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -0,0 +1,68 @@ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MAdjustDGServiceResponse class + * \details The HD Date and Time adjustment response model + * + * | MSG | CAN ID | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:----:|:---:|:---:|:----:|:---------------------:| + * |0x8C00| 0x070 | Rsp | Y | DG | UI | Service Dates | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mLastServiceDateEpoch | + * | #2:(U32) | \ref Data::mServiceIntervalSeconds | + * + * \sa Data + * + *

Logging info

+ * | || + * | || + * | typeText | Event | + * | unitText | DG | + * | infoText | ServiceDates | + * + */ +class MAdjustDGServiceResponse : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mLastServiceDateEpoch; + Types::U32 mServiceIntervalSeconds; + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eEvent ; } + Unit_Enum unitText () const override { return Unit_Enum::eHD ; } + QString infoText () const override { return QString("ServiceDates") ; } + + struct Data { + quint32 mLastServiceDateEpoch = 0; + quint32 mServiceIntervalSeconds = 0; + }; + + MAdjustDGServiceResponse () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MAdjustDGServiceResponse::Data AdjustDGServiceResponseData; Index: sources/model/hd/adjustment/MAdjustHDServiceResponse.cpp =================================================================== diff -u --- sources/model/hd/adjustment/MAdjustHDServiceResponse.cpp (revision 0) +++ sources/model/hd/adjustment/MAdjustHDServiceResponse.cpp (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -0,0 +1,31 @@ +#include "MAdjustHDServiceResponse.h" + +using namespace Model; + +QVariantList MAdjustHDServiceResponse::parameters() const { + return { + _data.mLastServiceDateEpoch.value, + _data.mServiceIntervalSeconds.value, + }; +} + +bool MAdjustHDServiceResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mLastServiceDateEpoch )) + if (GetValue(vByteArray, index, _data.mServiceIntervalSeconds )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +/*! + * \brief MAdjustHDDateTimeResponse::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +AdjustHDServiceResponseData MAdjustHDServiceResponse::data() const { + Data data; + data.mLastServiceDateEpoch = _data.mLastServiceDateEpoch.value; + data.mServiceIntervalSeconds = _data.mServiceIntervalSeconds.value; + return data; +} Index: sources/model/hd/adjustment/MAdjustHDServiceResponse.h =================================================================== diff -u --- sources/model/hd/adjustment/MAdjustHDServiceResponse.h (revision 0) +++ sources/model/hd/adjustment/MAdjustHDServiceResponse.h (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -0,0 +1,68 @@ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MAdjustHDServiceResponse class + * \details The HD Date and Time adjustment response model + * + * | MSG | CAN ID | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:----:|:---:|:---:|:----:|:---------------------:| + * |0x8A00| 0x020 | Rsp | Y | HD | UI | Service Dates | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mLastServiceDateEpoch | + * | #2:(U32) | \ref Data::mServiceIntervalSeconds | + * + * \sa Data + * + *

Logging info

+ * | || + * | || + * | typeText | Event | + * | unitText | HD | + * | infoText | ServiceDates | + * + */ +class MAdjustHDServiceResponse : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mLastServiceDateEpoch; + Types::U32 mServiceIntervalSeconds; + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eEvent ; } + Unit_Enum unitText () const override { return Unit_Enum::eHD ; } + QString infoText () const override { return QString("ServiceDates") ; } + + struct Data { + quint32 mLastServiceDateEpoch = 0; + quint32 mServiceIntervalSeconds = 0; + }; + + MAdjustHDServiceResponse () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MAdjustHDServiceResponse::Data AdjustHDServiceResponseData; Index: sources/model/hd/adjustment/MTreatmentAdjustRequests.h =================================================================== diff -u -rd1a6830c486a9ee9c388a80b570aa8141a8366c9 -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision d1a6830c486a9ee9c388a80b570aa8141a8366c9) +++ sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -496,6 +496,35 @@ static Can::Can_Id canid () { return Can::eChlid_UI_Sync; } }; +/*! + * \brief The MAdjustServiceReq class + * \details The DG/HD versions request model + * + * | MSG | CAN ID | Type | Ack | Src | Dest | Description | + * |:------:|:------:|:----:|:---:|:---:|:----:|:---------------------------:| + * | 0x8900 | 0x200 | Req | Y | UI | All | DG/HD Service Dates Request | + * + * | Payload || + * | || + * | #1:(N/A) | \ref None | + * + */ +class MAdjustServiceReq : public MModel { +public: + + // coco begin validated : Has been validated manually. + // This object is used statically for now, kept the logic for later usage. + QString toString() { + return toString({}); + } + // coco end + static QString toString(const QVariantList &vParameters) { + return MModel::toString("ServiceDates", vParameters); + } + + static Can::Can_Id canid () { return Can::eChlid_UI_Sync; } +}; + //// ---------- Alarms /*! @@ -794,6 +823,7 @@ typedef Model:: MTreatmentConfirmReq TreatmentConfirmRequestData; typedef Model:: MAdjustTreatmentParametersReq AdjustTreatmentParametersRequestData; typedef Model:: MAdjustVersionsReq AdjustVersionsRequestData; +typedef Model:: MAdjustServiceReq AdjustServiceRequestData; typedef Model:: MAdjustHDDateTimeReq AdjustHDDateTimeRequestData; typedef Model:: MAdjustDGDateTimeReq AdjustDGDateTimeRequestData; // Alarms Index: sources/view/VDateTime.cpp =================================================================== diff -u -r22bf9e36a97ac83b68b04d803ce8f1fd163147e5 -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/view/VDateTime.cpp (.../VDateTime.cpp) (revision 22bf9e36a97ac83b68b04d803ce8f1fd163147e5) +++ sources/view/VDateTime.cpp (.../VDateTime.cpp) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -76,6 +76,9 @@ emit didAdjustment(dgDateTimeReq); status("Setting date and time..."); + if (_process.state() == QProcess::Running) { + return; + } // 2021-03-16 16:24:00 QString setTime = QString("%1-%2-%3 %4:%5:%6").arg(year()).arg(month()).arg(day()).arg(hour()).arg(minute()).arg(second()); Index: sources/view/VDeviceInformation.cpp =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/view/VDeviceInformation.cpp (.../VDeviceInformation.cpp) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ sources/view/VDeviceInformation.cpp (.../VDeviceInformation.cpp) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -19,12 +19,15 @@ { // requests ADJUST_VIEW_CONNECTION(AdjustVersionsRequestData); + ADJUST_VIEW_CONNECTION(AdjustServiceRequestData); // responses ACTION_VIEW_CONNECTION(AdjustHDVersionsResponseData); ACTION_VIEW_CONNECTION(AdjustDGVersionsResponseData); ACTION_VIEW_CONNECTION(HDSerialNumberResponseData); ACTION_VIEW_CONNECTION(DGSerialNumberResponseData); + ACTION_VIEW_CONNECTION(AdjustHDServiceResponseData); + ACTION_VIEW_CONNECTION(AdjustDGServiceResponseData); init(); @@ -37,6 +40,7 @@ void VDeviceInformation::init() { doRequestHDDGVersions(); + doRequestServiceData(); mUIVersion(qApp->applicationVersion()); } @@ -83,9 +87,7 @@ return QStringList() << "HD Last Service Date" << "HD Next Service Date" << "DG Last Service Date" - << "DG Next Service Date" - << "Treatments" - << "Dialysate Liters"; + << "DG Next Service Date"; } /*! @@ -99,9 +101,7 @@ return QStringList() << mHDLastServiceDate() << mHDNextServiceDate() << mDGLastServiceDate() - << mDGNextServiceDate() - << QString("%1").arg(mTreatments()) - << QString("%1 L").arg(mDialysateLiters()); + << mDGNextServiceDate(); } /*! @@ -166,3 +166,44 @@ mDGSerialNumber(vData.serialNumber); } +/*! + * \brief VDeviceInformation::onActionReceive + * When the HD service response is received + * \param vData - (AdjustHDServiceResponseData) the version response + */ +void VDeviceInformation::onActionReceive(const AdjustHDServiceResponseData &vData) +{ + quint32 lastService = vData.mLastServiceDateEpoch; + quint32 nextService = vData.mLastServiceDateEpoch + vData.mServiceIntervalSeconds; + + mHDLastServiceDate(epochToString(lastService)); + mHDNextServiceDate(epochToString(nextService)); +} + +/*! + * \brief VDeviceInformation::onActionReceive + * When the DG service response is received + * \param vData - (AdjustDGServiceResponseData) the version response + */ +void VDeviceInformation::onActionReceive(const AdjustDGServiceResponseData &vData) +{ + quint32 lastService = vData.mLastServiceDateEpoch; + quint32 nextService = vData.mLastServiceDateEpoch + vData.mServiceIntervalSeconds; + + mDGLastServiceDate(epochToString(lastService)); + mDGNextServiceDate(epochToString(nextService)); +} + +/*! + * \brief VDeviceInformation::epochToString + * Converts an epoch to a formatted date and time + * \param vEpoch (quint32) the epoch + * \return (QString) the formatted date and time + */ +QString VDeviceInformation::epochToString(const quint32 &vEpoch) +{ + // This will have to be updated in Phase 2 when user can set the date and time format + // For now, default is (MM/DD/YYYY) + QDateTime dt = QDateTime::fromSecsSinceEpoch(vEpoch); + return dt.toString(QString("%1/%2/%3").arg(dt.date().month()).arg(dt.date().day()).arg(dt.date().year())); +} Index: sources/view/VDeviceInformation.h =================================================================== diff -u -r4c3c38d7f96cd63be776677bec5d1d0aa574611a -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/view/VDeviceInformation.h (.../VDeviceInformation.h) (revision 4c3c38d7f96cd63be776677bec5d1d0aa574611a) +++ sources/view/VDeviceInformation.h (.../VDeviceInformation.h) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -13,6 +13,7 @@ #include "MTreatmentAdjustHDVersionsResponse.h" #include "MHDSerialNumberResponse.h" #include "MDGSerialNumberResponse.h" +#include "MAdjustHDServiceResponse.h" // forward declarations class tst_views; @@ -36,6 +37,8 @@ VIEW_DEC_SLOT(AdjustDGVersionsResponseData) VIEW_DEC_SLOT(HDSerialNumberResponseData) VIEW_DEC_SLOT(DGSerialNumberResponseData) +VIEW_DEC_SLOT(AdjustHDServiceResponseData) +VIEW_DEC_SLOT(AdjustDGServiceResponseData) protected: PROPERTY(QString, mUIVersion, "") @@ -55,6 +58,7 @@ private: void init(); + QString epochToString(const quint32 &vEpoch); public slots: QStringList doGetVersionKeys(); @@ -66,8 +70,14 @@ AdjustVersionsRequestData data; emit didAdjustment(data); } + + void doRequestServiceData() { + AdjustServiceRequestData data; + emit didAdjustment(data); + } signals: void didAdjustment(const AdjustVersionsRequestData &vData); + void didAdjustment(const AdjustServiceRequestData &vData); }; } Index: sources/wifi/WifiInterface.cpp =================================================================== diff -u -rda3a19b92f67db4ce5ab40137e873d93e78ba207 -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/wifi/WifiInterface.cpp (.../WifiInterface.cpp) (revision da3a19b92f67db4ce5ab40137e873d93e78ba207) +++ sources/wifi/WifiInterface.cpp (.../WifiInterface.cpp) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -3,7 +3,6 @@ // Qt #include #include -#include #include // Project Index: sources/wifi/WifiInterface.h =================================================================== diff -u -r14a47d3069da79c18dea8b3e817957f5ec2a865a -rfeb7724c8a7a2932650c5daa490c90923c9fbe77 --- sources/wifi/WifiInterface.h (.../WifiInterface.h) (revision 14a47d3069da79c18dea8b3e817957f5ec2a865a) +++ sources/wifi/WifiInterface.h (.../WifiInterface.h) (revision feb7724c8a7a2932650c5daa490c90923c9fbe77) @@ -3,7 +3,6 @@ // Qt #include #include -#include // Project #include "main.h"