Index: Accel.c =================================================================== diff -u -r14434061a23aa02218e1f3c6cc3024123e79b153 -r9226df9ba2c91f938cac0e6d798bd7bd25a02c0d --- Accel.c (.../Accel.c) (revision 14434061a23aa02218e1f3c6cc3024123e79b153) +++ Accel.c (.../Accel.c) (revision 9226df9ba2c91f938cac0e6d798bd7bd25a02c0d) @@ -363,18 +363,24 @@ { // publish accelerometer data on interval if ( ++accelDataPublicationTimerCounter >= getPublishAccelDataInterval() ) - { - F32 x = accelAvgVector[ ACCEL_AXIS_X ]; - F32 y = accelAvgVector[ ACCEL_AXIS_Y ]; - F32 z = accelAvgVector[ ACCEL_AXIS_Z ]; - F32 xm = getMaxAccelAxis( ACCEL_AXIS_X ); - F32 ym = getMaxAccelAxis( ACCEL_AXIS_Y ); - F32 zm = getMaxAccelAxis( ACCEL_AXIS_Z ); - F32 xt = accelTilt[ ACCEL_AXIS_X ]; - F32 yt = accelTilt[ ACCEL_AXIS_Y ]; - F32 zt = accelTilt[ ACCEL_AXIS_Z ]; + { + ACCEL_DATA_PAYLOAD_T accData; - broadcastAccelData( x, y, z, xm, ym, zm, xt, yt, zt ); + accData.x = accelAvgVector[ ACCEL_AXIS_X ]; + accData.y = accelAvgVector[ ACCEL_AXIS_Y ]; + accData.z = accelAvgVector[ ACCEL_AXIS_Z ]; + accData.xMax = getMaxAccelAxis( ACCEL_AXIS_X ); + accData.yMax = getMaxAccelAxis( ACCEL_AXIS_Y ); + accData.zMax = getMaxAccelAxis( ACCEL_AXIS_Z ); + accData.xTilt = accelTilt[ ACCEL_AXIS_X ]; + accData.yTilt = accelTilt[ ACCEL_AXIS_Y ]; + accData.zTilt = accelTilt[ ACCEL_AXIS_Z ]; + +#ifdef _DG_ + broadcastData( MSG_ID_DG_ACCELEROMETER_DATA, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&accData, sizeof( ACCEL_DATA_PAYLOAD_T ) ); +#else + broadcastData( MSG_ID_HD_ACCELEROMETER_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&accData, sizeof( ACCEL_DATA_PAYLOAD_T ) ); +#endif // Reset publication timer counter accelDataPublicationTimerCounter = 0; // Reset max axes Index: MessageSupport.c =================================================================== diff -u -r706d450e92a86b9751fccce9e71aa0080798ea01 -r9226df9ba2c91f938cac0e6d798bd7bd25a02c0d --- MessageSupport.c (.../MessageSupport.c) (revision 706d450e92a86b9751fccce9e71aa0080798ea01) +++ MessageSupport.c (.../MessageSupport.c) (revision 9226df9ba2c91f938cac0e6d798bd7bd25a02c0d) @@ -1,4 +1,5 @@ +#include "MessageSupport.h" #include "SystemCommMessages.h" #include "Utilities.h" @@ -12,9 +13,9 @@ /*********************************************************************//** * @brief - * The broadcastData function broadcasts data. + * The broadcastData function queues a broadcast message for transmission. * @details Inputs: none - * @details Outputs: load cell data msg constructed and queued + * @details Outputs: broadcast data msg constructed and queued * @param msgID message ID of the data is broadcast * @param buffer comm buffer ID * @param dataPtr pointer to the start of the buffer @@ -32,7 +33,10 @@ msg.hdr.msgID = msgID; msg.hdr.payloadLen = length; - memcpy( payloadPtr, dataPtr, length ); + if ( ( length > 0 ) && ( dataPtr != 0 ) ) + { + memcpy( payloadPtr, dataPtr, length ); + } // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer result = serializeMessage( msg, buffer, ACK_NOT_REQUIRED ); @@ -41,4 +45,3 @@ } /**@}*/ - Index: MessageSupport.h =================================================================== diff -u -r706d450e92a86b9751fccce9e71aa0080798ea01 -r9226df9ba2c91f938cac0e6d798bd7bd25a02c0d --- MessageSupport.h (.../MessageSupport.h) (revision 706d450e92a86b9751fccce9e71aa0080798ea01) +++ MessageSupport.h (.../MessageSupport.h) (revision 9226df9ba2c91f938cac0e6d798bd7bd25a02c0d) @@ -12,7 +12,8 @@ * @{ */ -// Generic broadcast function +// ********** public function prototypes ********** + BOOL broadcastData( MSG_ID_T msgID, COMM_BUFFER_T buffer, U08* dataPtr, U32 length ); #endif Index: RTC.c =================================================================== diff -u -r5f7a10c8e116c2e00578934022ad16dda89d5bdb -r9226df9ba2c91f938cac0e6d798bd7bd25a02c0d --- RTC.c (.../RTC.c) (revision 5f7a10c8e116c2e00578934022ad16dda89d5bdb) +++ RTC.c (.../RTC.c) (revision 9226df9ba2c91f938cac0e6d798bd7bd25a02c0d) @@ -1230,7 +1230,7 @@ updateReadTimestampStruct(); lastEpochTime = convertDateTime2Epoch( RTCTimestampStruct ); timeCounter = 1; - broadcastRTCEpoch( lastEpochTime ); + broadcastData( MSG_ID_RTC_EPOCH, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&lastEpochTime, sizeof( U32 ) ); } result = RTC_EXEC_STATE_IDLE;