Index: leahi.pro =================================================================== diff -u -r3d13050e0319cf30a1686b58c8f2328f6860910a -r86c040b666b2544800274db2a18ba5374fbfd4e7 --- leahi.pro (.../leahi.pro) (revision 3d13050e0319cf30a1686b58c8f2328f6860910a) +++ leahi.pro (.../leahi.pro) (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -143,6 +143,7 @@ sources/device/DeviceController.h \ sources/model/dd/adjustment/settings/MAdjustDDSerialNumberResponse.h \ sources/model/dd/adjustment/settings/MAdjustDDVersionsResponse.h \ + sources/model/dd/data/MDDBloodLeakData.h \ sources/model/dd/data/MDDConcentratePumpData.h \ sources/model/dd/data/MDDConductivityData.h \ sources/model/dd/data/MDDDialysatePumpData.h \ @@ -181,6 +182,7 @@ \ # ---------- Models - TD - Data //// ----- @LEAHIZED sources/model/td/data/MTDOpModeData.h \ \ # ---------- Views - TD - Data - States //// ----- @LEAHIZED + sources/view/dd/data/VDDBloodLeakData.h \ sources/view/dd/data/VDDConcentratePumpData.h \ sources/view/dd/data/VDDConductivityData.h \ sources/view/dd/data/VDDDialysatePumpData.h \ @@ -444,6 +446,7 @@ sources/device/DeviceController.cpp \ sources/model/dd/adjustment/settings/MAdjustDDSerialNumberResponse.cpp \ sources/model/dd/adjustment/settings/MAdjustDDVersionsResponse.cpp \ + sources/model/dd/data/MDDBloodLeakData.cpp \ sources/model/dd/data/MDDConcentratePumpData.cpp \ sources/model/dd/data/MDDConductivityData.cpp \ sources/model/dd/data/MDDDialysatePumpData.cpp \ @@ -473,6 +476,7 @@ sources/model/ui/data/MUIBloodPressureData.cpp \ sources/storage/Settings.cpp \ sources/storage/TreatmentLog.cpp \ + sources/view/dd/data/VDDBloodLeakData.cpp \ sources/view/dd/data/VDDConcentratePumpData.cpp \ sources/view/dd/data/VDDConductivityData.cpp \ sources/view/dd/data/VDDDialysatePumpData.cpp \ Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r3d13050e0319cf30a1686b58c8f2328f6860910a -r86c040b666b2544800274db2a18ba5374fbfd4e7 --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 3d13050e0319cf30a1686b58c8f2328f6860910a) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -603,6 +603,7 @@ 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 Index: sources/gui/GuiGlobals.cpp =================================================================== diff -u -r3d13050e0319cf30a1686b58c8f2328f6860910a -r86c040b666b2544800274db2a18ba5374fbfd4e7 --- sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 3d13050e0319cf30a1686b58c8f2328f6860910a) +++ sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -113,6 +113,7 @@ #include "VDDConductivityData.h" #include "VDDGenDialysateData.h" #include "VDDLevelData.h" +#include "VDDBloodLeakData.h" // ----- #include "VTreatmentCreate.h" // ----- In-Treatment Adjustments Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r3d13050e0319cf30a1686b58c8f2328f6860910a -r86c040b666b2544800274db2a18ba5374fbfd4e7 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 3d13050e0319cf30a1686b58c8f2328f6860910a) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -161,7 +161,7 @@ ID_TreatmentRanges = 0x4300, // 67 //// ----- @LEAHIZED // Pre-Treatment Water Sample - ID_DGFilterFlushData = 0x6000, // 96 + ID_DGFilterFlushData = 0x600F, // ?? //// ----- @CRAPIZED: had to change to avoid duplication ID_AdjustWaterSampleReq = 0x5D00, // 93 ID_AdjustWaterSampleRsp = 0x5E00, // 94 ID_AdjustWaterSampleResultReq = 0x5F00, // 95 // there is no specific response message for this request and changing of the state in Pre_Treatment_States is used as the response @@ -207,7 +207,7 @@ ID_DDHeatersData = 0x2800, // 40 //// ----- @LEAHIZED ID_DDLevelData = 0x2900, // 41 //// ----- @LEAHIZED ID_DDGenDialysateData = 0x2F00, // 47 //// ----- @LEAHIZED - ID_DDBloodLeakData = 0x6000, // 91 //// ----- TODO: Payload subject to change given FW implementation + ID_DDBloodLeakData = 0x6000, // 96 //// ----- TODO: Payload subject to change given FW implementation // HD Data Messages ID_HDAccelerometerData = 0x3300, // 51 Index: sources/gui/qml/dialogs/diagnostics/DiagnosticsDD.qml =================================================================== diff -u -r3d13050e0319cf30a1686b58c8f2328f6860910a -r86c040b666b2544800274db2a18ba5374fbfd4e7 --- sources/gui/qml/dialogs/diagnostics/DiagnosticsDD.qml (.../DiagnosticsDD.qml) (revision 3d13050e0319cf30a1686b58c8f2328f6860910a) +++ sources/gui/qml/dialogs/diagnostics/DiagnosticsDD.qml (.../DiagnosticsDD.qml) (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -336,6 +336,19 @@ ] } + DebugDataColumn { id: _DDBloodLeakColumn + textObjectName :"_DDBloodLeakData" + title : qsTr(" Blood Leak ") + x: col(10.5) + y: row(0) + model: [ + vDDBloodLeak.bloodLeak , + ] + label: [ + "BL ", + ] + } + // TODO: The TouchRect should be unnecessary since the first communication message with UI/TD is the version. TouchRect { x : col(9.0) Index: sources/gui/qml/main.qml =================================================================== diff -u -r3d13050e0319cf30a1686b58c8f2328f6860910a -r86c040b666b2544800274db2a18ba5374fbfd4e7 --- sources/gui/qml/main.qml (.../main.qml) (revision 3d13050e0319cf30a1686b58c8f2328f6860910a) +++ sources/gui/qml/main.qml (.../main.qml) (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -98,13 +98,14 @@ import VDGReservoir 0.1 import VDDConcentratePump 0.1 import VDDTemperatures 0.1 -import VDDDialysatePump 0.1 +import VDDDialysatePump 0.1 import VDDValvesStates 0.1 import VTreatmentCreate 0.1 import VDGAccelerometer 0.1 import VDDConductivity 0.1 import VDDGenDialysate 0.1 import VDDLevel 0.1 +import VDDBloodLeak 0.1 // In-Treatment - Adjustemnt import VTreatmentAdjustmentDuration 0.1 import VTreatmentAdjustmentFlows 0.1 @@ -221,12 +222,13 @@ VDGReservoir { id: vDGReservoir } VDDConcentratePump { id: vDDConcentratePump } VDDTemperatures { id: vDDTemperatures } - VDDDialysatePump { id: vDDDialysatePump } + VDDDialysatePump { id: vDDDialysatePump } VDDValvesStates { id: vDDValvesStates } VDGAccelerometer { id: vDGAccelerometer } VDDConductivity { id: vDDConductivity } VDDGenDialysate { id: vDDGenDialysate } VDDLevel { id: vDDLevel } + VDDBloodLeak { id: vDDBloodLeak } // --- Pre-Treatment Progress Data VPreTreatmentAdjustmentInitTreatment { id: vPreTreatmentAdjustmentInitTreatment } VDGFilterFlush { id: vDGFilterFlush } Index: sources/model/MModel.h =================================================================== diff -u -r3d13050e0319cf30a1686b58c8f2328f6860910a -r86c040b666b2544800274db2a18ba5374fbfd4e7 --- sources/model/MModel.h (.../MModel.h) (revision 3d13050e0319cf30a1686b58c8f2328f6860910a) +++ sources/model/MModel.h (.../MModel.h) (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -112,6 +112,7 @@ #include "MDDConductivityData.h" #include "MDDGenDialysateData.h" #include "MDDLevelData.h" +#include "MDDBloodLeakData.h" // Pre-Treatment #include "MPreTreatmentAdjustRequests.h" @@ -378,6 +379,7 @@ REGISTER_METATYPE( DDConductivityData ) \ REGISTER_METATYPE( DDGenDialysateData ) \ REGISTER_METATYPE( DDLevelData ) \ + REGISTER_METATYPE( DDBloodLeakData ) \ \ REGISTER_METATYPE( HDDebugTextData ) \ REGISTER_METATYPE( DGDebugTextData ) \ @@ -569,6 +571,7 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DDConductivityData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DDGenDialysateData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DDLevelData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DDBloodLeakData ) \ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDDebugTextData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGDebugTextData ) \ @@ -774,6 +777,7 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( DDConductivityData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DDGenDialysateData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DDLevelData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( DDBloodLeakData ) \ \ ACTION_RECEIVE_BRIDGE_DEFINITION( HDDebugTextData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGDebugTextData ) \ @@ -1084,6 +1088,7 @@ ACTION_RECEIVE_SIGNAL( DDConductivityData ) \ ACTION_RECEIVE_SIGNAL( DDGenDialysateData ) \ ACTION_RECEIVE_SIGNAL( DDLevelData ) \ + ACTION_RECEIVE_SIGNAL( DDBloodLeakData ) \ \ ACTION_RECEIVE_SIGNAL( HDDebugTextData ) \ ACTION_RECEIVE_SIGNAL( DGDebugTextData ) \ Index: sources/model/dd/data/MDDBloodLeakData.cpp =================================================================== diff -u --- sources/model/dd/data/MDDBloodLeakData.cpp (revision 0) +++ sources/model/dd/data/MDDBloodLeakData.cpp (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -0,0 +1,41 @@ +/*! + * + * Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file MDDBloodLeakData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 18-Apr-2022 + * \author (original) Behrouz NematiPour + * \date (original) 12-Feb-2021 + * + */ +#include "MDDBloodLeakData.h" + +using namespace Model; + +QVariantList MDDBloodLeakData::parameters() const { + return { + _data.mBloodLeak .value, + }; +} + +bool MDDBloodLeakData::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if ( ! GetValue(vByteArray, index, _data.mBloodLeak )) goto lError; + + return true; + +lError: + if(vIndex) { *vIndex = index; } + + return false; +} + +MDDBloodLeakData::Data MDDBloodLeakData::data() const { + Data data; + data.mBloodLeak = _data.mBloodLeak .value; + return data; +} Index: sources/model/dd/data/MDDBloodLeakData.h =================================================================== diff -u --- sources/model/dd/data/MDDBloodLeakData.h (revision 0) +++ sources/model/dd/data/MDDBloodLeakData.h (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -0,0 +1,78 @@ +/*! + * + * Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file MDDBloodLeakData.h + * \author (last) Behrouz NematiPour + * \date (last) 27-Mar-2023 + * \author (original) Behrouz NemaiPour + * \date (original) 02-Jul-2020 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MDDBloodLeak class + * \details The DD BloodLeak data model + * + * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | + * |0x6000| 0x101 | 8 | 1 Hz | N | DD | All | DD BloodLeak Data | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mBloodLeak | + * + * \sa Data + * + *

Logging info

+ * | || + * | || + * | typeText | Datum | + * | unitText | DD | + * | infoText | BloodLeak | + * + */ +class MDDBloodLeakData : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mBloodLeak ; + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eDatum ; } + Unit_Enum unitText () const override { return Unit_Enum::eDD ; } + QString infoText () const override { return QString("BloodLeak") ; } + + struct Data { + quint32 mBloodLeak = 0; ///< DD Blood Leak Sensor status + }; + MDDBloodLeakData () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MDDBloodLeakData::Data DDBloodLeakData; Index: sources/view/VView.h =================================================================== diff -u -r3d13050e0319cf30a1686b58c8f2328f6860910a -r86c040b666b2544800274db2a18ba5374fbfd4e7 --- sources/view/VView.h (.../VView.h) (revision 3d13050e0319cf30a1686b58c8f2328f6860910a) +++ sources/view/VView.h (.../VView.h) (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -194,6 +194,7 @@ REGISTER_TYPE( VDDConductivity ) \ REGISTER_TYPE( VDDGenDialysate ) \ REGISTER_TYPE( VDDLevel ) \ + REGISTER_TYPE( VDDBloodLeak ) \ /* Pre-Treatment */ \ REGISTER_TYPE( VPreTreatmentAdjustmentInitTreatment ) \ REGISTER_TYPE( VDGFilterFlush ) \ Index: sources/view/dd/data/VDDBloodLeakData.cpp =================================================================== diff -u --- sources/view/dd/data/VDDBloodLeakData.cpp (revision 0) +++ sources/view/dd/data/VDDBloodLeakData.cpp (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -0,0 +1,24 @@ +/*! + * + * Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file VDDBloodLeakData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 18-Apr-2022 + * \author (original) Behrouz NematiPour + * \date (original) 12-Feb-2021 + * + */ +#include "VDDBloodLeakData.h" + +// Project +#include "GuiController.h" + +VIEW_DEF(VDDBloodLeak, DDBloodLeakData) + +void VDDBloodLeak::onActionReceive(const DDBloodLeakData &vData) { + bloodLeak (vData.mBloodLeak ); +} Index: sources/view/dd/data/VDDBloodLeakData.h =================================================================== diff -u --- sources/view/dd/data/VDDBloodLeakData.h (revision 0) +++ sources/view/dd/data/VDDBloodLeakData.h (revision 86c040b666b2544800274db2a18ba5374fbfd4e7) @@ -0,0 +1,42 @@ +/*! + * + * Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file VDDBloodLeakData.h + * \author (last) Behrouz NematiPour + * \date (last) 18-Apr-2022 + * \author (original) Behrouz NematiPour + * \date (original) 12-Feb-2021 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "main.h" // Doxygen : do not remove +#include "VView.h" +#include "MDDBloodLeakData.h" + +// namespace +namespace View { + +/*! + * \brief The VDDBloodLeak class + * \details View for Model's Data representation. + * + * \sa Model::MDDBloodLeak + * + */ +class VDDBloodLeak : public QObject { + Q_OBJECT + + PROPERTY( quint32 , bloodLeak , 0) + + VIEW_DEC(VDDBloodLeak, DDBloodLeakData) +}; +}