Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -ra1cce9bd6eaa93435e55d7328e24b39d521a266f -r3fc7575057616cba1efb317d41ded824a8a74eb4 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision a1cce9bd6eaa93435e55d7328e24b39d521a266f) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 3fc7575057616cba1efb317d41ded824a8a74eb4) @@ -26,6 +26,7 @@ #include "RTC.h" #include "LoadCell.h" #include "TemperatureSensors.h" +#include "Heaters.h" // ********** private definitions ********** @@ -58,6 +59,13 @@ F32 loadCellB2inGram; } LOAD_CELL_DATA_T; +typedef struct +{ + U32 mainPrimayHeaterDC; + U32 smallPrimaryHeaterDC; + U32 trimmerHeaterDC; +} HEATERS_DATA_T; + #pragma pack(pop) // ********** private data ********** @@ -337,7 +345,7 @@ // create a message record blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_LOAD_CELL_READINGS; + msg.hdr.msgID = MSG_ID_DG_HEATERS_DATA; msg.hdr.payloadLen = sizeof( LOAD_CELL_DATA_T ); payload.loadCellA1inGram = loadCellA1; @@ -353,7 +361,41 @@ return result; } +/************************************************************************* + * @brief + * The broadcastHeatersData function sends out DG heaters data + * @details + * Inputs : heaters data + * Outputs : heatears data msg constructed and queued + * @param mainPrimaryDC : main primary heater duty cycle + * @param smallPrimaryDC : small primary heater duty cycle + * @param trimmerDC : trimmer heater duty cycle + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL broadcastHeatersData ( U32 mainPrimaryDC, U32 smallPrimaryDC, U32 trimmerDC ) +{ + BOOL result; + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + HEATERS_DATA_T payload; + // create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_DG_HEATERS_DATA; + msg.hdr.payloadLen = sizeof( HEATERS_DATA_T ); + + payload.mainPrimayHeaterDC = mainPrimaryDC; + payload.smallPrimaryHeaterDC = smallPrimaryDC; + payload.trimmerHeaterDC = trimmerDC; + + memcpy( payloadPtr, &payload, sizeof( HEATERS_DATA_T ) ); + + // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer + result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_BROADCAST, ACK_NOT_REQUIRED ); + + return result; +} + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ @@ -523,10 +565,23 @@ * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_ARRAY_OVERRIDE_HANDLER_FUNC_U32( BOOL, handleTestTemperatureSensorsOverrideRequest, +DATA_ARRAY_OVERRIDE_HANDLER_FUNC_F32( BOOL, handleTestTemperatureSensorsOverrideRequest, \ testSetMeasuredTemperatureOverride, testResetMeasuredTemperatureOverride ) /************************************************************************* + * @brief + * The handleTestHeatersDataPublishOverrideRequest function handles \n + * a request to override the publish interval of heaters data + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC_U32( BOOL, handleTestHeatersDataPublishOverrideRequest, \ + testSetHeatersPublishIntervalOverride, testResetHeatersPublishIntervalOverride ) + +/************************************************************************* * @brief handleSetRTCTimestamp * The handleSetRTCTimestamp function handles a request to write time and * date to RTC