/*! * * 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 MFPBoostPumpData.h * \author (last) Behrouz NematiPour * \date (last) 10-Feb-2023 * \author (original) Behrouz NemaiPour * \date (original) 02-Jul-2020 * */ #pragma once // Qt #include // PBoostject #include "MAbstract.h" #include "types.h" // forward declarations class tst_models; namespace Model { /*! * \brief The MFPBoostPump class * \details The FP BoostPump data model * * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | * |0x5000| 0x102 | 8 | 1 Hz | N | FP | All | FP BoostPump Data | * * | Payload || * | || * | #01:(U32) | \ref Data::mP40PumpState | * | #02:(U32) | \ref Data::mP40PumpDutyCycle | * | #03:(U32) | \ref Data::mP40PumpFBDutyCycle | * | #04:(F32) | \ref Data::mP40PumpSpeed | * | #05:(F32) | \ref Data::mP40TargetPressure | * | #06:(F32) | \ref Data::mP40TargetFlow | * | #07:(F32) | \ref Data::mP40TargetDutyCycle | * | #08:(F32) | \ref Data::mP40PumpDutyCyclePct | * | #09:(F32) | \ref Data::mP40PumpFBDutyCyclePct | * * \sa Data * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | FP | * | infoText | BoostPump | * */ class MFPBoostPump : public MAbstract { // friends friend class ::tst_models; QVariantList parameters() const override; struct { Types::U32 mP40PumpState ; ///< Boost pump current state. Types::U32 mP40PumpDutyCycle ; ///< Boost pump duty cycle at driver level. Types::U32 mP40PumpFBDutyCycle ; ///< Boost pump feedback duty cycle. Types::F32 mP40PumpSpeed ; ///< Boost pump speed (RPM). Types::F32 mP40TargetPressure ; ///< Boost pump target pressure for contBoostl. Types::F32 mP40TargetFlow ; ///< Boost pump target flow ( in mL/min ) for contBoostl. Types::F32 mP40TargetDutyCycle ; ///< Boost pump target duty cycle for open loop contBoostl Types::F32 mP40PumpDutyCyclePct ; ///< Boost pump duty cycle as a percentage. Types::F32 mP40PumpFBDutyCyclePct ; ///< Boost 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("BoostPump") ; } struct Data { quint32 mP40PumpState = 0; ///< Boost pump current state. quint32 mP40PumpDutyCycle = 0; ///< Boost pump duty cycle at driver level. quint32 mP40PumpFBDutyCycle = 0; ///< Boost pump feedback duty cycle. float mP40PumpSpeed = 0; ///< Boost pump speed (RPM). float mP40TargetPressure = 0; ///< Boost pump target pressure for contBoostl. float mP40TargetFlow = 0; ///< Boost pump target flow ( in mL/min ) for contBoostl. float mP40TargetDutyCycle = 0; ///< Boost pump target duty cycle for open loop contBoostl float mP40PumpDutyCyclePct = 0; ///< Boost pump duty cycle as a percentage. float mP40PumpFBDutyCyclePct = 0; ///< Boost pump feedback duty cycle as a percentage. }; MFPBoostPump () {} bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MFPBoostPump::Data FPBoostPumpData;