/*! * * 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 MTDPressureData.h * \author (original) Tiffany Mejia * \date (original) 07-May-2025 * */ #pragma once // Qt #include // Project #include "MAbstract.h" #include "types.h" // forward declarations class tst_models; namespace Model { /*! * \brief The MTDPressureData class * \details The TD Pressure data model * * | MSG | CAN ID | Type | Ack | Src | Dst | Description | * |:----:|:------:|:------:|:---:|:---:|:---:|:-----------: | * |0x2400| 0x100 | 1 Hz | N | TD | All | TD Pressure Data | * * | Payload || * | || * | #01:(U32) | \ref Data::mArterialPressure | * | #02:(U32) | \ref Data::mVenousPressure | * | #03:(U32) | \ref Data::mPresLimitState | * | #04:(U32) | \ref Data::mArterialMinLimit | * | #05:(U32) | \ref Data::mArterialMaxLimit | * | #06:(U32) | \ref Data::mVenousMinLimit | * | #07:(U32) | \ref Data::mVenousMaxLimit | * | #08:(U32) | \ref Data::mArterialLongFilterPres | * | #09:(U32) | \ref Data::mVenousLongFilterPres | * | #10:(U32) | \ref Data::mTransmembranePressure | * | #11:(U32) | \ref Data::mTransmembraneMinLimit | * | #12:(U32) | \ref Data::mTransmembraneMaxLimit | * * \sa Data * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | TD | * | infoText | Pressure | * */ class MTDPressureData : public MAbstract { // friends friend class ::tst_models; QVariantList parameters() const override; struct { Types::F32 mH2Pressure ; Types::F32 mH14Pressure ; Types::U32 mPresLimitState ; Types::S32 mH2MinLimit ; Types::S32 mH2MaxLimit ; Types::S32 mH14MinLimit ; Types::S32 mH14MaxLimit ; Types::F32 mH2LongFilterPres ; Types::F32 mH14LongFilterPres ; Types::F32 mTmpPressure ; Types::F32 mTmpMinLimit ; Types::F32 mTmpMaxLimit ; } _data; public: Type_Enum typeText() const override { return Type_Enum::eDatum ; } Unit_Enum unitText() const override { return Unit_Enum::eTD ; } QString infoText() const override { return QString("Pressure") ; } struct Data { float mArterialPressure = 0; ///< Latest arterial pressure (mmHg) float mVenousPressure = 0; ///< Latest venous pressure (mmHg) quint32 mPresLimitState = 0; ///< Current pressure limits state (enum-stabilization or stable) qint32 mArterialMinLimit = 0; ///< Current arterial minimum pressure limit (mmHg) qint32 mArterialMaxLimit = 0; ///< Current arterial maximum pressure limit (mmHg) qint32 mVenousMinLimit = 0; ///< Current venous minimum pressure limit (mmHg) qint32 mVenousMaxLimit = 0; ///< Current venous maximum pressure limit (mmHg) float mArterialLongFilterPres = 0; ///< Latest long filtered arterial pressure (mmHg) float mVenousLongFilterPres = 0; ///< Latest long filtered venous pressure (mmHg) float mTransmembranePressure = 0; ///< Latest trans-membrane pressure (mmHg) float mTransmembraneMinLimit = 0; ///< Current TMP minimum pressure limit (mmHg) float mTransmembraneMaxLimit = 0; ///< Current TMP maximum pressure limit (mmHg) }; MTDPressureData () { } bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MTDPressureData::Data TDPressureData;