Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r5652568f680408e60fe5fb84eee926e8804c07d7 -rd51921b4d923754ab63db79923d28c09c27af5aa --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 5652568f680408e60fe5fb84eee926e8804c07d7) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision d51921b4d923754ab63db79923d28c09c27af5aa) @@ -1083,18 +1083,20 @@ { BOOL result = FALSE; - if ( message->hdr.payloadLen == sizeof( BOOL ) ) + if ( message->hdr.payloadLen == sizeof( DG_START_STOP_CMD_T ) ) { - BOOL startingTreatment; + DG_START_STOP_CMD_T startingTreatment; DG_OP_MODE_T dgMode = getCurrentOperationMode(); - memcpy( &startingTreatment, message->payload, sizeof( BOOL ) ); + memcpy( &startingTreatment, message->payload, sizeof( DG_START_STOP_CMD_T ) ); - if ( ( DG_MODE_STAN == dgMode ) && ( TRUE == startingTreatment ) ) + if ( ( DG_MODE_STAN == dgMode ) && ( TRUE == startingTreatment.startDG ) ) { + // If the command is start DG, set the acid and bicarb types to be used, otherwise in the stop command it does not matter + setAcidAndBicarbType( startingTreatment.acidType, startingTreatment.bicarbType ); result = requestDGStart(); } - else if ( ( dgMode >= DG_MODE_GENE ) && ( dgMode <= DG_MODE_DRAI ) && ( FALSE == startingTreatment ) ) + else if ( ( dgMode >= DG_MODE_GENE ) && ( dgMode <= DG_MODE_DRAI ) && ( FALSE == startingTreatment.startDG ) ) { result = requestDGStop(); }