Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -rf1157c760b320bf088921a25eb78e973d6341578 -r3635df042e6e3a86cc6b161290637f899fbaa6c2 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision f1157c760b320bf088921a25eb78e973d6341578) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 3635df042e6e3a86cc6b161290637f899fbaa6c2) @@ -246,6 +246,11 @@ // Trigger alarm if not receiving new DG op mode message in timely manner checkDGDataFreshness( ALARM_ID_HD_DG_NEW_OPERATION_MODE_MESSAGE_NOT_RECEIVE, &dgOpModeDataFreshFlag ); + if ( TRUE == isAlarmActive( ALARM_ID_HD_DG_NEW_OPERATION_MODE_MESSAGE_NOT_RECEIVE ) ) + { + // we don't want to keep thinking DG is in a useful mode - set it to fault mode until DG is able to report its' true mode status + setDGOpMode( DG_MODE_FAUL, 0 ); + } // Check to see if DG has restarted checkDGRestart(); @@ -1269,8 +1274,8 @@ * @brief * The checkDGRestart function checks to see if DG has restarted after started * by HD and triggers appropriate alarm. - * @details Inputs: dgStarted - * @details Outputs: triggers a fault alarm if DG restarted + * @details Inputs: dgStartCommandSent, dgStarted, dgCurrentOpMode + * @details Outputs: dgStartCommandSent, dgStarted, triggers a fault alarm if DG restarted * @return none *************************************************************************/ static void checkDGRestart( void ) @@ -1287,6 +1292,7 @@ ( DG_MODE_FILL != dgCurrentOpMode ) && ( DG_MODE_DRAI != dgCurrentOpMode ) ) { activateAlarmNoData( ALARM_ID_HD_DG_RESTARTED_FAULT ); + dgStarted = FALSE; // do not want to re-trigger alarm after alarm is cleared } } }