/*! * * Copyright (c) 2021-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 VPreTreatmentDisposablesPrimeData.cpp * \author (last) Behrouz NematiPour * \date (last) 11-Apr-2021 * \author (original) Behrouz NematiPour * \date (original) 11-Apr-2021 * */ #include "VPreTreatmentDisposablesPrimeData.h" // Project #include "GuiController.h" //ENUM Checks //TODO: ---------- Improve me ---------- // This part of the code is a WIP example to fail the build if the enum is changed but UI doesn't aware. #define ENUM_PRINT( vTYPE ) {} // qDebug() << v##vTYPE #define ENUM_CHECK_O( vTYPE, vVALUE ) vTYPE v##vTYPE = static_cast(vVALUE); switch(v##vTYPE) #define ENUM_CHECK( vTYPE, vENUM ) case vTYPE::vENUM : { if ( vTYPE::vENUM == v##vTYPE) ENUM_PRINT(vTYPE); } break; #define ENUM_CHECK_C( vTYPE, vENUM ) case vTYPE::vENUM : break; #define ENUM_READ( vTYPE, vENUM, vSTATE ) vSTATE( vTYPE::vENUM == v##vTYPE); VIEW_DEF(VPreTreatmentDisposablesPrime, PreTreatmentDisposablesPrimeData) void VPreTreatmentDisposablesPrime::onActionReceive(const PreTreatmentDisposablesPrimeData &vData) { state (vData.mPrimeState ); total (vData.mTotalDuration ); countDown (vData.mCountDown ); pauseCountDown (vData.mPauseCountdown ); elapsed (vData.mTotalDuration - vData.mCountDown ); // Prime States // ENUM_CHECK_O( GuiPreTreatmentPrimeStates, vData.mPrimeState ) { // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_START_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC_INITIAL_REVERSE_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC_AIR_TRAP_LOWER_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC_INITIAL_DIALYZER_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC_FILL_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC_CLEAR_STATE1 ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC_CLEAR_STATE2 ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC_CLEAR_STATE3 ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_WAIT_FOR_DIALYSATE_READY_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_DC_INITIAL_DIALYSATE_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_DC_DEPRESSURIZE_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_WAIT_FOR_AIR_TRAP_FILL_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC2_FORWARD_RECIRC_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC2_PAUSE_TO_ROTATE_OPP_DIR_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_BC2_REVERSE_RECIRC_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_DC_DISCARD_AND_REVERSE_PRIME_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_PAUSE_STATE ) // ENUM_CHECK ( GuiPreTreatmentPrimeStates, PRIME_COMPLETE_STATE ) // ENUM_CHECK_C( GuiPreTreatmentPrimeStates, NUM_OF_PRIME_STATES ) } // ENUM_READ ( GuiPreTreatmentPrimeStates, PRIME_BC_INITIAL_REVERSE_STATE , primeBloodCircuitStart ); // ENUM_READ ( GuiPreTreatmentPrimeStates, PRIME_BC_CLEAR_STATE3 , primeBloodCircuitEnd ); // ENUM_READ ( GuiPreTreatmentPrimeStates, PRIME_DC_INITIAL_DIALYSATE_STATE , primeDialysateCircuitStart ); // ENUM_READ ( GuiPreTreatmentPrimeStates, PRIME_BC2_FORWARD_RECIRC_STATE , primeDialysateCircuitEnd ); // ENUM_READ ( GuiPreTreatmentPrimeStates, PRIME_BC2_FORWARD_RECIRC_STATE , primeDialysatePurgeStart ); // ENUM_READ ( GuiPreTreatmentPrimeStates, PRIME_DC_DISCARD_AND_REVERSE_PRIME_STATE , primeDialysatePurgeEnd ); // ENUM_READ ( GuiPreTreatmentPrimeStates, PRIME_DC_DISCARD_AND_REVERSE_PRIME_STATE , primePrimingFluidDiscardStart ); // ENUM_READ ( GuiPreTreatmentPrimeStates, PRIME_COMPLETE_STATE , primePrimingFluidDiscardEnd ); // ENUM_READ ( GuiPreTreatmentPrimeStates, PRIME_COMPLETE_STATE , primeComplete ); // emit state(vData.mPrimeState); primeBloodCircuit(vData.mPrimeState >= GuiPreTreatmentPrimeStates::PRIME_START_STATE && vData.mPrimeState <= GuiPreTreatmentPrimeStates::PRIME_WAIT_FOR_DIALYSATE_READY_STATE ); }