Index: sources/view/hd/data/VHDOperationModeData.cpp =================================================================== diff -u -r54c4136d95375116e6daf23b7d4179159cf13d0c -rfec49d1a8016d25cedff4cf2fefb4c4cd1c7c259 --- sources/view/hd/data/VHDOperationModeData.cpp (.../VHDOperationModeData.cpp) (revision 54c4136d95375116e6daf23b7d4179159cf13d0c) +++ sources/view/hd/data/VHDOperationModeData.cpp (.../VHDOperationModeData.cpp) (revision fec49d1a8016d25cedff4cf2fefb4c4cd1c7c259) @@ -38,9 +38,19 @@ standbyStart ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_START_STATE ); standbyWaitTreatment ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_WAIT_FOR_TREATMENT_STATE ); standbyWaitDisinfect ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_WAIT_FOR_DISINFECT_STATE ); - standbyDGFlush ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_DG_FLUSH_IN_PROGRESS_STATE ); - standbyDGDisinfectHeat ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE ); - standbyDGDisinfectChemical ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE ); + + // disinfection sub-states + standbyDGDisinfectFlushWaitResponse ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_WAIT_FOR_DG_FLUSH_CMD_RESPONSE_STATE ); + standbyDGDisinfectFlushWaitStart ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_WAIT_FOR_DG_FLUSH_TO_START_STATE ); + standbyDGDisinfectFlushInProgress ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_DG_FLUSH_IN_PROGRESS_STATE ); + + standbyDGDisinfectHeatWaitResponse ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_WAIT_FOR_DG_HEAT_DISINFECT_CMD_RESPONSE_STATE ); + standbyDGDisinfectHeatWaitStart ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_WAIT_FOR_DG_HEAT_DISINFECT_TO_START_STATE ); + standbyDGDisinfectHeatInProgress ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE ); + + standbyDGDisinfectChemicalWaitResponse ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_WAIT_FOR_DG_CHEM_DISINFECT_CMD_RESPONSE_STATE ); + standbyDGDisinfectChemicalWaitStart ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_WAIT_FOR_DG_CHEM_DISINFECT_TO_START_STATE ); + standbyDGDisinfectChemicalInProgress ( vData.mSubMode == GuiHDStandbyStates ::STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE ); } // isTreatment ( ! _service ); // if enabled goes to home, fault from service, which shouldn't since the service is dead end. Maybe later investigate more when fault enabled. @@ -64,7 +74,15 @@ // Final Solution: # - The solution though is to have a special state in backend C++ that checks if opMode is standby and subMode is state/waitTreatment // and if these conditions changed since the last time then signal emits. // Brief : *** So actually we have a mixed condition property *** - home ( _standby && ( _standbyStart || _standbyWaitTreatment ) ); + home ( _standby && + ( // op_mode of standby is a must for the home screen + ( _standbyStart || _standbyWaitTreatment ) || // actual standby and ready to start a treatment + // disinfection state but getting to home screen to do what allowed in disinfection + ( _standbyDGDisinfectFlushWaitResponse || _standbyDGDisinfectFlushWaitStart || _standbyDGDisinfectFlushInProgress ) || + ( _standbyDGDisinfectHeatWaitResponse || _standbyDGDisinfectHeatWaitStart || _standbyDGDisinfectHeatInProgress ) || + ( _standbyDGDisinfectChemicalWaitResponse || _standbyDGDisinfectChemicalWaitStart || _standbyDGDisinfectChemicalInProgress ) + ) + ); } QString View::VHDOperationMode::text()