Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r7499a42cc0f906f9a4a947c82c5b4615217ce7e5 -r1978e8476dc44688ed69531c236c154829ab8a76 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 7499a42cc0f906f9a4a947c82c5b4615217ce7e5) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 1978e8476dc44688ed69531c236c154829ab8a76) @@ -864,6 +864,19 @@ /*********************************************************************//** * @brief + * The cmdSetDGToServiceMode function sends a request to DG to transition + * to service mode. + * @details Inputs: none + * @details Outputs: none + * @return none + *************************************************************************/ +void cmdSetDGToServiceMode( void ) +{ + sendDGServiceModeRequest(); +} + +/*********************************************************************//** + * @brief * The handleDGCommandResponse function processes the latest DG command response. * @details Inputs: none * @details Outputs: process command response from DG Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r97a2c1e5f702a7d70d5a6fa46fac333b296aa5b3 -r1978e8476dc44688ed69531c236c154829ab8a76 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 97a2c1e5f702a7d70d5a6fa46fac333b296aa5b3) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 1978e8476dc44688ed69531c236c154829ab8a76) @@ -1659,11 +1659,7 @@ handleResendAllAlarmsCommand( message ); break; - case MSG_ID_HD_REQ_CURRENT_TREATMENT_PARAMETERS: - handleTestCurrentTreamtmentParametersRequest( message ); - break; - // The default cannot be reached in VectorCAST since the cases are run in a for loop default: // Unrecognized message ID received - ignore Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r97a2c1e5f702a7d70d5a6fa46fac333b296aa5b3 -r1978e8476dc44688ed69531c236c154829ab8a76 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 97a2c1e5f702a7d70d5a6fa46fac333b296aa5b3) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 1978e8476dc44688ed69531c236c154829ab8a76) @@ -7033,15 +7033,26 @@ { BOOL status = FALSE; HD_OP_MODE_T currentMode = getCurrentOperationMode(); + DG_OP_MODE_T currentDGMode = getDGOpMode(); REQUEST_REJECT_REASON_CODE_T reject; if ( 0 == message->hdr.payloadLen ) { if ( ( MODE_STAN == currentMode ) || ( MODE_FAUL == currentMode ) ) { - status = TRUE; + requestNewOperationMode( MODE_SERV ); - reject = REQUEST_REJECT_REASON_NONE; + + if ( (DG_MODE_STAN == currentDGMode) || (DG_MODE_FAUL == currentDGMode) ) + { + status = TRUE; + cmdSetDGToServiceMode(); + reject = REQUEST_REJECT_REASON_NONE; + } + else + { + reject = REQUEST_REJECT_REASON_DG_NOT_IN_STANDBY_IDLE_STATE; + } } else { @@ -7271,4 +7282,28 @@ return result; } +/*********************************************************************//** + * @brief + * The sendDGServiceModeRequest function constructs a service mode request msg + * to the DG and queues the msg for transmit on the appropriate CAN channel. + * @details Inputs: none + * @details Outputs: DG Service mode request msg constructed and queued. + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL sendDGServiceModeRequest() +{ + BOOL result; + MESSAGE_T msg; + + // Create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_HD_REQUEST_DG_SERVICE_MODE; + msg.hdr.payloadLen = 0; + + // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer + result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_2_DG, ACK_REQUIRED ); + + return result; +} + /**@}*/ Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r7499a42cc0f906f9a4a947c82c5b4615217ce7e5 -r1978e8476dc44688ed69531c236c154829ab8a76 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 7499a42cc0f906f9a4a947c82c5b4615217ce7e5) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 1978e8476dc44688ed69531c236c154829ab8a76) @@ -392,6 +392,9 @@ // MSG_ID_DG_START_STOP_CHEM_DISINFECT BOOL sendDGStartChemicalDisinfectModeCommand( BOOL start ); +// MSG_ID_HD_REQUEST_DG_SERVICE_MODE +BOOL sendDGServiceModeRequest(); + // MSG_ID_ALARM_STATUS BOOL broadcastAlarmStatus( COMP_ALARM_STATUS_T almStatus ); @@ -419,9 +422,6 @@ // MSG_ID_HD_SET_SW_CONFIG_RECORD void handleSetHDSoftwareConfigRecord( MESSAGE_T *message ); -// MSG_ID_UI_REQUEST_SERVICE_MODE -void handleUIServiceModeRequest( MESSAGE_T *message ); -void sendUIServiceModeResponse( BOOL accepted, U32 rejCode ); #ifdef EMC_TEST_BUILD // MSG_ID_CAN_ERROR_COUNT