/*! * * Copyright (c) 2020-2025 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 MDGReservoirData.h * \author (last) Behrouz NematiPour * \date (last) 31-Oct-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 MDGReservoir class * \details The DG reservoir data model * * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | * |0x2800| 0x080 | 8 | 1 Hz | N | DG | All | DG Reservoir Data | * * | Payload || * | || * | #01:(U32) | \ref Data::mActiveReservoir | * | #02:(U32) | \ref Data::mFillToVol | * | #03:(U32) | \ref Data::mDrainToVol | * | #04:(U32) | \ref Data::mTimeReservoirCycleMS | * | #05:(U32) | \ref Data::mTimeReservoirFill2SwitchMS | * | #06:(F32) | \ref Data::mTimeUFDecayMS | * | #07:(F32) | \ref Data::mTempUFFill | * | #08:(F32) | \ref Data::mTempReservoirUseActual | * | #09:(F32) | \ref Data::mTempReservoirEndFill | * | #10:(F32) | \ref Data::mTempAvgFill | * | #11:(F32) | \ref Data::mTempLastFill | * | #12:(F32) | \ref Data::mTimereservoirFill | * \sa Data * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | DG | * | infoText | Reservoir | * */ class MDGReservoir : public MAbstract { // friends friend class ::tst_models; QVariantList parameters() const override; struct { Types::U32 mActiveReservoir ; Types::U32 mFillToVol ; Types::U32 mDrainToVol ; Types::U32 mTimeReservoirCycleMS ; Types::U32 mTimeReservoirFill2SwitchMS ; Types::F32 mTimeUFDecayMS ; Types::F32 mTempUFFill ; Types::F32 mTempReservoirUseActual ; Types::F32 mTempReservoirEndFill ; Types::F32 mTempAvgFill ; Types::F32 mTempLastFill ; Types::F32 mTimereservoirFill ; } _data; public: Type_Enum typeText () const override { return Type_Enum::eDatum ; } Unit_Enum unitText () const override { return Unit_Enum::eDG ; } QString infoText () const override { return QString("Reservoir"); } struct Data { quint32 mActiveReservoir = 0; ///< Active reservoir quint32 mFillToVol = 0; ///< Fill to vol (mL) quint32 mDrainToVol = 0; ///< Drain to vol (mL) quint32 mTimeReservoirCycleMS = 0; ///< quint32 mTimeReservoirFill2SwitchMS = 0; ///< float mTimeUFDecayMS = 0; ///< float mTempUFFill = 0; ///< float mTempReservoirUseActual = 0; ///< float mTempReservoirEndFill = 0; ///< float mTempAvgFill = 0; ///< float mTempLastFill = 0; ///< float mTimereservoirFill = 0; ///< }; MDGReservoir () {} bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MDGReservoir::Data DGReservoirData;