Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rab304e2ca6e3e40ed8cb12650e9855ae0b9649d8 -raa36ab1ed13d099286cedcbd066f7dce11146d13 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision ab304e2ca6e3e40ed8cb12650e9855ae0b9649d8) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision aa36ab1ed13d099286cedcbd066f7dce11146d13) @@ -41,6 +41,7 @@ #include "Valves.h" #include "WatchdogMgmt.h" #include "ModeHeatDisinfect.h" +#include "UVReactors.h" /** * @addtogroup SystemCommMessages @@ -505,30 +506,22 @@ * @details * Inputs : none * Outputs : RO pump data msg constructed and queued - * @param tgtPressure target pressure for RO pump in PSI - * @param measFlow measure RO flow rate in LPM - * @param setPWM set PWM duty cycle in % + * @param RO Pump msg constructed and queued * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL broadcastROPumpData( F32 tgtPressure, F32 measFlow, F32 setPWM, U32 pumpState ) +BOOL broadcastROPumpData( RO_PUMP_DATA_T *pumpData ) { BOOL result; MESSAGE_T msg; U08 *payloadPtr = msg.payload; - RO_PUMP_DATA_T payload; // create a message record blankMessage( &msg ); msg.hdr.msgID = MSG_ID_RO_PUMP_DATA; msg.hdr.payloadLen = sizeof( RO_PUMP_DATA_T ); + + memcpy( payloadPtr, pumpData, sizeof( RO_PUMP_DATA_T ) ); - payload.roPumpTgtPressure = tgtPressure; - payload.measROFlowRate = measFlow; - payload.roPumpPWM = setPWM; - payload.roPumpState = pumpState; - - memcpy( payloadPtr, &payload, sizeof( RO_PUMP_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 ); @@ -741,6 +734,33 @@ return result; } +/*********************************************************************//** + * @brief + * The broadcastUVReactorsData function sends out UV reactors data. + * @details + * Inputs : none + * Outputs : UV reactors data msg constructed and queued + * @param UV reactors msg constructed and queued + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL broadcastUVReactorsData( UV_REACTORS_DATA_T *uvReactorsData ) +{ + BOOL result; + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + + // create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_DG_UV_REACTORS_DATA; + msg.hdr.payloadLen = sizeof( UV_REACTORS_DATA_T ); + + memcpy( payloadPtr, uvReactorsData, sizeof( UV_REACTORS_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; +} // *********************************************************************** // **************** Message Handling Helper Functions ********************