/*! * * 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 MTreatmentFlowsData.h * \date 3/9/2020 * \author Behrouz NematiPour * */ #pragma once // Qt #include // Project #include "MAbstract.h" #include "types.h" // forward declarations class tst_models; namespace Model { /*! * \brief The Flow Data class */ class MFlow : public MAbstract { QVariantList parameters() const override; protected: struct Data { Types::S32 mFlowSetPoint ; /*!< vFlowSetPoint - Flow Set Point value of type signed int extracted out */ Types::F32 mMeasuredFlow ; /*!< vMeasuredFlow - Measured Flow value of type float extracted out */ Types::F32 mRotorSpeed ; /*!< vRotorSpeed - Rotor Speed value of type float extracted out */ Types::F32 mMotorSpeed ; /*!< vMotorSpeed - Motor Speed value of type float extracted out */ Types::F32 mMotorCtlSpeed ; /*!< vMotorCtlSpeed - Motor Controller Speed value of type float extracted out */ Types::F32 mMotorCtlCurrent ; /*!< vMotorCtlCurrent - Motor Controller Current value of type float extracted out */ Types::F32 mPWMDutyCycle ; /*!< vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out */ } _data; public: Type_Enum typeText () const override { return Type_Enum::eDatum; } Unit_Enum unitText () const override { return Unit_Enum::eHD ; } MFlow () { } bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; }; /*! * \brief The Blood Flow Data class */ class MBloodFlow : public MFlow { // friends friend class ::tst_models; public: QString infoText () const override { return QString("BloodFlow"); } struct Data { qint32 mFlowSetPoint = 0; /*!< vFlowSetPoint - Flow Set Point value of type signed int extracted out */ float mMeasuredFlow = 0; /*!< vMeasuredFlow - Measured Flow value of type float extracted out */ float mRotorSpeed = 0; /*!< vRotorSpeed - Rotor Speed value of type float extracted out */ float mMotorSpeed = 0; /*!< vMotorSpeed - Motor Speed value of type float extracted out */ float mMotorCtlSpeed = 0; /*!< vMotorCtlSpeed - Motor Controller Speed value of type float extracted out */ float mMotorCtlCurrent = 0; /*!< vMotorCtlCurrent - Motor Controller Current value of type float extracted out */ float mPWMDutyCycle = 0; /*!< vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out */ }; MBloodFlow() { } Data data() const; }; /*! * \brief The Dialysate Flow Data class */ class MDialysateFlow : public MFlow { // friends friend class ::tst_models; public: QString infoText () const override { return QString("DialysateFlow"); } struct Data { qint32 mFlowSetPoint = 0; /*!< vFlowSetPoint - Flow Set Point value of type signed int extracted out */ float mMeasuredFlow = 0; /*!< vMeasuredFlow - Measured Flow value of type float extracted out */ float mRotorSpeed = 0; /*!< vRotorSpeed - Rotor Speed value of type float extracted out */ float mMotorSpeed = 0; /*!< vMotorSpeed - Motor Speed value of type float extracted out */ float mMotorCtlSpeed = 0; /*!< vMotorCtlSpeed - Motor Controller Speed value of type float extracted out */ float mMotorCtlCurrent = 0; /*!< vMotorCtlCurrent - Motor Controller Current value of type float extracted out */ float mPWMDutyCycle = 0; /*!< vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out */ }; MDialysateFlow() { } Data data() const; }; } typedef Model:: MBloodFlow::Data BloodFlowData; typedef Model::MDialysateFlow::Data DialysateFlowData;