Index: sources/view/hd/data/VHDTreatmentStatesData.cpp =================================================================== diff -u -rc70a3e2ca2b9a679b042bf543dc331cffbd937ac -r2c9421bd6da03c7e0bd0bfa1f49fa95c2bd18a95 --- sources/view/hd/data/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision c70a3e2ca2b9a679b042bf543dc331cffbd937ac) +++ sources/view/hd/data/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision 2c9421bd6da03c7e0bd0bfa1f49fa95c2bd18a95) @@ -17,20 +17,91 @@ // Project #include "GuiController.h" -VIEW_DEF(VHDTreatmentStates, TreatmentStatesData) +VIEW_DEF_CLASS(VHDTreatmentStates) +/*! + * \brief VTreatmentAdjustmentSaline::initConnections + * \details Initializes the message(s) connection + * \note This class not only listens to its dedicated message TreatmentStatesData, + * But also listens to other messages which affect ultrafiltration and saline bolus state. + * These extra messages are AdjustSalineResponseData , AdjustUltrafiltrationStateResponseData. + * Which ever comes first will set its related properties. + * Since the properties wont set twice if they have the same value it doesn't affect performance so much. + * Also FW suppose to send the TreatmentStatesData related message immediately after the two others. + */ +void VHDTreatmentStates::initConnections() { + ACTION_VIEW_CONNECTION(TreatmentStatesData ); + ACTION_VIEW_CONNECTION(AdjustSalineResponseData ); + ACTION_VIEW_CONNECTION(AdjustUltrafiltrationStateResponseData ); +} + +/*! + * \brief VHDTreatmentStates::onActionReceive + * \details sets the properties for the received data of Treatment States + * \param vData - Treatment States data + */ void VHDTreatmentStates::onActionReceive(const TreatmentStatesData &vData) { - subMode ( vData.mSubMode ); - ufState ( vData.mUFState ); - salineState ( vData.mSalineState ); + subMode ( vData.mSubMode ); + ufState ( vData.mUFState ); + salineState ( vData.mSalineState ); - // ultrafiltration - ufPaused ( vData.mUFState == GuiActions::UF_PAUSED_STATE ); - ufRunning ( vData.mUFState == GuiActions::UF_RUNNING_STATE ); - ufOff ( vData.mUFState == GuiActions::UF_OFF_STATE ); - ufCompleted ( vData.mUFState == GuiActions::UF_COMPLETED_STATE ); + // Ultrafiltration states + ufStart ( vData.mUFState == GuiUFStates ::UF_START_STATE ); + ufPaused ( vData.mUFState == GuiUFStates ::UF_PAUSED_STATE ); + ufRunning ( vData.mUFState == GuiUFStates ::UF_RUNNING_STATE ); + ufOff ( vData.mUFState == GuiUFStates ::UF_OFF_STATE ); + ufCompleted ( vData.mUFState == GuiUFStates ::UF_COMPLETED_STATE ); - // treatment duration - txPaused ( vData.mSubMode != GuiActions::TREATMENT_DIALYSIS_STATE ); + // Saline Bolus states + sbOff ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_IDLE ); + sbWaitPump ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP ); + sbRunning ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_IN_PROGRESS ); + sbMaxReached ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_MAX_DELIVERED ); + + // Treatment states + // Treatment states - Basics + txStart ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_START_STATE ); + txStop ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_STOP_STATE ); + txEnd ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_END_STATE ); + // Treatment states - Dialysis + txDialysis_Running ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_STATE ); + txDialysis_End ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_END_STATE ); + // Treatment states - Rinse back + txRinseback_Running ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RINSEBACK_STATE ); + txRinseback_Pause ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RINSEBACK_PAUSE_STATE ); + // Treatment states - Recirculate + txRecirculate_Setup ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_SETUP_STATE ); + txRecirculate_Running ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_STATE ); + txRecirculate_Pause ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_PAUSE_STATE ); + txRecirculate_Stop ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_STOP_STATE ); } + +/*! + * \brief VHDTreatmentStates::onActionReceive + * \details message handler for the message AdjustUltrafiltrationStateResponse data + * \param vData - AdjustUltrafiltrationStateResponse data + */ +void VHDTreatmentStates::onActionReceive(const AdjustSalineResponseData &vData) +{ + // Saline Bolus states + sbOff ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_IDLE ); + sbWaitPump ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP ); + sbRunning ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_IN_PROGRESS ); + sbMaxReached ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_MAX_DELIVERED ); +} + +/*! + * \brief VHDTreatmentStates::onActionReceive + * \details message handler for the message AdjustUltrafiltrationStateResponse data + * \param vData - AdjustUltrafiltrationStateResponse data + */ +void VHDTreatmentStates::onActionReceive(const AdjustUltrafiltrationStateResponseData &vData) +{ + // Ultrafiltration states + ufStart ( vData.mState == GuiUFStates ::UF_START_STATE ); + ufPaused ( vData.mState == GuiUFStates ::UF_PAUSED_STATE ); + ufRunning ( vData.mState == GuiUFStates ::UF_RUNNING_STATE ); + ufOff ( vData.mState == GuiUFStates ::UF_OFF_STATE ); + ufCompleted ( vData.mState == GuiUFStates ::UF_COMPLETED_STATE ); +}