/*! * * 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 MDGValvesStatesData.h * \author (last) Behrouz NematiPour * \date (last) 28-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 MDGValvesStates class * \details The DG valves states data model * * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | * |0x2A00| 0x080 | 8 | 2 Hz | N | DG | All | DG Valves States Data | * * | Payload || * | || * | #01:(U16) | \ref Data::mStates | * | #02:(U08) | \ref Data::mVRf | | #03:(U08) | \ref Data::mVRi | | #04:(U08) | \ref Data::mRes | | #05:(U08) | \ref Data::mVRo | | #06:(U08) | \ref Data::mVPo | | #07:(U08) | \ref Data::mVBf | | #08:(U08) | \ref Data::mVRc | | #09:(U08) | \ref Data::mVDr | | #10:(U08) | \ref Data::mVPi | | #11:(U08) | \ref Data::mVSP | | #12:(U08) | \ref Data::mVR1 | | #13:(U08) | \ref Data::mVR2 | | #14:(U08) | \ref Data::mVPd | * * \sa Data * \sa Flag * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | DG | * | infoText | ValvesStates | * */ class MDGValvesStates : public MAbstract { // friends friend class ::tst_models; public: enum Flag { eFlag_ValveStates_VRF = 0, ///< Valve Reservoir Fill eFlag_ValveStates_VRI , ///< Valve Reservoir Inlet eFlag_ValveStates_RES , ///< Reserved // it is removed and VR1,VR2 added eFlag_ValveStates_VRO , ///< Valve Reservoir Outlet eFlag_ValveStates_VPO , ///< Valve Pressure Outlet eFlag_ValveStates_VBF , ///< Valve Bypass Filter eFlag_ValveStates_VRC , ///< Valve Recirculate eFlag_ValveStates_VDR , ///< Valve Drain eFlag_ValveStates_VPI , ///< Valve Pressure Inlet eFlag_ValveStates_VSP , ///< Valve Sampling Port eFlag_ValveStates_VR1 , ///< Valve Reservoir 1 Drain eFlag_ValveStates_VR2 , ///< Valve Reservoir 2 Drain eFlag_ValveStates_VPD , ///< Valve Production Drain eFlag_Bits_Length = 16, // the 16 bit has to be consumed since the next data starts after the 16 bit. }; private: // DG Valves States (U16) Valves States QVariantList parameters() const override; struct { Types::Flags mStates ; Types::U08 mVRf ; Types::U08 mVRi ; Types::U08 mRes ; Types::U08 mVRo ; Types::U08 mVPo ; Types::U08 mVBf ; Types::U08 mVRc ; Types::U08 mVDr ; Types::U08 mVPi ; Types::U08 mVSP ; Types::U08 mVR1 ; Types::U08 mVR2 ; Types::U08 mVPd ; } _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("ValvesStates"); } struct Data { QBitArray mStates ; quint8 mVRf = 0; quint8 mVRi = 0; quint8 mRes = 0; quint8 mVRo = 0; quint8 mVPo = 0; quint8 mVBf = 0; quint8 mVRc = 0; quint8 mVDr = 0; quint8 mVPi = 0; quint8 mVSP = 0; quint8 mVR1 = 0; quint8 mVR2 = 0; quint8 mVPd = 0; }; MDGValvesStates () { } bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MDGValvesStates::Data DGValvesStatesData; typedef Model::MDGValvesStates::Flag DGValvesStatesFlag;