/*! * * 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 MTreatmentOutletFlowData.h * \author (last) Dara Navaei * \date (last) 18-Jan-2024 * \author (original) Behrouz NematiPour * \date (original) 11-Apr-2021 * */ #pragma once // Qt #include // Project #include "MAbstract.h" #include "types.h" // forward declarations class tst_models; namespace Model { /*! * \brief The MOutletFlow class * \details The outlet flow data model * * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | * |0x0B00| 0x040 | 7 | 1 Hz | N | HD | All | Outlet Flow Data | * * | Payload || * | || * | #1:(F32) | \ref Data::mRefUFVol | * | #2:(F32) | \ref Data::mMeasUFVol | * | #3:(F32) | \ref Data::mRotorSpeed | * | #4:(F32) | \ref Data::mMotorSpeed | * | #5:(F32) | \ref Data::mMotorCtlSpeed | * | #6:(F32) | \ref Data::mMotorCtlCurrent | * | #7:(F32) | \ref Data::mPWMDtCycle | * | # :(F32) | \ref Data::mDopCorrOffset | * | # :(F32) | \ref Data::mDopCalcRate | * | # :(F32) | \ref Data::mUfCalcRate | * | # :(U32) | \ref Data::mRotorHall | * | # :(F32) | \ref Data::mCurrentSetUFRate| * | # :(U32) | \ref Data::mDialOutPumpState| * * \sa Data * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | HD | * | infoText | OutletFlow | * */ class MOutletFlow : public MAbstract { // friends friend class ::tst_models; QVariantList parameters() const override; struct { Types::F32 mRefUFVol ; Types::F32 mMeasUFVol ; Types::F32 mRotorSpeed ; Types::F32 mMotorSpeed ; Types::F32 mMotorCtlSpeed ; Types::F32 mMotorCtlCurrent ; Types::F32 mPWMDtCycle ; Types::F32 mDopCorrOffset ; Types::F32 mDopCalcRate ; Types::F32 mUfCalcRate ; Types::U32 mRotorHall ; Types::F32 mCurrentSetUFRate ; Types::U32 mDialOutPumpState ; } _data; public: Type_Enum typeText () const override { return Type_Enum::eDatum ; } Unit_Enum unitText () const override { return Unit_Enum::eTD ; } QString infoText () const override { return QString("OutletFlow"); } struct Data { float mRefUFVol = 0; ///< Reference UF Volume float mMeasUFVol = 0; ///< Measured UF Volume float mRotorSpeed = 0; ///< Rotor Speed float mMotorSpeed = 0; ///< Motor Speed float mMotorCtlSpeed = 0; ///< Motor Controller Speed float mMotorCtlCurrent = 0; ///< Motor Controller Current float mPWMDtCycle = 0; ///< PWM Duty Cycle in % float mDopCorrOffset = 0; ///< float mDopCalcRate = 0; ///< float mUfCalcRate = 0; ///< int mRotorHall = 0; ///< float mCurrentSetUFRate = 0; ///< Current Set UF Rate int mDialOutPumpState = 0; ///< Dialout pump state }; MOutletFlow () { } bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MOutletFlow::Data OutletFlowData;