Index: denali.pro =================================================================== diff -u -raa7591d9f61f5d8d5a2b3604d4c37d6cea829700 -r10f39b63ce8a992280ab123f05a5eb44a27c121b --- denali.pro (.../denali.pro) (revision aa7591d9f61f5d8d5a2b3604d4c37d6cea829700) +++ denali.pro (.../denali.pro) (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -203,7 +203,8 @@ sources/model/hd/data/MHDSyringePumpData.h \ sources/model/hd/data/MTreatmentRangesData.h \ sources/model/hd/data/treatment/MTreatmentTimeData.h \ - sources/model/hd/data/treatment/MTreatmentFlowsData.h \ + sources/model/hd/data/treatment/MTreatmentInletFlowData.h \ + sources/model/hd/data/treatment/MTreatmentBloodFlowData.h \ sources/model/hd/data/treatment/MTreatmentOutletFlowData.h \ sources/model/hd/data/treatment/MTreatmentPressureOcclusionData.h \ sources/model/hd/data/treatment/MTreatmentSalineData.h \ @@ -446,7 +447,8 @@ sources/model/hd/data/MHDSyringePumpData.cpp \ sources/model/hd/data/MTreatmentRangesData.cpp \ sources/model/hd/data/treatment/MTreatmentTimeData.cpp \ - sources/model/hd/data/treatment/MTreatmentFlowsData.cpp \ + sources/model/hd/data/treatment/MTreatmentBloodFlowData.cpp \ + sources/model/hd/data/treatment/MTreatmentInletFlowData.cpp \ sources/model/hd/data/treatment/MTreatmentOutletFlowData.cpp \ sources/model/hd/data/treatment/MTreatmentPressureOcclusionData.cpp \ sources/model/hd/data/treatment/MTreatmentSalineData.cpp \ Index: denali.pro.user =================================================================== diff -u -r093155324dda47cba65693b72a2d1b0290d0c29a -r10f39b63ce8a992280ab123f05a5eb44a27c121b --- denali.pro.user (.../denali.pro.user) (revision 093155324dda47cba65693b72a2d1b0290d0c29a) +++ denali.pro.user (.../denali.pro.user) (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -1,6 +1,6 @@ - + EnvironmentId Index: sources/gui/qml/dialogs/DiagnosticsDialog.qml =================================================================== diff -u -rebc82b5efe26c1081606fab06a1c99bb4f9c0098 -r10f39b63ce8a992280ab123f05a5eb44a27c121b --- sources/gui/qml/dialogs/DiagnosticsDialog.qml (.../DiagnosticsDialog.qml) (revision ebc82b5efe26c1081606fab06a1c99bb4f9c0098) +++ sources/gui/qml/dialogs/DiagnosticsDialog.qml (.../DiagnosticsDialog.qml) (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -232,7 +232,7 @@ vTreatmentBloodFlow.bloodFlow_MotorCtlSpeed .toFixed(2) , vTreatmentBloodFlow.bloodFlow_MotorCtlCurrent .toFixed(2) , "%" + vTreatmentBloodFlow.bloodFlow_PWMDutyCycle .toFixed(2) , - "%" + vTreatmentBloodFlow.bloodFlow_SigStrength .toFixed(2) + vTreatmentBloodFlow.bloodFlow_RotorCount .toFixed(2) ] label: [ "Tgt.Flow", @@ -242,7 +242,7 @@ "MC.Spd", "MC.Cur", "PWM", - "SigS", + "Rtr.Cnt", ] textObjectName: "_HDBloodFlowData" } @@ -259,7 +259,6 @@ vTreatmentDialysateFlow.dialysateFlow_MotorCtlSpeed .toFixed(2) , vTreatmentDialysateFlow.dialysateFlow_MotorCtlCurrent.toFixed(2) , "%" + vTreatmentDialysateFlow.dialysateFlow_PWMDutyCycle .toFixed(2) , - "%" + vTreatmentDialysateFlow.dialysateFlow_SigStrength .toFixed(2) ] label: [ "Tgt.Flow", @@ -269,7 +268,6 @@ "MC.Spd", "MC.Cur", "PWM", - "SigS", ] textObjectName: "_HDInletFlowData" } Index: sources/model/MModel.h =================================================================== diff -u -rb7c9de054c6b7a1ca4bac9fbb0ec5d4ac06620a9 -r10f39b63ce8a992280ab123f05a5eb44a27c121b --- sources/model/MModel.h (.../MModel.h) (revision b7c9de054c6b7a1ca4bac9fbb0ec5d4ac06620a9) +++ sources/model/MModel.h (.../MModel.h) (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -45,7 +45,8 @@ // HD Data Messages #include "MTreatmentTimeData.h" -#include "MTreatmentFlowsData.h" +#include "MTreatmentInletFlowData.h" +#include "MTreatmentBloodFlowData.h" #include "MTreatmentOutletFlowData.h" #include "MTreatmentPressureOcclusionData.h" #include "MTreatmentRangesData.h" Index: sources/model/hd/data/treatment/MTreatmentBloodFlowData.cpp =================================================================== diff -u --- sources/model/hd/data/treatment/MTreatmentBloodFlowData.cpp (revision 0) +++ sources/model/hd/data/treatment/MTreatmentBloodFlowData.cpp (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -0,0 +1,72 @@ +/*! + * + * Copyright (c) 2019-2022 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 MTreatmentBloodFlowData.cpp + * \author (last) Michael Garthwaite + * \date (last) 09-Feb-2022 + * \author (original) Michael Garthwaite + * \date (original) 09-Feb-2022 + * + */ +#include "MTreatmentBloodFlowData.h" + +using namespace Model; + +// ----- BloodFlow ----- + +QVariantList MBloodFlow::parameters() const { + return { + _data.mFlowSetPoint .value, + _data.mMeasuredFlow .value, + _data.mRotorSpeed .value, + _data.mMotorSpeed .value, + _data.mMotorCtlSpeed .value, + _data.mMotorCtlCurrent.value, + _data.mPWMDutyCycle .value, + _data.mRotorCount .value, + }; +} + +bool MBloodFlow::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mFlowSetPoint )) + if (GetValue(vByteArray, index, _data.mMeasuredFlow )) + if (GetValue(vByteArray, index, _data.mRotorSpeed )) + if (GetValue(vByteArray, index, _data.mMotorSpeed )) + if (GetValue(vByteArray, index, _data.mMotorCtlSpeed )) + if (GetValue(vByteArray, index, _data.mMotorCtlCurrent )) + if (GetValue(vByteArray, index, _data.mPWMDutyCycle )) + if (GetValue(vByteArray, index, _data.mRotorCount )) + 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; } +} + +/*! + * \brief MBloodFlow::data + * \details Provides model's Data from the received messages data values of + BloodFlow. + * \return Data + */ +MBloodFlow::Data MBloodFlow::data() const { + Data data; + data.mFlowSetPoint = _data.mFlowSetPoint .value; + data.mMeasuredFlow = _data.mMeasuredFlow .value; + data.mRotorSpeed = _data.mRotorSpeed .value; + data.mMotorSpeed = _data.mMotorSpeed .value; + data.mMotorCtlSpeed = _data.mMotorCtlSpeed .value; + data.mMotorCtlCurrent = _data.mMotorCtlCurrent.value; + data.mPWMDutyCycle = _data.mPWMDutyCycle .value; + data.mRotorCount = _data.mRotorCount .value; + return data; +} Index: sources/model/hd/data/treatment/MTreatmentBloodFlowData.h =================================================================== diff -u --- sources/model/hd/data/treatment/MTreatmentBloodFlowData.h (revision 0) +++ sources/model/hd/data/treatment/MTreatmentBloodFlowData.h (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -0,0 +1,98 @@ +/*! + * + * Copyright (c) 2019-2022 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 MTreatmentBloodFlowData.h + * \author (last) Michael Garthwaite + * \date (last) 9-Feb-2022 + * \author (original) Michael Garthwaite + * \date (original) 9-Feb-2022 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { +/*! + * \brief The MBloodFlow class + * \details The blood flow data model + * + * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | + * |0x0500| 0x040 | 7 | 1 Hz | N | HD | All | Blood Flow Data | + * + * | Payload || + * | || + * | #1:(S32) | \ref Data::mFlowSetPoint | + * | #2:(F32) | \ref Data::mMeasuredFlow | + * | #3:(F32) | \ref Data::mRotorSpeed | + * | #4:(F32) | \ref Data::mMotorSpeed | + * | #5:(F32) | \ref Data::mMotorCtlSpeed | + * | #6:(F32) | \ref Data::mMotorCtlCurrent | + * | #7:(F32) | \ref Data::mPWMDutyCycle | + * | #7:(U32) | \ref Data::mRotorCount | + * + * \sa Data + * + *

Logging info

+ * | || + * | || + * | typeText | Datum | + * | unitText | HD | + * | infoText | BloodFlow | + * + */ +class MBloodFlow : public MAbstract { + + // friends + friend class ::tst_models; + + struct { + Types::S32 mFlowSetPoint ; ///< Flow Set Point + Types::F32 mMeasuredFlow ; ///< Measured Flow + Types::F32 mRotorSpeed ; ///< Rotor Speed + Types::F32 mMotorSpeed ; ///< Motor Speed + Types::F32 mMotorCtlSpeed ; ///< Motor Controller Speed + Types::F32 mMotorCtlCurrent ; ///< Motor Controller Current + Types::F32 mPWMDutyCycle ; ///< PWM Duty Cycle in % + Types::U32 mRotorCount ; ///< Signal Strength in % + } _data; + + QVariantList parameters() const override; +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("BloodFlow"); } + + struct Data { + qint32 mFlowSetPoint = 0; ///< Flow Set Point + float mMeasuredFlow = 0; ///< Measured Flow + float mRotorSpeed = 0; ///< Rotor Speed + float mMotorSpeed = 0; ///< Motor Speed + float mMotorCtlSpeed = 0; ///< Motor Controller Speed + float mMotorCtlCurrent = 0; ///< Motor Controller Current + float mPWMDutyCycle = 0; ///< PWM Duty Cycle in % + quint32 mRotorCount = 0; ///< Rotor Count + }; + + MBloodFlow() { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data() const; +}; +} + +typedef Model:: MBloodFlow::Data BloodFlowData; + Fisheye: Tag 10f39b63ce8a992280ab123f05a5eb44a27c121b refers to a dead (removed) revision in file `sources/model/hd/data/treatment/MTreatmentFlowsData.cpp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 10f39b63ce8a992280ab123f05a5eb44a27c121b refers to a dead (removed) revision in file `sources/model/hd/data/treatment/MTreatmentFlowsData.h'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/model/hd/data/treatment/MTreatmentInletFlowData.cpp =================================================================== diff -u --- sources/model/hd/data/treatment/MTreatmentInletFlowData.cpp (revision 0) +++ sources/model/hd/data/treatment/MTreatmentInletFlowData.cpp (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -0,0 +1,69 @@ +/*! + * + * Copyright (c) 2019-2022 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 MTreatmentInletFlowData.cpp + * \author (last) Michael Garthwaite + * \date (last) 9-Feb-2022 + * \author (original) Michael Garthwaite + * \date (original) 9-Feb-2022 + * + */ +#include "MTreatmentInletFlowData.h" + +using namespace Model; + +// ----- BloodFlow ----- + +QVariantList MDialysateFlow::parameters() const { + return { + _data.mFlowSetPoint .value, + _data.mMeasuredFlow .value, + _data.mRotorSpeed .value, + _data.mMotorSpeed .value, + _data.mMotorCtlSpeed .value, + _data.mMotorCtlCurrent.value, + _data.mPWMDutyCycle .value, + }; +} + +bool MDialysateFlow::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mFlowSetPoint )) + if (GetValue(vByteArray, index, _data.mMeasuredFlow )) + if (GetValue(vByteArray, index, _data.mRotorSpeed )) + if (GetValue(vByteArray, index, _data.mMotorSpeed )) + if (GetValue(vByteArray, index, _data.mMotorCtlSpeed )) + if (GetValue(vByteArray, index, _data.mMotorCtlCurrent )) + if (GetValue(vByteArray, index, _data.mPWMDutyCycle )) + 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; } +} + + +/*! + * \brief MDialysateFlow::data + * \details Provides model's Data from the received messages data values of + * DialysateFlow. + * \return Data + */ +MDialysateFlow::Data MDialysateFlow::data() const { + Data data; + data.mFlowSetPoint = _data.mFlowSetPoint .value; + data.mMeasuredFlow = _data.mMeasuredFlow .value; + data.mRotorSpeed = _data.mRotorSpeed .value; + data.mMotorSpeed = _data.mMotorSpeed .value; + data.mMotorCtlSpeed = _data.mMotorCtlSpeed .value; + data.mMotorCtlCurrent = _data.mMotorCtlCurrent.value; + data.mPWMDutyCycle = _data.mPWMDutyCycle .value; + return data; +} Index: sources/model/hd/data/treatment/MTreatmentInletFlowData.h =================================================================== diff -u --- sources/model/hd/data/treatment/MTreatmentInletFlowData.h (revision 0) +++ sources/model/hd/data/treatment/MTreatmentInletFlowData.h (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -0,0 +1,95 @@ +/*! + * + * Copyright (c) 2019-2022 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 MTreatmentFlowsData.h + * \author (last) Michael Garthwaite + * \date (last) 09-Feb-2022 + * \author (original) Michael Garthwaite + * \date (original) 09-Feb-2022 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MDialysateFlow class + * \details The dialysate flow data model + * + * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | + * |0x0800| 0x040 | 7 | 1 Hz | N | HD | All | Dialysate Flow Data | + * + * | Payload || + * | || + * | #1:(S32) | \ref Data::mFlowSetPoint | + * | #2:(F32) | \ref Data::mMeasuredFlow | + * | #3:(F32) | \ref Data::mRotorSpeed | + * | #4:(F32) | \ref Data::mMotorSpeed | + * | #5:(F32) | \ref Data::mMotorCtlSpeed | + * | #6:(F32) | \ref Data::mMotorCtlCurrent | + * | #7:(F32) | \ref Data::mPWMDutyCycle | + * + * \sa Data + * + *

Logging info

+ * | || + * | || + * | typeText | Datum | + * | unitText | HD | + * | infoText | DialysateFlow | + * + */ +class MDialysateFlow : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::S32 mFlowSetPoint ; ///< Flow Set Point + Types::F32 mMeasuredFlow ; ///< Measured Flow + Types::F32 mRotorSpeed ; ///< Rotor Speed + Types::F32 mMotorSpeed ; ///< Motor Speed + Types::F32 mMotorCtlSpeed ; ///< Motor Controller Speed + Types::F32 mMotorCtlCurrent ; ///< Motor Controller Current + Types::F32 mPWMDutyCycle ; ///< PWM Duty Cycle in % + } _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("DialysateFlow"); } + + struct Data { + qint32 mFlowSetPoint = 0; ///< Flow Set Point + float mMeasuredFlow = 0; ///< Measured Flow + float mRotorSpeed = 0; ///< Rotor Speed + float mMotorSpeed = 0; ///< Motor Speed + float mMotorCtlSpeed = 0; ///< Motor Controller Speed + float mMotorCtlCurrent = 0; ///< Motor Controller Current + float mPWMDutyCycle = 0; ///< PWM Duty Cycle in % + }; + + MDialysateFlow() { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data() const; +}; +} +typedef Model::MDialysateFlow::Data DialysateFlowData; Index: sources/view/hd/data/treatment/VTreatmentBloodFlow.cpp =================================================================== diff -u -r88563177f10f20ced98750b2e40036201728131d -r10f39b63ce8a992280ab123f05a5eb44a27c121b --- sources/view/hd/data/treatment/VTreatmentBloodFlow.cpp (.../VTreatmentBloodFlow.cpp) (revision 88563177f10f20ced98750b2e40036201728131d) +++ sources/view/hd/data/treatment/VTreatmentBloodFlow.cpp (.../VTreatmentBloodFlow.cpp) (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -28,5 +28,5 @@ bloodFlow_MotorCtlSpeed (vData.mMotorCtlSpeed ); bloodFlow_MotorCtlCurrent (vData.mMotorCtlCurrent ); bloodFlow_PWMDutyCycle (vData.mPWMDutyCycle ); - bloodFlow_SigStrength (vData.mSigStrength ); + bloodFlow_RotorCount (vData.mRotorCount ); } Index: sources/view/hd/data/treatment/VTreatmentBloodFlow.h =================================================================== diff -u -rfc329c788fe9453983072bee937ccbc95b4ed6e4 -r10f39b63ce8a992280ab123f05a5eb44a27c121b --- sources/view/hd/data/treatment/VTreatmentBloodFlow.h (.../VTreatmentBloodFlow.h) (revision fc329c788fe9453983072bee937ccbc95b4ed6e4) +++ sources/view/hd/data/treatment/VTreatmentBloodFlow.h (.../VTreatmentBloodFlow.h) (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -20,7 +20,7 @@ // Project #include "main.h" // Doxygen : do not remove #include "VView.h" -#include "MTreatmentFlowsData.h" +#include "MTreatmentBloodFlowData.h" // namespace namespace View { @@ -43,7 +43,7 @@ PROPERTY( float , bloodFlow_MotorCtlSpeed , 0) PROPERTY( float , bloodFlow_MotorCtlCurrent, 0) PROPERTY( float , bloodFlow_PWMDutyCycle , 0) - PROPERTY( float , bloodFlow_SigStrength , 0) + PROPERTY( quint32, bloodFlow_RotorCount , 0) VIEW_DEC(VTreatmentBloodFlow, BloodFlowData) }; Index: sources/view/hd/data/treatment/VTreatmentDialysateFlow.cpp =================================================================== diff -u -r88563177f10f20ced98750b2e40036201728131d -r10f39b63ce8a992280ab123f05a5eb44a27c121b --- sources/view/hd/data/treatment/VTreatmentDialysateFlow.cpp (.../VTreatmentDialysateFlow.cpp) (revision 88563177f10f20ced98750b2e40036201728131d) +++ sources/view/hd/data/treatment/VTreatmentDialysateFlow.cpp (.../VTreatmentDialysateFlow.cpp) (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -28,5 +28,4 @@ dialysateFlow_MotorCtlSpeed (vData.mMotorCtlSpeed ); dialysateFlow_MotorCtlCurrent (vData.mMotorCtlCurrent ); dialysateFlow_PWMDutyCycle (vData.mPWMDutyCycle ); - dialysateFlow_SigStrength (vData.mSigStrength ); } Index: sources/view/hd/data/treatment/VTreatmentDialysateFlow.h =================================================================== diff -u -rfc329c788fe9453983072bee937ccbc95b4ed6e4 -r10f39b63ce8a992280ab123f05a5eb44a27c121b --- sources/view/hd/data/treatment/VTreatmentDialysateFlow.h (.../VTreatmentDialysateFlow.h) (revision fc329c788fe9453983072bee937ccbc95b4ed6e4) +++ sources/view/hd/data/treatment/VTreatmentDialysateFlow.h (.../VTreatmentDialysateFlow.h) (revision 10f39b63ce8a992280ab123f05a5eb44a27c121b) @@ -20,7 +20,7 @@ // Project #include "main.h" // Doxygen : do not remove #include "VView.h" -#include "MTreatmentFlowsData.h" +#include "MTreatmentInletFlowData.h" // namespace namespace View { @@ -43,7 +43,6 @@ PROPERTY( float , dialysateFlow_MotorCtlSpeed , 0) PROPERTY( float , dialysateFlow_MotorCtlCurrent, 0) PROPERTY( float , dialysateFlow_PWMDutyCycle , 0) - PROPERTY( float , dialysateFlow_SigStrength , 0) VIEW_DEC(VTreatmentDialysateFlow, DialysateFlowData) };