Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rf1157c760b320bf088921a25eb78e973d6341578 -r6d750c93f17571bbeba89404b63d87f37a9243af --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision f1157c760b320bf088921a25eb78e973d6341578) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 6d750c93f17571bbeba89404b63d87f37a9243af) @@ -45,7 +45,8 @@ #define CAN_XMIT_PACKET_TIMEOUT_MS 200 ///< If transmitted CAN frame does not cause a transmit complete interrupt within this time, re-send or move on #define MAX_XMIT_RETRIES 5 ///< Maximum number of retries on no transmit complete interrupt timeout -#define UI_COMM_TIMEOUT_IN_MS 7500 ///< UI has not checked in for this much time +#define UI_COMM_TIMEOUT_IN_MS 7500 ///< Maximum time (in ms) that UI is allowed to wait before checking in with HD. +#define UI_COMM_SERVICE_MODE_TIMEOUT_IN_MS (2 * SEC_PER_MIN * MS_PER_SECOND) ///< Maximum time (in ms) that UI is allowed to wait before checking in with HD when in service mode. #define DG_COMM_TIMEOUT_IN_MS 1000 ///< DG has not checked in for this much time #define MAX_COMM_CRC_FAILURES 5 ///< Maximum number of CRC errors within window period before alarm @@ -761,10 +762,16 @@ { if ( TRUE == uiDidCommunicate ) { - HD_OP_MODE_T opMode = getCurrentOperationMode(); - - if ( TRUE == didTimeout( timeOfLastUICheckIn, UI_COMM_TIMEOUT_IN_MS ) ) + HD_OP_MODE_T opMode = getCurrentOperationMode(); + U32 uiTO_MS = UI_COMM_TIMEOUT_IN_MS; + + // in service mode, allow up to 2 minutes for UI to check-in (for lock-down) + if ( MODE_SERV == opMode ) { + uiTO_MS = UI_COMM_SERVICE_MODE_TIMEOUT_IN_MS; + } + if ( TRUE == didTimeout( timeOfLastUICheckIn, uiTO_MS ) ) + { #ifndef _RELEASE_ if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_UI_COMM_ALARMS ) != SW_CONFIG_ENABLE_VALUE ) #endif