/*! * * Copyright (c) 2022-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 MDGConductivityData.h * \author (last) Behrouz NematiPour * \date (last) 30-Mar-2023 * \author (original) Michael Garthwaite * \date (original) 23-Feb-2022 * */ #pragma once // Qt #include // Project #include "MAbstract.h" #include "types.h" // forward declarations class tst_models; namespace Model { /*! * \brief The MDGConductivityData class * \details The DG conductivity sensors data model * * | MSG | CAN ID | Type | Ack | Src | Dst | Description | * |:----:|:------:|:------:|:---:|:---:|:---:|:-----------: | * |0x3100| 0x080 | 1 Hz | N | DG | All | DG Conductivity Data | * * | Payload || * | || * | #01:(F32) | \ref Data::mRORejectionRatio | * | #02:(F32) | \ref Data::mCPi | * | #03:(F32) | \ref Data::mCPo | * | #04:(F32) | \ref Data::mCD1 | * | #05:(F32) | \ref Data::mCD2 | * | #06:(F32) | \ref Data::mCPiRaw | * | #07:(F32) | \ref Data::mCPoRaw | * | #08:(F32) | \ref Data::mCD1Raw | * | #09:(F32) | \ref Data::mCD2Raw | * | #10:(U32) | \ref Data::mCPiSensorStatus | * | #11:(U32) | \ref Data::mCPoSensorStatus | * | #12:(U32) | \ref Data::mCD1SensorStatus | * | #13:(U32) | \ref Data::mCD2SensorStatus | * * * \sa Data * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | DG | * | infoText | Conductivity | * */ class MDGConductivityData : public MAbstract { // friends friend class ::tst_models; QVariantList parameters() const override; struct { Types::F32 mRORejectionRatio; Types::F32 mCPi ; Types::F32 mCPo ; Types::F32 mCD1 ; Types::F32 mCD2 ; Types::F32 mCPiRaw ; Types::F32 mCPoRaw ; Types::F32 mCD1Raw ; Types::F32 mCD2Raw ; Types::U32 mCPiSensorStatus ; Types::U32 mCPoSensorStatus ; Types::U32 mCD1SensorStatus ; Types::U32 mCD2SensorStatus ; } _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("Conductivity"); } struct Data{ float mRORejectionRatio = 0; ///< RO Rejection Ratio float mCPi = 0; ///< CPi conductivity float mCPo = 0; ///< CPo conductivity float mCD1 = 0; ///< CP1 conductivity float mCD2 = 0; ///< CP2 conductivity float mCPiRaw = 0; ///< CPi Raw float mCPoRaw = 0; ///< CPo Raw float mCD1Raw = 0; ///< CD1 Raw float mCD2Raw = 0; ///< CD2 Raw quint32 mCPiSensorStatus = 0; ///< CPi Sensor Status quint32 mCPoSensorStatus = 0; ///< CPo Sensor Status quint32 mCD1SensorStatus = 0; ///< CD1 Sensor Status quint32 mCD2SensorStatus = 0; ///< CD2 Sensor Status }; MDGConductivityData () { } bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MDGConductivityData::Data DGConductivityData;