Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r633861a3e472c1a288fa10a52ec0f7e7153e4dce -rb6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 633861a3e472c1a288fa10a52ec0f7e7153e4dce) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision b6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7) @@ -1149,6 +1149,34 @@ return result; } + +/*********************************************************************//** + * @brief + * The broadcastPreTreatmentState function constructs a pre-treatment state msg to + * be broadcast and queues the msg for transmit on the appropriate CAN channel. + * @details Inputs: none + * @details Outputs: pre-treatment state msg constructed and queued + * @param preTreatmentDataPtr pointer to pre-treatment data record to broadcast + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL broadcastPreTreatmentState( PRE_TREATMENT_STATE_DATA_T *preTreatmentDataPtr ) +{ + BOOL result; + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + + // Create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_PRE_TREATMENT_STATE; + msg.hdr.payloadLen = sizeof( PRE_TREATMENT_STATE_DATA_T ); + + memcpy( payloadPtr, preTreatmentDataPtr, sizeof( PRE_TREATMENT_STATE_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_HD_BROADCAST, ACK_NOT_REQUIRED ); + + return result; +} /*********************************************************************//** * @brief