Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -reea2857548dfde4f092983ede2c2bd1d1453fa12 -r1519b5d150fd913f596715f0eacce7d5c5e0d56c --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision eea2857548dfde4f092983ede2c2bd1d1453fa12) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 1519b5d150fd913f596715f0eacce7d5c5e0d56c) @@ -1194,7 +1194,7 @@ // Done with receiving the data bloodLeakEmbModeRqstedCmd = NU_EMB_MODE_CMD; state = BLOOD_LEAK_CAL_WAIT_FOR_COMAND_STATE; - handleSendBloodLeakEmbeddedModeCommandResponse( length, bloodLeakEmbModeRespBuffer ); + sendBloodLeakEmbeddedModeCommandResponse( length, bloodLeakEmbModeRespBuffer ); } } @@ -1207,7 +1207,7 @@ bloodLeakEmbModeRespBuffer[ 0 ] = BLOOD_LEAK_EMB_MODE_FAIL_ASCII; bloodLeakEmbModeRqstedCmd = NU_EMB_MODE_CMD; state = BLOOD_LEAK_CAL_WAIT_FOR_COMAND_STATE; - handleSendBloodLeakEmbeddedModeCommandResponse( length, bloodLeakEmbModeRespBuffer ); + sendBloodLeakEmbeddedModeCommandResponse( length, bloodLeakEmbModeRespBuffer ); } return state; Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -rd81f239e0039bc025586f7dfc21cdd3d937c8744 -r1519b5d150fd913f596715f0eacce7d5c5e0d56c --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision d81f239e0039bc025586f7dfc21cdd3d937c8744) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 1519b5d150fd913f596715f0eacce7d5c5e0d56c) @@ -670,7 +670,7 @@ /*********************************************************************//** * @brief -* The handleActiveAlarmListRequest function processed the active alarms list +* The handleActiveAlarmListRequest function processes the active alarms list * request from UI. * @details Inputs: alarmIsActive[] * @details Outputs: sent active alarms list to UI @@ -703,6 +703,41 @@ sendActiveAlarmsList( accepted, rejReason, activeAlarmList, sizeof( activeAlarmList ) ); } + +/*********************************************************************//** + * @brief +* The handleResendActiveAlarmsRequest function processes the request to re-send +* all active alarms. +* @details Inputs: alarmIsActive[] +* @details Outputs: re-send active alarms to UI +* @return none +*************************************************************************/ +void handleResendActiveAlarmsRequest( void ) +{ + U32 index; + + if ( TRUE == isAnyAlarmActive() ) + { + for ( index = 0; index < NUM_OF_ALARM_IDS; index++ ) + { + if ( TRUE == isAlarmActive( (ALARM_ID_T)index ) ) + { + ALARM_TRIGGERED_PAYLOAD_T data; + + data.alarm = index; + data.almDataType1 = BLANK_ALARM_DATA.dataType; + data.almData1 = BLANK_ALARM_DATA.data.uInt.data; + data.almDataType2 = BLANK_ALARM_DATA.dataType; + data.almData2 = BLANK_ALARM_DATA.data.uInt.data; + data.almPriority = ALARM_TABLE[ index ].alarmPriority; + data.almRank = ALARM_TABLE[ index ].alarmSubRank; + data.almClrTopOnly = ALARM_TABLE[ index ].alarmClearOnly; + + broadcastData( MSG_ID_ALARM_TRIGGERED, COMM_BUFFER_OUT_CAN_HD_ALARM, (U08*)&data, sizeof( ALARM_TRIGGERED_PAYLOAD_T ) ); + } + } + } +} /*********************************************************************//** * @brief Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r19a8bf98a7154e24c35da25225d4b55bf70ddd09 -r1519b5d150fd913f596715f0eacce7d5c5e0d56c --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 19a8bf98a7154e24c35da25225d4b55bf70ddd09) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 1519b5d150fd913f596715f0eacce7d5c5e0d56c) @@ -183,7 +183,8 @@ BOOL isAlarmRecoverable( ALARM_ID_T alarm ); void setAlarmAudioVolume( U32 volumeLevel ); -void handleActiveAlarmListRequest( void ); +void handleActiveAlarmListRequest( void ); +void handleResendActiveAlarmsRequest( void ); U32 getAlarmAudioVolume( void ); F32 getAlarmAudioPrimaryHighGainCurrent( void ); Index: firmware/App/Services/CommBuffers.c =================================================================== diff -u -r24b2fe72608344e67ef37234085d15ad5e4fcc37 -r1519b5d150fd913f596715f0eacce7d5c5e0d56c --- firmware/App/Services/CommBuffers.c (.../CommBuffers.c) (revision 24b2fe72608344e67ef37234085d15ad5e4fcc37) +++ firmware/App/Services/CommBuffers.c (.../CommBuffers.c) (revision 1519b5d150fd913f596715f0eacce7d5c5e0d56c) @@ -30,7 +30,7 @@ // ********** private definitions ********** -#define COMM_BUFFER_LENGTH 512 ///< Max bytes in each comm buffer (each side of double buffer is this size) +#define COMM_BUFFER_LENGTH 768 ///< Max bytes in each comm buffer (each side of double buffer is this size) #define DOUBLE_BUFFERS 2 ///< Need 2 buffers for double buffering #define BUFFER_OVERFLOW_PERSISTENCE_MS 5000 ///< How many ms buffer overflows must persist before fault Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rbb5280946ac08388b456c7c1848d7797c4a28038 -r1519b5d150fd913f596715f0eacce7d5c5e0d56c --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision bb5280946ac08388b456c7c1848d7797c4a28038) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 1519b5d150fd913f596715f0eacce7d5c5e0d56c) @@ -1655,6 +1655,10 @@ handleSetBloodLeakEmbeddedModeCommand( message ); break; + case MSG_ID_HD_SEND_ALARMS_COMMAND: + handleResendAllAlarmsCommand( 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 -r43e59e505bbea87c76822c51a3273eec3f4addaa -r1519b5d150fd913f596715f0eacce7d5c5e0d56c --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 43e59e505bbea87c76822c51a3273eec3f4addaa) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 1519b5d150fd913f596715f0eacce7d5c5e0d56c) @@ -7271,15 +7271,15 @@ /*********************************************************************//** * @brief - * The handleSendBloodLeakEmbeddedModeCommandResponse function sends out + * The sendBloodLeakEmbeddedModeCommandResponse function sends out * the blood leak embedded mode command response. * @details Inputs: none * @details Outputs: blood leak embedded mode command response msg constructed and queued * @param responseLen: the length of the buffer * @param response: pointer to the response buffer * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL handleSendBloodLeakEmbeddedModeCommandResponse( U32 responseLen, U08* response ) +BOOL sendBloodLeakEmbeddedModeCommandResponse( U32 responseLen, U08* response ) { BOOL result; MESSAGE_T msg; @@ -7300,4 +7300,28 @@ return result; } +/*********************************************************************//** +* @brief +* The handleResendAllAlarmsCommand function handles a request to re-send +* all active HD alarms. +* @details Inputs: none +* @details Outputs: message handled +* @param message a pointer to the message to handle +* @return none +*************************************************************************/ +void handleResendAllAlarmsCommand( MESSAGE_T* message ) +{ + BOOL result = FALSE; + + // verify payload length + if ( 0 == message->hdr.payloadLen ) + { + handleResendActiveAlarmsRequest(); + result = TRUE; + } + + // respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + /**@}*/ Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r43e59e505bbea87c76822c51a3273eec3f4addaa -r1519b5d150fd913f596715f0eacce7d5c5e0d56c --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 43e59e505bbea87c76822c51a3273eec3f4addaa) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 1519b5d150fd913f596715f0eacce7d5c5e0d56c) @@ -807,8 +807,11 @@ void handleSetBloodLeakEmbeddedModeCommand( MESSAGE_T* message ); // MSG_ID_HD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE -BOOL handleSendBloodLeakEmbeddedModeCommandResponse( U32 responseLen, U08* response ); +BOOL sendBloodLeakEmbeddedModeCommandResponse( U32 responseLen, U08* response ); +// MSG_ID_HD_SEND_ALARMS_COMMAND +void handleResendAllAlarmsCommand( MESSAGE_T* message ); + /**@}*/ #endif