Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r1a5aa1dff6978966ecda860b09c07a84e80399fe -r3e24cbff2cbf0ce9af2e998e6a9a2ed4733bbe27 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 1a5aa1dff6978966ecda860b09c07a84e80399fe) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 3e24cbff2cbf0ce9af2e998e6a9a2ed4733bbe27) @@ -847,9 +847,21 @@ { memcpy( &dgCmdResp, cmdRespPtr, sizeof( DG_CMD_RESPONSE_T ) ); - if ( ( TRUE == dgCmdResp.rejected ) && ( DG_CMD_REQUEST_REJECT_REASON_INVALID_PARAMETER == dgCmdResp.rejectCode ) ) + if ( TRUE == dgCmdResp.rejected ) { - activateAlarmNoData( ALARM_ID_DG_COMMAND_INVALID_PARAMETER_FAULT ); + switch ( dgCmdResp.rejectCode ) + { + case DG_CMD_REQUEST_REJECT_REASON_INVALID_PARAMETER: + activateAlarmNoData( ALARM_ID_DG_COMMAND_INVALID_PARAMETER_FAULT ); + break; + + case DG_CMD_REQUEST_REJECT_REASON_NONE: + case DG_CMD_REQUEST_REJECT_REASON_INVALID_MODE: + default: + // Our state machines will detect and handle DG mode out of sync + // TODO Consider a generic handler for all state machine + break; + } } }