Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -ref46e2aa7eba74dabd99bfcd9e6b38b8ce77820c -r0c599603188536e9d329fbd60a8768affd0c49a2 --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision ef46e2aa7eba74dabd99bfcd9e6b38b8ce77820c) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision 0c599603188536e9d329fbd60a8768affd0c49a2) @@ -247,22 +247,24 @@ } else { - if ( TRUE == isEmptyAcidBottle() ) - { - activateAlarmNoData( ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME ); // trigger empty acid bottle alarm - setBottlesNeedPrimeFlag( TRUE ); - } - else if ( TRUE == isEmptyBicarbBottle() ) - { - setBottlesNeedPrimeFlag( TRUE ); - activateAlarmNoData( ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME ); // trigger empty bicarb bottle alarm - } - else if ( ( FALSE == isAlarmActive( ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME ) ) || - ( FALSE == isAlarmActive( ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME ) ) ) - { - requestNewOperationMode( DG_MODE_GENE ); - } + requestNewOperationMode( DG_MODE_GENE ); } + + if ( TRUE == isEmptyAcidBottle() ) // is acid volume < 10% + { + setThisFisrtFillFlag( TRUE ); // indicates bottles need prime + activateAlarmNoData( ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME ); // trigger empty acid bottle alarm + } + else if ( TRUE == isEmptyBicarbBottle() ) // is bicarb volume < 10% + { + setThisFisrtFillFlag( TRUE ); // indicates bottles need prime + activateAlarmNoData( ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME ); // trigger empty bicarb bottle alarm + } + else if ( ( FALSE == isAlarmActive( ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME ) ) || + ( FALSE == isAlarmActive( ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME ) ) ) + { + requestNewOperationMode( DG_MODE_FILL ); + } } // Drain timed out raise the alarm