/*! * * 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 MDDValvesStatesData.h * \author (last) Behrouz NematiPour * \date (last) 28-Mar-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 MDDValvesStates class * \details The DD valves states data model * * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | * |0x1B00| 0x101 | 8 | 2 Hz | N | DD | All | DD Valves States Data | * * | Payload || * | || * | #01:(U16) | \ref Data::mValvesStatus | * | #02:(U08) | \ref Data::mValvesBCStatus | * | #03:(U08) | \ref Data::mValvesUFStatus | * | #04:(U08) | \ref Data::mValvesSensedState1 | * | #..:(U08) | \ref Data::mValvesSensedState.. | * | #31:(U08) | \ref Data::mValvesSensedState28 | * * * \sa Data * \sa Flag * FIRST_HYD_VALVE = 0, ///< Start of Hydraulics valve group D14_VALV = FIRST_HYD_VALVE, ///< Valve Hydraulics Outlet (D14) D52_VALV, ///< Valve Thermal Disinfect (D52) D8_VALV, ///< Valve Hydraulics Bypass (D8) D54_VALV, ///< Valve Rinse Port (D54) D53_VALV, ///< Valve Drain (D53) D34_VALV, ///< Valve Dialyzer Bypass (D34) D64_VALV, ///< Valve Purge 1 (D64) D31_VALV, ///< Valve Pressure Test (D31) D65_VALV, ///< Valve DryBcarb Inlet (D65) D35_VALV, ///< Valve Dialyzer Inlet (D35) D40_VALV, ///< Valve Dialyzer Outlet (D40) D47_VALV, ///< Valve Dialysate Out Purge 2 (D47) D3_VALV, ///< Valve Hydraulics Inlet (D3) M4_VALV, ///< Valve Water Inlet (M4) #ifdef __PUMPTEST__ UF1, ///< UF1 valve UF2, ///< UF2 valve LAST_HYD_VALVE = UF2, ///< End of Hydraulics valve of group #else LAST_HYD_VALVE = M4_VALV, ///< End of Hydraulics valve of group RSRVD_SPACE1, ///< This space has been reserved RSRVD_SPACE2, ///< This space has been reserved #endif FIRST_BC_VALVE, ///< Start of Balancing Chamber valve group D23_VALV = FIRST_BC_VALVE, ///< Balancing chamber Valve 1 (D23) D19_VALV, ///< Balancing chamber Valve 2 (D19) D25_VALV, ///< Balancing chamber Valve 3 (D25) D26_VALV, ///< Balancing chamber Valve 7 (D26) D24_VALV, ///< Balancing chamber Valve 5 (D24) D20_VALV, ///< Balancing chamber Valve 6 (D20) D21_VALV, ///< Balancing chamber Valve 4 (D21) D22_VALV, ///< Balancing chamber Valve 8 (D22) LAST_BC_VALVE = D22_VALV, ///< End of Balancing Chamber valve group FIRST_UF_VALVE, ///< Start of Ultrafiltration valve group D69_VALV = FIRST_UF_VALVE, ///< Ultrafiltration Valve 1 Inlet (D69) D71_VALV, ///< Ultrafiltration Valve 2 Inlet (D71) D70_VALV, ///< Ultrafiltration Valve 1 Outlet (D70) D72_VALV, ///< Ultrafiltration Valve 2 Outlet (D72) LAST_UF_VALVE = D72_VALV, ///< End of Ultrafiltration valve group NUM_OF_VALVES ///< Number of valves * *

Logging info

* | || * | || * | typeText | Datum | * | unitText | DD | * | infoText | ValvesStates | * */ class MDDValvesStates : public MAbstract { // friends friend class ::tst_models; public: enum Flag { eFlag_ValveStates_VRF = 0, ///< Valve Reservoir Fill eFlag_ValveStates_VRI , ///< Valve Reservoir Inlet eFlag_ValveStates_RES , ///< Reserved // it is removed and VR1,VR2 added eFlag_ValveStates_VRO , ///< Valve Reservoir Outlet eFlag_ValveStates_VPO , ///< Valve Pressure Outlet eFlag_ValveStates_VBF , ///< Valve Bypass Filter eFlag_ValveStates_VRC , ///< Valve Recirculate eFlag_ValveStates_VDR , ///< Valve Drain eFlag_ValveStates_VPI , ///< Valve Pressure Inlet eFlag_ValveStates_VSP , ///< Valve Sampling Port eFlag_ValveStates_VR1 , ///< Valve Reservoir 1 Drain eFlag_ValveStates_VR2 , ///< Valve Reservoir 2 Drain eFlag_ValveStates_VPD , ///< Valve Production Drain eFlag_Bits_Length = 16, // the 16 bit has to be consumed since the next data starts after the 16 bit. }; private: // DD Valves States (U16) Valves States QVariantList parameters() const override; struct { Types::Flags mStates ; Types::U08 mVRf ; Types::U08 mVRi ; Types::U08 mRes ; Types::U08 mVRo ; Types::U08 mVPo ; Types::U08 mVBf ; Types::U08 mVRc ; Types::U08 mVDr ; Types::U08 mVPi ; Types::U08 mVSP ; Types::U08 mVR1 ; Types::U08 mVR2 ; Types::U08 mVPd ; } _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("ValvesStates"); } struct Data { QBitArray mStates ; quint8 mVRf = 0; quint8 mVRi = 0; quint8 mRes = 0; quint8 mVRo = 0; quint8 mVPo = 0; quint8 mVBf = 0; quint8 mVRc = 0; quint8 mVDr = 0; quint8 mVPi = 0; quint8 mVSP = 0; quint8 mVR1 = 0; quint8 mVR2 = 0; quint8 mVPd = 0; }; MDDValvesStates () { } bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; Data data ( ) const ; }; } typedef Model::MDDValvesStates::Data DDValvesStatesData; typedef Model::MDDValvesStates::Flag DDValvesStatesFlag;