Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r8b793075edebe4a88faf7ec197c2ea154ac1e1b0 -ra3858dc599d0d0706e606bc1a3c86609cf7f1602 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 8b793075edebe4a88faf7ec197c2ea154ac1e1b0) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision a3858dc599d0d0706e606bc1a3c86609cf7f1602) @@ -271,7 +271,12 @@ // Broadcast alarm and data if alarm not already active if ( FALSE == alarmIsActive[ alarm ] ) { - broadcastAlarmTriggered( (U16)alarm, BLANK_ALARM_DATA, BLANK_ALARM_DATA ); + broadcastAlarmTriggered( (U16)alarm, BLANK_ALARM_DATA, BLANK_ALARM_DATA ); + // Send information for UI to log to treatment log + if ( TRUE == ALARM_TABLE[ alarm ].alarmTreatmentLog ) + { + sendTreatmentLogAlarmEventData( alarm, BLANK_ALARM_DATA, BLANK_ALARM_DATA ); + } } activateAlarm( alarm ); } @@ -292,7 +297,12 @@ // Broadcast alarm and data if alarm not already active if ( FALSE == alarmIsActive[ alarm ] ) { - broadcastAlarmTriggered( (U16)alarm, alarmData, BLANK_ALARM_DATA ); + broadcastAlarmTriggered( (U16)alarm, alarmData, BLANK_ALARM_DATA ); + // Send information for UI to log to treatment log + if ( TRUE == ALARM_TABLE[ alarm ].alarmTreatmentLog ) + { + sendTreatmentLogAlarmEventData( alarm, alarmData, BLANK_ALARM_DATA ); + } } activateAlarm( alarm ); } @@ -314,7 +324,12 @@ // Broadcast alarm and data if alarm not already active if ( FALSE == alarmIsActive[ alarm ] ) { - broadcastAlarmTriggered( (U16)alarm, alarmData1, alarmData2 ); + broadcastAlarmTriggered( (U16)alarm, alarmData1, alarmData2 ); + // Send information for UI to log to treatment log + if ( TRUE == ALARM_TABLE[ alarm ].alarmTreatmentLog ) + { + sendTreatmentLogAlarmEventData( alarm, alarmData1, alarmData2 ); + } } activateAlarm( alarm ); } Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r8690eb7a217de52731cf75793d781419b0448289 -ra3858dc599d0d0706e606bc1a3c86609cf7f1602 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 8690eb7a217de52731cf75793d781419b0448289) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision a3858dc599d0d0706e606bc1a3c86609cf7f1602) @@ -760,11 +760,44 @@ /*********************************************************************//** * @brief + * The sendTreatmentLogAlarmEventData function constructs a treatment log + * alarm event data message for UI and queues the msg for transmit on the + * appropriate CAN channel. + * @details Inputs: none + * @details Outputs: Treatment log alarm event data msg constructed and queued. + * @param alarmID ID of the occurred alarm + * @param almData1 data associates with the alarm + * @param almData1 data associates with the alarm + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL sendTreatmentLogAlarmEventData( ALARM_ID_T alarmID, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ) +{ + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + U32 id = (U32)alarmID; + + // Create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_HD_TREATMENT_LOG_ALARM_EVENT; + msg.hdr.payloadLen = sizeof( ALARM_ID_T ) + 3 * sizeof( F32 ); + + memcpy( payloadPtr, &id, sizeof( U32 ) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &almData1.data, sizeof( F32 ) ); + payloadPtr += sizeof( F32 ); + memcpy( payloadPtr, &almData2.data, sizeof( F32 ) ); + + // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer + return serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_2_UI, ACK_REQUIRED ); +} + +/*********************************************************************//** + * @brief * The sendTreatmentLogEventData function constructs a treatment log parameter * change event data message for UI and queues the msg for transmit on the * appropriate CAN channel. * @details Inputs: none - * @details Outputs: Treatment log alarm event data msg constructed and queued. + * @details Outputs: Treatment log event data msg constructed and queued. * @param event ID of parameter change event * @param oldValue parameter change event old data value * @param newValue parameter change event new data value Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r6820043b5dc623a84e7323168dd1d4bd9815e859 -ra3858dc599d0d0706e606bc1a3c86609cf7f1602 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 6820043b5dc623a84e7323168dd1d4bd9815e859) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision a3858dc599d0d0706e606bc1a3c86609cf7f1602) @@ -274,6 +274,9 @@ // MSG_ID_HD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE BOOL sendActiveAlarmsList( BOOL accepted, U32 reason, U32 *alarmList, U32 size ); +// MSG_ID_HD_TREATMENT_LOG_ALARM_EVENT +BOOL sendTreatmentLogAlarmEventData( ALARM_ID_T alarmID, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ); + // MSG_ID_HD_TREATMENT_LOG_EVENT BOOL sendTreatmentLogEventData( EVENT_ID_T event, F32 oldValue, F32 newValue );