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;