Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r1c2f96bf994157b11c0c32ddaf96fc91a9a1da1d -rc816a28448cd1c4d2c66a8d1ed8630e8bd4d2912 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 1c2f96bf994157b11c0c32ddaf96fc91a9a1da1d) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision c816a28448cd1c4d2c66a8d1ed8630e8bd4d2912) @@ -1660,17 +1660,18 @@ { BOOL result = FALSE; - if ( message->hdr.payloadLen == sizeof( U32 ) ) + if ( message->hdr.payloadLen == sizeof( BOOL ) ) { BOOL startingTreatment; + DG_OP_MODE_T dgMode = getCurrentOperationMode(); - memcpy( &startingTreatment, message->payload, sizeof( U32 ) ); + memcpy( &startingTreatment, message->payload, sizeof( BOOL ) ); - if ( ( DG_MODE_STAN == getCurrentOperationMode() ) && ( TRUE == startingTreatment ) ) + if ( ( DG_MODE_STAN == dgMode ) && ( TRUE == startingTreatment ) ) { result = requestDGStart(); } - else if ( ( DG_MODE_GENE == getCurrentOperationMode() ) && ( FALSE == startingTreatment ) ) + else if ( ( dgMode >= DG_MODE_GENE ) && ( dgMode <= DG_MODE_DRAI ) && ( FALSE == startingTreatment ) ) { result = requestDGStop(); }