Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rdd3356035996866e5db7678d352f933fc22ad789 -r986147effa2865d32f37c8c4c2b8b396eda847e0 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision dd3356035996866e5db7678d352f933fc22ad789) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 986147effa2865d32f37c8c4c2b8b396eda847e0) @@ -25,6 +25,7 @@ #include "SystemComm.h" #include "RTC.h" #include "LoadCell.h" +#include "Valves.h" // ********** private definitions ********** @@ -352,7 +353,48 @@ return result; } +/************************************************************************* + * @brief + * The broadcastValvesStates function sends out DG valves states. + * @details + * Inputs : none + * Outputs : Valves states msg constructed and queued + * @param valvesStates : valves states + * refer to setFPGAValveStates function in FPGA.c for details + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL broadcastValvesStates( F32 valvesStates ) +{ + BOOL result; + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + VALVE_STATES_T payload; + // create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_DG_VALVES_STATES; + msg.hdr.payloadLen = sizeof( VALVE_STATES_T ); + + payload.VRF = valvesStates; + payload.VRI = valvesStates; + payload.VRD = valvesStates; + payload.VRO = valvesStates; + payload.VPO = valvesStates; + payload.VBF = valvesStates; + payload.VRC = valvesStates; + payload.VDR = valvesStates; + payload.VPI = valvesStates; + payload.VSP = valvesStates; + payload.VPD = valvesStates; + + memcpy( payloadPtr, &payload, sizeof( VALVE_STATES_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 *************************************************************************/