Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rdb291cc22fd8f10e6e47cad468e14ed5590a94f2 -rbb643418e1f0c59ca3ee75c642aaa1f31850069e --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision db291cc22fd8f10e6e47cad468e14ed5590a94f2) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision bb643418e1f0c59ca3ee75c642aaa1f31850069e) @@ -46,7 +46,7 @@ #include "Valves.h" #include "WatchdogMgmt.h" #include "HDDefs.h" -#include "TaskPriority.h" +#include "TaskPriority.h" /** * @addtogroup SystemCommMessages @@ -61,7 +61,7 @@ /// Payload record structure for block message transmission request. typedef struct { - U16 blockedMessages[ MAX_MSGS_BLOCKED_FOR_XMIT ]; + U16 blockedMessages[ MAX_MSGS_BLOCKED_FOR_XMIT ]; ///< Blocked messages. } BLOCKED_MSGS_DATA_T; #pragma pack(pop) @@ -1659,16 +1659,17 @@ *************************************************************************/ void handleUIClockSyncRequest( MESSAGE_T *message ) { - BOOL result = FALSE; - U32 rejReason = REQUEST_REJECT_REASON_NONE; MESSAGE_T msg; - U08 *payloadPtr = msg.payload; + BOOL result = FALSE; + U32 rejReason = REQUEST_REJECT_REASON_NONE; + U08 *payloadPtr = msg.payload; + U32 *messagePayload = (U32*)message->payload; if ( message->hdr.payloadLen == sizeof( U32 ) ) { U32 epoch; - memcpy( &epoch, message->payload, sizeof( U32 ) ); + memcpy( &epoch, messagePayload, sizeof( U32 ) ); result = setRTCEpoch( epoch ); if ( FALSE == result ) { @@ -3361,11 +3362,13 @@ if ( 0 == message->hdr.payloadLen ) { + U32 lastServiceEpochDate = service.lastServiceEpochDate; + U32 serviceIntervalSeconds = ( 0 == service.lastServiceEpochDate ? 0 : service.serviceIntervalSeconds ); + // Fill message payload - memcpy( payloadPtr, &service.lastServiceEpochDate, sizeof( U32 ) ); + memcpy( payloadPtr, &lastServiceEpochDate, sizeof( U32 ) ); payloadPtr += sizeof( U32 ); - service.serviceIntervalSeconds = ( 0 == service.lastServiceEpochDate ? 0 : service.serviceIntervalSeconds ); - memcpy( payloadPtr, &service.serviceIntervalSeconds, sizeof( U32 ) ); + memcpy( payloadPtr, &serviceIntervalSeconds, sizeof( U32 ) ); } // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer