Index: leahi.pro =================================================================== diff -u -rd862dfcd402206e33b314c458e41c13b684a4565 -rc253d3ca9ef234e04747565e500faf88b07fc04e --- leahi.pro (.../leahi.pro) (revision d862dfcd402206e33b314c458e41c13b684a4565) +++ leahi.pro (.../leahi.pro) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -277,6 +277,7 @@ sources/model/dg/data/MDGValvesStatesData.h \ sources/model/dg/data/MDGAccelerometerData.h \ sources/model/dg/data/MDGConductivityData.h \ + sources/model/dg/data/MDDLevelData.h \ \ # CANBus sources/canbus/CanInterface.h \ sources/canbus/FrameInterface.h \ @@ -400,6 +401,7 @@ sources/view/dg/data/VDGValvesStatesData.h \ sources/view/dg/data/VDGAccelerometerData.h \ sources/view/dg/data/VDGConductivityData.h \ + sources/view/dg/data/VDDLevelData.h \ \ # Storage sources/storage/StorageGlobals.h \ sources/storage/Logger.h \ @@ -565,6 +567,7 @@ sources/model/dg/data/MDGValvesStatesData.cpp \ sources/model/dg/data/MDGAccelerometerData.cpp \ sources/model/dg/data/MDGConductivityData.cpp \ + sources/model/dg/data/MDDLevelData.cpp \ \ # CANBus sources/canbus/CanInterface.cpp \ sources/canbus/FrameInterface.cpp \ @@ -683,6 +686,7 @@ sources/view/dg/data/VDGValvesStatesData.cpp \ sources/view/dg/data/VDGAccelerometerData.cpp \ sources/view/dg/data/VDGConductivityData.cpp \ + sources/view/dg/data/VDDLevelData.cpp \ \ # Storage sources/storage/StorageGlobals.cpp \ sources/storage/FileHandler.cpp \ Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -r4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -103,6 +103,7 @@ {Gui::GuiActionType::ID_DDTemperaturesData , 23 * 4 }, // 23 parameters each 4bytes {Gui::GuiActionType::ID_DGAccelerometerData , 9 * 4 }, // 9 parameters each 4bytes {Gui::GuiActionType::ID_DGConductivityData , 13 * 4 }, // 13 parameters each 4bytes + {Gui::GuiActionType::ID_DDLevelData , 3 * 4 }, // 3 parameters each 4bytes // HD Data Messages {Gui::GuiActionType::ID_HDAccelerometerData , 9 * 4 }, // 9 parameters each 4bytes {Gui::GuiActionType::ID_HDSyringePumpData , 9 * 4 }, // 9 parameters each 4bytes Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -598,6 +598,7 @@ 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_DGConductivityData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGConductivityData ); break; + case Gui::GuiActionType::ID_DDLevelData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DDLevelData ); 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 -rd862dfcd402206e33b314c458e41c13b684a4565 -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision d862dfcd402206e33b314c458e41c13b684a4565) +++ sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -109,6 +109,7 @@ #include "VDGValvesStatesData.h" #include "VDGAccelerometerData.h" #include "VDGConductivityData.h" +#include "VDDLevelData.h" // ----- #include "VTreatmentCreate.h" // ----- In-Treatment Adjustments Index: sources/gui/qml/components/DebugDataColumn.qml =================================================================== diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/gui/qml/components/DebugDataColumn.qml (.../DebugDataColumn.qml) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1) +++ sources/gui/qml/components/DebugDataColumn.qml (.../DebugDataColumn.qml) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -37,7 +37,7 @@ property int horizontalAlignmentText : Text.AlignRight width : 150 - spacing : -15 + spacing : -10 Text { id: _title text : _root.title @@ -49,6 +49,7 @@ bottomPadding: 5 font.family: Fonts.fontFamilyFixed } + Repeater { id: _repeater model: _root.model Text { id: _text @@ -67,6 +68,7 @@ font.pixelSize : fontPixelSizeLabel anchors.baseline: parent.baseline anchors.left : parent.right + anchors.leftMargin: 10 horizontalAlignment: Text.AlignLeft font.family: Fonts.fontFamilyFixed } Index: sources/gui/qml/dialogs/diagnostics/DiagnosticsDD.qml =================================================================== diff -u -r4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/gui/qml/dialogs/diagnostics/DiagnosticsDD.qml (.../DiagnosticsDD.qml) (revision 4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a) +++ sources/gui/qml/dialogs/diagnostics/DiagnosticsDD.qml (.../DiagnosticsDD.qml) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -26,40 +26,27 @@ * \brief the post treatment prime stack screen */ DiagnosticsBase { id: _root - objectName: "_DiagnosticsTD" + objectName: "_DiagnosticsDD" title: "Dialysate Delivery" -// DebugDataColumn { id: _TDBloodPumpColumn -// textObjectName :"_TDBloodPumpData" -// title : qsTr(" BP ") -// x: col(0) -// y: row(0) -// model: [ -// vTDBloodPump.setFlow , -// vTDBloodPump.measFlow .toFixed(2) , -// vTDBloodPump.rotorSpeed .toFixed(2) , -// vTDBloodPump.motorSpeed .toFixed(2) , -// vTDBloodPump.currMotor .toFixed(2) , -// vTDBloodPump.setRPM .toFixed(2) , -// vTDBloodPump.pressureFlow , -// vTDBloodPump.rotationCount , -// vTDBloodPump.rotorHallState , + DebugDataColumn { id: _DDLevelColumn + textObjectName :"_DDLevelData" + title : qsTr(" Levels ") + x: col(0) + y: row(0) + model: [ + vDDLevel.floaterLevel , + vDDLevel.bicarbLevel , + vDDLevel.spentDialysateLevel , + ] + label: [ + "float ", + "bicarb ", + "sptDial ", + ] + } -// ] -// label: [ -// "sFLow ", -// "mFlow ", -// "rSpd ", -// "mSpd ", -// "cMot ", -// "RPM ", -// "pFlow ", -// "rCnt ", -// "state ", -// ] -// } - // DebugDataColumn { id: _TDAirTrapCoulumn // textObjectName :"_TDAirTrapData" // title : qsTr(" Air Trap ") @@ -202,7 +189,7 @@ x : col(6.0) y : row(6.4) width : 425 - height : 160 + height : 80 onClicked : vAdjustmentVersions.doAdjustment() radius : 10 Column { Index: sources/gui/qml/dialogs/diagnostics/DiagnosticsSwipe.qml =================================================================== diff -u -r4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/gui/qml/dialogs/diagnostics/DiagnosticsSwipe.qml (.../DiagnosticsSwipe.qml) (revision 4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a) +++ sources/gui/qml/dialogs/diagnostics/DiagnosticsSwipe.qml (.../DiagnosticsSwipe.qml) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -33,7 +33,7 @@ anchors.fill: parent DiagnosticsTD { id: tdPage } - DiagnosticsBase { id: ddPage } + DiagnosticsDD { id: ddPage } DiagnosticsBase { id: fpPage } } Index: sources/gui/qml/dialogs/diagnostics/DiagnosticsTD.qml =================================================================== diff -u -r4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/gui/qml/dialogs/diagnostics/DiagnosticsTD.qml (.../DiagnosticsTD.qml) (revision 4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a) +++ sources/gui/qml/dialogs/diagnostics/DiagnosticsTD.qml (.../DiagnosticsTD.qml) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -202,7 +202,7 @@ x : col(6.0) y : row(6.4) width : 425 - height : 160 + height : 80 onClicked : vAdjustmentVersions.doAdjustment() radius : 10 Column { Index: sources/gui/qml/main.qml =================================================================== diff -u -r4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/gui/qml/main.qml (.../main.qml) (revision 4e521c1a06ac5ba8fa125f9efba8a1b3c91c525a) +++ sources/gui/qml/main.qml (.../main.qml) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -101,6 +101,7 @@ import VTreatmentCreate 0.1 import VDGAccelerometer 0.1 import VDGConductivity 0.1 +import VDDLevel 0.1 // In-Treatment - Adjustemnt import VTreatmentAdjustmentDuration 0.1 import VTreatmentAdjustmentFlows 0.1 @@ -219,6 +220,7 @@ VDGValvesStates { id: vDGValvesStates } VDGAccelerometer { id: vDGAccelerometer } VDGConductivity { id: vDGConductivity } + VDDLevel { id: vDDLevel } // --- Pre-Treatment Progress Data VPreTreatmentAdjustmentInitTreatment { id: vPreTreatmentAdjustmentInitTreatment } VDGFilterFlush { id: vDGFilterFlush } Index: sources/model/MModel.h =================================================================== diff -u -rd862dfcd402206e33b314c458e41c13b684a4565 -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/model/MModel.h (.../MModel.h) (revision d862dfcd402206e33b314c458e41c13b684a4565) +++ sources/model/MModel.h (.../MModel.h) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -107,6 +107,7 @@ #include "MDGValvesStatesData.h" #include "MDGAccelerometerData.h" #include "MDGConductivityData.h" +#include "MDDLevelData.h" // Pre-Treatment #include "MPreTreatmentAdjustRequests.h" @@ -364,6 +365,7 @@ REGISTER_METATYPE( DGTemperaturesData ) \ REGISTER_METATYPE( DGAccelerometerData ) \ REGISTER_METATYPE( DGConductivityData ) \ + REGISTER_METATYPE( DDLevelData ) \ \ REGISTER_METATYPE( HDDebugTextData ) \ REGISTER_METATYPE( DGDebugTextData ) \ @@ -550,6 +552,7 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGTemperaturesData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGAccelerometerData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGConductivityData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DDLevelData ) \ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDDebugTextData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGDebugTextData ) \ @@ -750,6 +753,7 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( DGTemperaturesData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGAccelerometerData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGConductivityData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( DDLevelData ) \ \ ACTION_RECEIVE_BRIDGE_DEFINITION( HDDebugTextData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGDebugTextData ) \ @@ -1055,6 +1059,7 @@ ACTION_RECEIVE_SIGNAL( DGTemperaturesData ) \ ACTION_RECEIVE_SIGNAL( DGAccelerometerData ) \ ACTION_RECEIVE_SIGNAL( DGConductivityData ) \ + ACTION_RECEIVE_SIGNAL( DDLevelData ) \ \ ACTION_RECEIVE_SIGNAL( HDDebugTextData ) \ ACTION_RECEIVE_SIGNAL( DGDebugTextData ) \ Index: sources/model/dg/data/MDDLevelData.cpp =================================================================== diff -u --- sources/model/dg/data/MDDLevelData.cpp (revision 0) +++ sources/model/dg/data/MDDLevelData.cpp (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -0,0 +1,47 @@ +/*! + * + * 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 MDDLevelData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 18-Apr-2022 + * \author (original) Behrouz NematiPour + * \date (original) 12-Feb-2021 + * + */ +#include "MDDLevelData.h" + +using namespace Model; + +QVariantList MDDLevelData::parameters() const { + return { + _data.d6Level .value, + _data.d63Level .value, + _data.d46Level .value, + }; +} + +bool MDDLevelData::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if ( ! GetValue(vByteArray, index, _data.d6Level )) goto lError; + if ( ! GetValue(vByteArray, index, _data.d63Level )) goto lError; + if ( ! GetValue(vByteArray, index, _data.d46Level )) goto lError; + + return true; + +lError: + if(vIndex) { *vIndex = index; } + + return false; +} + +MDDLevelData::Data MDDLevelData::data() const { + Data data; + data.mFloaterLevel = _data.d6Level .value; + data.mBicarbLevel = _data.d63Level .value; + data.mSpentDialysateLevel = _data.d46Level .value; + return data; +} Index: sources/model/dg/data/MDDLevelData.h =================================================================== diff -u --- sources/model/dg/data/MDDLevelData.h (revision 0) +++ sources/model/dg/data/MDDLevelData.h (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -0,0 +1,84 @@ +/*! + * + * 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 MDDLevelData.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 MDDLevel class + * \details The DD Level data model + * + * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | + * |0x2900| 0x101 | 8 | 1 Hz | N | DD | All | DD Level Data | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::d6Level | + * | #2:(U32) | \ref Data::d63Level | + * | #3:(U32) | \ref Data::d46Level | + * + * \sa Data + * + *

