Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -re8edb83fcba5c355198efc30944d51c54814bdbe -re316cf48cb5fd96494e970590f68ca503a93a71e --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision e8edb83fcba5c355198efc30944d51c54814bdbe) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision e316cf48cb5fd96494e970590f68ca503a93a71e) @@ -408,7 +408,12 @@ // Send information for UI to log to treatment log if ( ( TRUE == ALARM_TABLE[ alarm ].alarmTreatmentLog ) && ( MODE_TREA == getCurrentOperationMode() ) ) { - sendTreatmentLogAlarmEventData( alarm, alarmData1, alarmData2 ); + F32 data1; + F32 data2; + + memcpy( &data1, &alarmData1.data, sizeof( F32 ) ); + memcpy( &data2, &alarmData2.data, sizeof( F32 ) ); + sendTreatmentLogAlarmEventData( alarm, data1, data2 ); } } activateAlarm( alarm ); Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rfd4a30ee0f905408c7f323995492763cc0765407 -re316cf48cb5fd96494e970590f68ca503a93a71e --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision fd4a30ee0f905408c7f323995492763cc0765407) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision e316cf48cb5fd96494e970590f68ca503a93a71e) @@ -1090,22 +1090,22 @@ * @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 ) +BOOL sendTreatmentLogAlarmEventData( ALARM_ID_T alarmID, F32 alarmData1, F32 alarmData2 ) { MESSAGE_T msg; U08 *payloadPtr = msg.payload; - U32 id = (U32)alarmID; + U32 id = (U32)alarmID; // Create a message record blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_TREATMENT_LOG_ALARM_EVENT; + msg.hdr.msgID = MSG_ID_HD_TREATMENT_LOG_ALARM_EVENT; msg.hdr.payloadLen = sizeof( U32 ) + 2 * sizeof( F32 ); memcpy( payloadPtr, &id, sizeof( U32 ) ); payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &almData1.data, sizeof( F32 ) ); + memcpy( payloadPtr, &alarmData1, sizeof( F32 ) ); payloadPtr += sizeof( F32 ); - memcpy( payloadPtr, &almData2.data, sizeof( F32 ) ); + memcpy( payloadPtr, &alarmData2, 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 ); @@ -3322,8 +3322,14 @@ *************************************************************************/ void handleHDSerialNumberRequest( void ) { + typedef struct + { + U08 topLevelSN[ MAX_TOP_LEVEL_SN_CHARS ]; + } LOCAL_TOP_SN_T; MESSAGE_T msg; HD_SYSTEM_RECORD_T system; + U08 i; + LOCAL_TOP_SN_T localTopLevelSN; // Get the system's record. There are no arrays of system to check and also, raise no alarm since the system record // has been already checked in POST @@ -3338,8 +3344,15 @@ // Add 1 byte for null terminator msg.hdr.payloadLen = MAX_TOP_LEVEL_SN_CHARS + 1; + for ( i = 0; i < MAX_TOP_LEVEL_SN_CHARS; i++ ) + { + // NOTE: A local variable was created to avoid system.topLevelSN in the messages list + // NOTE: For loop was used instead of memory copy to ensure it is not parsed in the messages list script + localTopLevelSN.topLevelSN[ i ] = system.topLevelSN[ i ]; + } + // Fill message payload - memcpy( payloadPtr, &system.topLevelSN, sizeof( U08 ) * MAX_TOP_LEVEL_SN_CHARS ); + memcpy( payloadPtr, &localTopLevelSN, sizeof( LOCAL_TOP_SN_T ) ); payloadPtr += MAX_TOP_LEVEL_SN_CHARS; *payloadPtr = 0; Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -rfd4a30ee0f905408c7f323995492763cc0765407 -re316cf48cb5fd96494e970590f68ca503a93a71e --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision fd4a30ee0f905408c7f323995492763cc0765407) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision e316cf48cb5fd96494e970590f68ca503a93a71e) @@ -420,7 +420,7 @@ BOOL sendActiveAlarmsList( ACTIVE_ALARM_LIST_RESPONSE_PAYLOAD_T alarmListPayload ); // MSG_ID_HD_TREATMENT_LOG_ALARM_EVENT -BOOL sendTreatmentLogAlarmEventData( ALARM_ID_T alarmID, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ); +BOOL sendTreatmentLogAlarmEventData( ALARM_ID_T alarmID, F32 alarmData1, F32 alarmData2 ); // MSG_ID_HD_TREATMENT_LOG_EVENT BOOL sendTreatmentLogEventData( TX_EVENT_ID_T event, F32 oldValue, F32 newValue );