Index: denali.pro =================================================================== diff -u -rd2035a8728794afeefaa244bf8d1597926d945f5 -r3b4b381d23c267fbc5af29f29e231f03e26ca23b --- denali.pro (.../denali.pro) (revision d2035a8728794afeefaa244bf8d1597926d945f5) +++ denali.pro (.../denali.pro) (revision 3b4b381d23c267fbc5af29f29e231f03e26ca23b) @@ -51,6 +51,8 @@ sources/main.h \ sources/model/MDGDebugText.h \ sources/model/MHDDebugText.h \ + sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.h \ + sources/model/hd/data/MTreatmentSalineData.h \ sources/storage/DriveWatcher.h \ sources/threads.h \ sources/maintimer.h \ @@ -149,6 +151,8 @@ main.cpp \ sources/model/MDGDebugText.cpp \ sources/model/MHDDebugText.cpp \ + sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.cpp \ + sources/model/hd/data/MTreatmentSalineData.cpp \ sources/storage/DriveWatcher.cpp \ sources/threads.cpp \ sources/maintimer.cpp \ Index: sources/model/hd/adjustment/MTreatmentAdjustRequests.h =================================================================== diff -u -r93b6ad6b18c505fedab37d95dc87be61db48641c -r3b4b381d23c267fbc5af29f29e231f03e26ca23b --- sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 93b6ad6b18c505fedab37d95dc87be61db48641c) +++ sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 3b4b381d23c267fbc5af29f29e231f03e26ca23b) @@ -25,8 +25,8 @@ /*! * Simple request models - * These are models to send the request for the doAdjustmet - * The the only reason thy have been defined to help overloadding the adjusmtent methods + * These are models to send the request for the doAdjustment + * The the only reason thy have been defined to help overloading the adjustment methods * Otherwise the parameters are so tiny models. */ @@ -67,7 +67,7 @@ } // coco end static QString toString(const QVariantList &vParameters) { - return MModel::toString("AdjustBloodDialisate", vParameters); + return MModel::toString("AdjustBloodDialysate", vParameters); } }; @@ -136,6 +136,24 @@ } }; +class MAdjustSalineReq : public MModel { +public: + enum State { + eStop = 0, + eStart = 1, + }; + State requestedState = eStop; // the requested state. Initially it's Stop => start. + // coco begin validated : Has been validated manually. + // This object is used statically for now, kept the logic for later usage. + QString toString() { + return toString({requestedState}); + } + // coco end + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustSaline", vParameters); + } +}; + class MAlarmSilenceReq : public MModel { public: bool state = 0; @@ -158,5 +176,6 @@ typedef Model:: MAdjustUltrafiltrationStateReq AdjustUltrafiltrationStateRequestData; typedef Model:: MAdjustUltrafiltrationEditReq AdjustUltrafiltrationEditRequestData; typedef Model::MAdjustUltrafiltrationConfirmReq AdjustUltrafiltrationConfirmRequestData; +typedef Model:: MAdjustSalineReq AdjustSalineRequestData; typedef Model:: MAlarmSilenceReq AlarmSilenceRequestData; Index: sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.cpp =================================================================== diff -u --- sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.cpp (revision 0) +++ sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.cpp (revision 3b4b381d23c267fbc5af29f29e231f03e26ca23b) @@ -0,0 +1,44 @@ +/*! + * + * Copyright (c) 2019-2020 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 MTreatmentAdjustSalineResponse.cpp + * \date 8/10/2020 + * \author Behrouz NematiPour + * + */ +#include "MTreatmentAdjustSalineResponse.h" + +using namespace Model; + + +QVariantList MAdjustSalineResponse::parameters() const { + return { + _data.mAccepted.value, + _data.mReasin .value, + _data.mVolume .value + }; +} + +bool MAdjustSalineResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mAccepted )) + if (GetValue(vByteArray, index, _data.mReason )) + if (GetValue(vByteArray, index, _data.mVolume )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +AdjustSalineResponseData MAdjustSalineResponse::data() const { + Data data; + data.mAccepted = _data.mAccepted.value; + data.mReason = _data.mReason .value; + data.mUFVolume = _data.mVolume .value; + return data; +} Index: sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.h =================================================================== diff -u --- sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.h (revision 0) +++ sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.h (revision 3b4b381d23c267fbc5af29f29e231f03e26ca23b) @@ -0,0 +1,61 @@ +/*! + * + * Copyright (c) 2019-2020 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 MTreatmentAdjustSalineResponse.h + * \date 8/10/2020 + * \author Behrouz NematiPour + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +class MAdjustSalineResponse : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mAccepted; + Types::U32 mReason ; + Types::U32 mVolume ; + } _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("AdjustSaline") ; } + + struct Data { + bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ + quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ + quint32 mVolume = 0; /*!< Bolus Volume value of type quint32 extracted out */ + }; + + MAdjustSalineResponse () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; + +} + +typedef Model::MAdjustSalineResponse::Data AdjustSalineResponseData; Index: sources/model/hd/data/MTreatmentSalineData.cpp =================================================================== diff -u --- sources/model/hd/data/MTreatmentSalineData.cpp (revision 0) +++ sources/model/hd/data/MTreatmentSalineData.cpp (revision 3b4b381d23c267fbc5af29f29e231f03e26ca23b) @@ -0,0 +1,43 @@ +/*! + * + * Copyright (c) 2019-2020 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 MTreatmentSalineData.cpp + * \date 8/10/2020 + * \author Behrouz NematiPour + * + */ +#include "MTreatmentSalineData.h" + +using namespace Model; + +QVariantList MTreatmentTime::parameters() const { + return { + _data.mTarget .value, + _data.mCumulative .value, + _data.mDelivering .value, + }; +} + +bool MTreatmentTime::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mTarget )) + if (GetValue(vByteArray, index, _data.mCumulative )) + if (GetValue(vByteArray, index, _data.mDelivering )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +MTreatmentTime::Data MTreatmentTime::data() const { + Data data; + data.mTarget = _data.mTarget .value; + data.mCumulative = _data.mCumulative .value; + data.mDelivering = _data.mDelivering .value; + return data; +} Index: sources/model/hd/data/MTreatmentSalineData.h =================================================================== diff -u --- sources/model/hd/data/MTreatmentSalineData.h (revision 0) +++ sources/model/hd/data/MTreatmentSalineData.h (revision 3b4b381d23c267fbc5af29f29e231f03e26ca23b) @@ -0,0 +1,63 @@ +/*! + * + * Copyright (c) 2019-2020 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 MTreatmentSalineData.h + * \date 8/10/2020 + * \author Behrouz NematiPour + * + */ +#pragma once + + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +class MTreatmentSaline : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mTarget ; + Types::U32 mCumulative ; + Types::U32 mDelivering ; + } _data; + +public: + + Type_Enum typeText() const override { return Type_Enum::eDatum ; } + Unit_Enum unitText() const override { return Unit_Enum::eHD ; } + QString infoText() const override { return QString("SalineData") ; } + + struct Data { + quint32 mTarget = 0; /*!< Target Target volume for the current started saline bolus */ + quint32 mCumulative = 0; /*!< Cumulative Cumulative volume of all saline deliveries during current treatment */ + quint32 mDelivering = 0; /*!< Delivering Current delivering saline volume */ + }; + +public: + MTreatmentSaline () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; + +} + +typedef Model::MTreatmentSaline::Data TreatmentSalineData;