Logging info

+ * | || + * | || + * | typeText | Datum | + * | unitText | DD | + * | infoText | Level | + * + */ +class MDDLevelData : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 d6Level ; + Types::U32 d63Level ; + Types::U32 d46Level ; + } _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("Level") ; } + + struct Data { + quint32 mFloaterLevel = 0; ///< floater switch low, medium and high status + quint32 mBicarbLevel = 0; ///< bicarb level low or high status + quint32 mSpentDialysateLevel = 0; ///< Spent dialysate air separation chamber level low or high status + }; + MDDLevelData () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MDDLevelData::Data DDLevelData; Index: sources/view/VView.h =================================================================== diff -u -rd862dfcd402206e33b314c458e41c13b684a4565 -rc253d3ca9ef234e04747565e500faf88b07fc04e --- sources/view/VView.h (.../VView.h) (revision d862dfcd402206e33b314c458e41c13b684a4565) +++ sources/view/VView.h (.../VView.h) (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -190,6 +190,7 @@ REGISTER_TYPE( VDGValvesStates ) \ REGISTER_TYPE( VDGAccelerometer ) \ REGISTER_TYPE( VDGConductivity ) \ + REGISTER_TYPE( VDDLevel ) \ /* Pre-Treatment */ \ REGISTER_TYPE( VPreTreatmentAdjustmentInitTreatment ) \ REGISTER_TYPE( VDGFilterFlush ) \ Index: sources/view/dg/data/VDDLevelData.cpp =================================================================== diff -u --- sources/view/dg/data/VDDLevelData.cpp (revision 0) +++ sources/view/dg/data/VDDLevelData.cpp (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -0,0 +1,26 @@ +/*! + * + * 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 VDDLevelData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 18-Apr-2022 + * \author (original) Behrouz NematiPour + * \date (original) 12-Feb-2021 + * + */ +#include "VDDLevelData.h" + +// Project +#include "GuiController.h" + +VIEW_DEF(VDDLevel, DDLevelData) + +void VDDLevel::onActionReceive(const DDLevelData &vData) { + floaterLevel (vData.mFloaterLevel ); + bicarbLevel (vData.mBicarbLevel ); + spentDialysateLevel (vData.mSpentDialysateLevel ); +} Index: sources/view/dg/data/VDDLevelData.h =================================================================== diff -u --- sources/view/dg/data/VDDLevelData.h (revision 0) +++ sources/view/dg/data/VDDLevelData.h (revision c253d3ca9ef234e04747565e500faf88b07fc04e) @@ -0,0 +1,44 @@ +/*! + * + * 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 VDDLevelData.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 "MDDLevelData.h" + +// namespace +namespace View { + +/*! + * \brief The VDDLevel class + * \details View for Model's Data representation. + * + * \sa Model::MDDLevel + * + */ +class VDDLevel : public QObject { + Q_OBJECT + + PROPERTY( quint32 , floaterLevel , 0) + PROPERTY( quint32 , bicarbLevel , 0) + PROPERTY( quint32 , spentDialysateLevel , 0) + + VIEW_DEC(VDDLevel, DDLevelData) +}; +}