/*! * * Copyright (c) 2020-2023 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) 10-Mar-2022 * \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 || * | || * | #1:(U16) | \ref Data::mStates | * * \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_VRD , ///< Valve Reservoir Drain 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, }; private: // DG Valves States (U16) Valves States QVariantList parameters() const override; struct { Types::Flags mStates ; } _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 ; }; MDGValvesStates () { } bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MDGValvesStates::Data DGValvesStatesData; typedef Model::MDGValvesStates::Flag DGValvesStatesFlag;