/*! * * Copyright (c) 2020-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 MFPROPumpData.h * \author (last) Behrouz NematiPour * \date (last) 10-Feb-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 MFPROPump class * \details The FP ROPump data model * * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | * |0x3200| 0x102 | 8 | 1 Hz | N | FP | All | FP ROPump Data | * * | Payload || * | || * | #01:(U32) | \ref Data::mP12PumpState | * | #02:(U32) | \ref Data::mP12PumpDutyCycle | * | #03:(U32) | \ref Data::mP12PumpFBDutyCycle | * | #04:(F32) | \ref Data::mP12PumpSpeed | * | #05:(F32) | \ref Data::mP12TargetPressure | * | #06:(F32) | \ref Data::mP12TargetFlow | * | #07:(F32) | \ref Data::mP12TargetDutyCycle | * | #08:(F32) | \ref Data::mP12PumpDutyCyclePct | * | #09:(F32) | \ref Data::mP12PumpFBDutyCyclePct | * * \sa Data * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | FP | * | infoText | ROPump | * */ class MFPROPump : public MAbstract { // friends friend class ::tst_models; QVariantList parameters() const override; struct { Types::U32 mP12PumpState ; ///< RO pump current state. Types::U32 mP12PumpDutyCycle ; ///< RO pump duty cycle at driver level. Types::U32 mP12PumpFBDutyCycle ; ///< RO pump feedback duty cycle. Types::F32 mP12PumpSpeed ; ///< RO pump speed (RPM). Types::F32 mP12TargetPressure ; ///< RO pump target pressure for control. Types::F32 mP12TargetFlow ; ///< RO pump target flow ( in mL/min ) for control. Types::F32 mP12TargetDutyCycle ; ///< RO pump target duty cycle for open loop control Types::F32 mP12PumpDutyCyclePct ; ///< RO pump duty cycle as a percentage. Types::F32 mP12PumpFBDutyCyclePct ; ///< RO pump feedback duty cycle as a percentage. } _data; public: Type_Enum typeText () const override { return Type_Enum::eDatum ; } Unit_Enum unitText () const override { return Unit_Enum::eFP ; } QString infoText () const override { return QString("ROPump") ; } struct Data { quint32 mP12PumpState = 0; ///< RO pump current state. quint32 mP12PumpDutyCycle = 0; ///< RO pump duty cycle at driver level. quint32 mP12PumpFBDutyCycle = 0; ///< RO pump feedback duty cycle. float mP12PumpSpeed = 0; ///< RO pump speed (RPM). float mP12TargetPressure = 0; ///< RO pump target pressure for control. float mP12TargetFlow = 0; ///< RO pump target flow ( in mL/min ) for control. float mP12TargetDutyCycle = 0; ///< RO pump target duty cycle for open loop control float mP12PumpDutyCyclePct = 0; ///< RO pump duty cycle as a percentage. float mP12PumpFBDutyCyclePct = 0; ///< RO pump feedback duty cycle as a percentage. }; MFPROPump () {} bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MFPROPump::Data FPROPumpData;