/*! * * 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 MDDTemperaturesData.h * \author (last) Dara Navaei * \date (last) 05-Feb-2024 * \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 MDDTemperatures class * \details The DD temperatures data model * * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | * |0x2600| 0x101 | 8 | 2 Hz | N | DD | All | DD Temperatures Data | * * | Payload || * | || * | #01:(F32) | \ref Data::mInletPrimaryHeater | * | #02:(F32) | \ref Data::mHeatDisinfect | * | #03:(F32) | \ref Data::mOutletPrimaryHeater | * | #04:(F32) | \ref Data::mConductivitySensor1 | * | #05:(F32) | \ref Data::mConductivitySensor2 | * | #06:(F32) | \ref Data::mOutletRedundancy | * | #07:(F32) | \ref Data::mInletDialysate | * | #08:(F32) | \ref Data::mPrimaryHeaterThermoCouple | * | #09:(F32) | \ref Data::mTrimmerHeaterThermoCouple | * | #10:(F32) | \ref Data::mPrimaryHeaterColdJunction | * | #11:(F32) | \ref Data::mTrimmerHeaterColdJunction | * | #12:(F32) | \ref Data::mPrimaryHeaterInternal | * | #13:(F32) | \ref Data::mTrimmerHeaterInternal | * | #14:(F32) | \ref Data::mFpgaBoard | * | #15:(F32) | \ref Data::mLoadCellA1B1 | * | #16:(F32) | \ref Data::mLoadCellA2B2 | * | #17:(F32) | \ref Data::mInternalTHDORTD | * | #18:(F32) | \ref Data::mInternalTDIRTD | * | #19:(F32) | \ref Data::mInteralTHDRTD | * | #20:(F32) | \ref Data::mInternalCondSnsrTemp | * | #21:(F32) | \ref Data::mBaroTempSensor | * | #22:(F32) | \ref Data::mDialysateInletMvngAvg | * | #23:(F32) | \ref Data::mRedundantOutletMvngAvg | * * F32 d1Temp ; ///< Inlet heat exchanger temperature sensor F32 x6Temp ; ///< Outlet heat exchanger temperature sensor F32 d4Temp ; ///< Hydraulics primary heater temperature sensor F32 d50Temp ; ///< Trimmer heater temperature sensor F32 boardTemp ; ///< Board temperature sensor F32 baroTemp ; ///< Barometric temperature sensor F32 d16CondTemp ; ///< D16 temperature value F32 d28CondTemp ; ///< D28 temperature value F32 d30CondTemp ; ///< D30 temperature value F32 d44CondTemp ; ///< D44 temperature value F32 d75CondTemp ; ///< D75 temperature value F32 d4AvgTemp ; ///< D4 moving average temperature value F32 d50AvgTemp ; ///< D50 moving average temperature value F32 d28AvgTemp ; ///< D28 moving average temperature value F32 d30AvgTemp ; ///< D30 moving average temperature value * * \sa Data * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | DD | * | infoText | Temperatures | * */ class MDDTemperatures : public MAbstract { // friends friend class ::tst_models; // DD Temperatures Data 1 - F32 Inlet primary heater 5 - F32 Outlet redundancy 9 - F32 Primary heater cold junction // 2 - F32 Outlet primary heater 6 - F32 Inlet dialysate 10 - F32 Trimmer heater cold junction // 3 - F32 Conductivity sensor 1 7 - F32 Primary heater thermo-couple 11 - F32 Primary heater internal temperature // 4 - F32 Conductivity sensor 2 8 - F32 Trimmer heater thermo-couple 12 - F32 Trimmer heater internal temperature QVariantList parameters() const override; struct { Types::F32 d1Temp ; ///< Inlet heat exchanger temperature sensor Types::F32 x6Temp ; ///< Outlet heat exchanger temperature sensor Types::F32 d4Temp ; ///< Hydraulics primary heater temperature sensor Types::F32 d50Temp ; ///< Trimmer heater temperature sensor Types::F32 boardTemp ; ///< Board temperature sensor Types::F32 baroTemp ; ///< Barometric temperature sensor Types::F32 d16CondTemp; ///< D16 temperature value Types::F32 d28CondTemp; ///< D28 temperature value Types::F32 d30CondTemp; ///< D30 temperature value Types::F32 d44CondTemp; ///< D44 temperature value Types::F32 d75CondTemp; ///< D75 temperature value Types::F32 d4AvgTemp ; ///< D4 moving average temperature value Types::F32 d50AvgTemp ; ///< D50 moving average temperature value Types::F32 d28AvgTemp ; ///< D28 moving average temperature value Types::F32 d30AvgTemp ; ///< D30 moving average temperature value } _data; public: Type_Enum typeText () const override { return Type_Enum::eDatum ; } Unit_Enum unitText () const override { return Unit_Enum::eDD ; } QString infoText () const override { return QString("Temperatures"); } struct Data { float mInletHeatExchanger = 0; ///< Inlet heat exchanger temperature sensor float mOutletHeatExchanger = 0; ///< Outlet heat exchanger temperature sensor float mHydraulicsPrimaryHeater = 0; ///< Hydraulics primary heater temperature sensor float mTrimmerHeater = 0; ///< Trimmer heater temperature sensor float mBoardTemperature = 0; ///< Board temperature sensor float mBarometricTemperature = 0; ///< Barometric temperature sensor float mD16Conductivity = 0; ///< D16 temperature value float mD28Conductivity = 0; ///< D28 temperature value float mD30Conductivity = 0; ///< D30 temperature value float mD44Conductivity = 0; ///< D44 temperature value float mD75Conductivity = 0; ///< D75 temperature value float mD4MovingAverage = 0; ///< D4 moving average temperature value float mD50MovingAverage = 0; ///< D50 moving average temperature value float mD28MovingAverage = 0; ///< D28 moving average temperature value float mD30MovingAverage = 0; ///< D30 moving average temperature value }; MDDTemperatures() { } bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MDDTemperatures::Data DDTemperaturesData;