Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r736cc5b56cc9c784ab1d8fc8687a73d190c35759 -r98601fc7a55d59cdb17dea5117cfd49c48be14b7 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 736cc5b56cc9c784ab1d8fc8687a73d190c35759) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 98601fc7a55d59cdb17dea5117cfd49c48be14b7) @@ -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