Index: CommBuffers.h =================================================================== diff -u -r34e9d24b76d786a5d3bba641f06e7764439c161e -rfb1be94d30e7017deb9bb465ce676ee37f2d73f3 --- CommBuffers.h (.../CommBuffers.h) (revision 34e9d24b76d786a5d3bba641f06e7764439c161e) +++ CommBuffers.h (.../CommBuffers.h) (revision fb1be94d30e7017deb9bb465ce676ee37f2d73f3) @@ -35,47 +35,47 @@ { COMM_BUFFER_NOT_USED = 0, ///< CAN message boxes start at 1 so we will not use this buffer #ifdef _TD_ - COMM_BUFFER_OUT_CAN_TD_ALARM, ///< Buffer for outgoing TD alarm messages - COMM_BUFFER_IN_CAN_DD_ALARM, ///< Buffer for incoming DD alarm messages - COMM_BUFFER_IN_CAN_RO_ALARM, ///< Buffer for incoming RO alarm messages - COMM_BUFFER_IN_CAN_UI_ALARM, ///< Buffer for incoming UI alarm messages - COMM_BUFFER_OUT_CAN_TD_2_DD, ///< Buffer for outgoing TD to DD messages - COMM_BUFFER_IN_CAN_DD_2_TD, ///< Buffer for incoming DD to HD messages - COMM_BUFFER_OUT_CAN_TD_2_UI, ///< Buffer for outgoing TD to UI messages - COMM_BUFFER_IN_CAN_UI_2_TD, ///< Buffer for incoming UI to TD messages - COMM_BUFFER_OUT_CAN_TD_BROADCAST, ///< Buffer for outgoing TD broadcast messages - COMM_BUFFER_IN_CAN_DD_BROADCAST, ///< Buffer for incoming DD broadcast messages - COMM_BUFFER_IN_CAN_RO_BROADCAST, ///< Buffer for incoming RO broadcast messages - COMM_BUFFER_IN_CAN_UI_BROADCAST, ///< Buffer for incoming UI broadcast messages + COMM_BUFFER_OUT_CAN_TD_ALARM, ///< Buffer for outgoing TD alarm messages (channel 1) + COMM_BUFFER_IN_CAN_DD_ALARM, ///< Buffer for incoming DD alarm messages (channel 2) + COMM_BUFFER_IN_CAN_RO_ALARM, ///< Buffer for incoming RO alarm messages (channel 4) + COMM_BUFFER_IN_CAN_UI_ALARM, ///< Buffer for incoming UI alarm messages (channel 8) + COMM_BUFFER_OUT_CAN_TD_2_DD, ///< Buffer for outgoing TD to DD messages (channel 10) + COMM_BUFFER_IN_CAN_DD_2_TD, ///< Buffer for incoming DD to HD messages (channel 11) + COMM_BUFFER_OUT_CAN_TD_2_UI, ///< Buffer for outgoing TD to UI messages (channel 40) + COMM_BUFFER_IN_CAN_UI_2_TD, ///< Buffer for incoming UI to TD messages (channel 41) + COMM_BUFFER_OUT_CAN_TD_BROADCAST, ///< Buffer for outgoing TD broadcast messages (channel 100) + COMM_BUFFER_IN_CAN_DD_BROADCAST, ///< Buffer for incoming DD broadcast messages (channel 101) + COMM_BUFFER_IN_CAN_RO_BROADCAST, ///< Buffer for incoming RO broadcast messages (channel 102) + COMM_BUFFER_IN_CAN_UI_BROADCAST, ///< Buffer for incoming UI broadcast messages (channel 103) #endif #ifdef _DD_ - COMM_BUFFER_IN_CAN_TD_ALARM, ///< Buffer for incoming TD alarm messages - COMM_BUFFER_OUT_CAN_DD_ALARM, ///< Buffer for outgoing DD alarm messages - COMM_BUFFER_IN_CAN_RO_ALARM, ///< Buffer for incoming RO alarm messages - COMM_BUFFER_IN_CAN_UI_ALARM, ///< Buffer for incoming UI alarm messages - COMM_BUFFER_IN_CAN_TD_2_DD, ///< Buffer for incoming TD to DD messages - COMM_BUFFER_OUT_CAN_DD_2_TD, ///< Buffer for outgoing DD to TD messages - COMM_BUFFER_OUT_CAN_DD_2_RO, ///< Buffer for outgoing DD to RO messages - COMM_BUFFER_IN_CAN_RO_2_DD, ///< Buffer for incoming RO to DD messages - COMM_BUFFER_IN_CAN_TD_BROADCAST, ///< Buffer for incoming TD broadcast messages - COMM_BUFFER_OUT_CAN_DD_BROADCAST, ///< Buffer for outgoing DD broadcast messages - COMM_BUFFER_IN_CAN_RO_BROADCAST, ///< Buffer for incoming RO broadcast messages - COMM_BUFFER_IN_CAN_UI_BROADCAST, ///< Buffer for incoming UI broadcast messages + COMM_BUFFER_IN_CAN_TD_ALARM, ///< Buffer for incoming TD alarm messages (channel 1) + COMM_BUFFER_OUT_CAN_DD_ALARM, ///< Buffer for outgoing DD alarm messages (channel 2) + COMM_BUFFER_IN_CAN_RO_ALARM, ///< Buffer for incoming RO alarm messages (channel 4) + COMM_BUFFER_IN_CAN_UI_ALARM, ///< Buffer for incoming UI alarm messages (channel 8) + COMM_BUFFER_IN_CAN_TD_2_DD, ///< Buffer for incoming TD to DD messages (channel 10) + COMM_BUFFER_OUT_CAN_DD_2_TD, ///< Buffer for outgoing DD to TD messages (channel 11) + COMM_BUFFER_OUT_CAN_DD_2_RO, ///< Buffer for outgoing DD to RO messages (channel 20) + COMM_BUFFER_IN_CAN_RO_2_DD, ///< Buffer for incoming RO to DD messages (channel 21) + COMM_BUFFER_IN_CAN_TD_BROADCAST, ///< Buffer for incoming TD broadcast messages (channel 100) + COMM_BUFFER_OUT_CAN_DD_BROADCAST, ///< Buffer for outgoing DD broadcast messages (channel 101) + COMM_BUFFER_IN_CAN_RO_BROADCAST, ///< Buffer for incoming RO broadcast messages (channel 102) + COMM_BUFFER_IN_CAN_UI_BROADCAST, ///< Buffer for incoming UI broadcast messages (channel 103) #endif #ifdef _RO_ - COMM_BUFFER_IN_CAN_TD_ALARM, ///< Buffer for incoming TD alarm messages - COMM_BUFFER_IN_CAN_DD_ALARM, ///< Buffer for incoming DD alarm messages - COMM_BUFFER_OUT_CAN_RO_ALARM, ///< Buffer for outgoing RO alarm messages - COMM_BUFFER_IN_CAN_UI_ALARM, ///< Buffer for incoming UI alarm messages - COMM_BUFFER_IN_CAN_DD_2_RO, ///< Buffer for incoming DD to RO messages - COMM_BUFFER_OUT_CAN_RO_2_DD, ///< Buffer for outgoing RO to DD messages - COMM_BUFFER_IN_CAN_TD_BROADCAST, ///< Buffer for incoming TD broadcast messages - COMM_BUFFER_IN_CAN_DD_BROADCAST, ///< Buffer for incoming DD broadcast messages - COMM_BUFFER_OUT_CAN_RO_BROADCAST, ///< Buffer for incoming RO broadcast messages - COMM_BUFFER_IN_CAN_UI_BROADCAST, ///< Buffer for incoming UI broadcast messages + COMM_BUFFER_IN_CAN_TD_ALARM, ///< Buffer for incoming TD alarm messages (channel 1) + COMM_BUFFER_IN_CAN_DD_ALARM, ///< Buffer for incoming DD alarm messages (channel 2) + COMM_BUFFER_OUT_CAN_RO_ALARM, ///< Buffer for outgoing RO alarm messages (channel 4) + COMM_BUFFER_IN_CAN_UI_ALARM, ///< Buffer for incoming UI alarm messages (channel 8) + COMM_BUFFER_IN_CAN_DD_2_RO, ///< Buffer for incoming DD to RO messages (channel 20) + COMM_BUFFER_OUT_CAN_RO_2_DD, ///< Buffer for outgoing RO to DD messages (channel 21) + COMM_BUFFER_IN_CAN_TD_BROADCAST, ///< Buffer for incoming TD broadcast messages (channel 100) + COMM_BUFFER_IN_CAN_DD_BROADCAST, ///< Buffer for incoming DD broadcast messages (channel 101) + COMM_BUFFER_OUT_CAN_RO_BROADCAST, ///< Buffer for incoming RO broadcast messages (channel 102) + COMM_BUFFER_IN_CAN_UI_BROADCAST, ///< Buffer for incoming UI broadcast messages (channel 103) #endif - COMM_BUFFER_IN_CAN_PC, ///< Buffer for incoming PC messages - COMM_BUFFER_OUT_CAN_PC, ///< Buffer for outgoing messages to PC + COMM_BUFFER_IN_CAN_PC, ///< Buffer for incoming PC messages (channel 400-TD, 402-DD, 404-RO) + COMM_BUFFER_OUT_CAN_PC, ///< Buffer for outgoing messages to PC (channel 401-TD, 403-DD, 405-RO) NUM_OF_COMM_BUFFERS ///< Number of CAN communication buffers } COMM_BUFFER_T; Index: MessagePayloads.h =================================================================== diff -u -re62c7bc87df7aa4d6afb5885f3cf33078c9112a3 -rfb1be94d30e7017deb9bb465ce676ee37f2d73f3 --- MessagePayloads.h (.../MessagePayloads.h) (revision e62c7bc87df7aa4d6afb5885f3cf33078c9112a3) +++ MessagePayloads.h (.../MessagePayloads.h) (revision fb1be94d30e7017deb9bb465ce676ee37f2d73f3) @@ -56,6 +56,25 @@ F32 roRate; ///< Set RO water rate (mL/min). } RO_WATER_REQ_PAYLOAD_T; +/// Pressure data struct. +typedef struct +{ + F32 m1Pressure; ///< Water Inlet Input pressure + F32 m3Pressure; ///< Water Inlet Output pressure + F32 d9Pressure; ///< Hydraulics outlet pressure + F32 d66Pressure; ///< Bicarb bag pressure + F32 d51Pressure; ///< Spent Dialysate pressure + F32 d18Pressure; ///< Fresh Dialysate pressure + F32 d41Pressure; ///< Transmembrane pressure + F32 m1PresTemp; ///< Water Inlet Input temperature + F32 m3PresTemp; ///< Water Inlet Output temperature + F32 d9PresTemp; ///< Hydraulics outlet pressure temperature + F32 d66PresTemp; ///< Bicarb bag temperature + F32 d51PresTemp; ///< Spent Dialysate temperature + F32 d18PresTemp; ///< Fresh Dialysate temperature + F32 d41PresTemp; ///< Transmembrane temperature +} DD_PRESSURE_TEMP_DATA_T; + #pragma pack(pop) /**@}*/ Index: MessageSupport.c =================================================================== diff -u -rf77e7c2b1dab61807f21f25c793afc063d43907c -rfb1be94d30e7017deb9bb465ce676ee37f2d73f3 --- MessageSupport.c (.../MessageSupport.c) (revision f77e7c2b1dab61807f21f25c793afc063d43907c) +++ MessageSupport.c (.../MessageSupport.c) (revision fb1be94d30e7017deb9bb465ce676ee37f2d73f3) @@ -25,14 +25,13 @@ /*********************************************************************//** * @brief - * The broadcastData function queues a broadcast message for transmission - * to a given CAN buffer. - * @details \b Inputs: none - * @details \b Outputs: broadcast data msg constructed and queued - * @param msgID ID of message to broadcast - * @param buffer ID of CAN transmit buffer to add broadcast message to - * @param dataPtr pointer to the start of the serialized message data to queue - * @param length length of the serialized message data + * The broadcastData function queues a broadcast message for transmission. + * @details Inputs: none + * @details Outputs: broadcast data msg constructed and queued for transmission. + * @param msgID message ID of the data message to broadcast + * @param buffer comm buffer ID + * @param dataPtr pointer to the start of the payload data buffer + * @param length number of bytes of data in the given data buffer * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ BOOL broadcastData( MSG_ID_T msgID, COMM_BUFFER_T buffer, U08* dataPtr, U32 length ) @@ -57,4 +56,37 @@ return result; } +/*********************************************************************//** + * @brief + * The sendMessage function queues a cmd/resp message for transmission. + * @details Inputs: none + * @details Outputs: Message constructed and queued for transmission. + * @param msgID message ID of the message to broadcast + * @param buffer comm buffer ID + * @param dataPtr pointer to the start of the payload data buffer + * @param length number of bytes of data in the given data buffer + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL sendMessage( MSG_ID_T msgID, COMM_BUFFER_T buffer, U08* dataPtr, U32 length ) +{ + BOOL result; + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + + // create a message record + blankMessage( &msg ); + msg.hdr.msgID = (U16)msgID; + msg.hdr.payloadLen = (U08)length; + + if ( ( length > 0 ) && ( length < BITS_8_FULL_SCALE ) && ( 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_REQUIRED ); + + return result; +} + /**@}*/ Index: MessageSupport.h =================================================================== diff -u -r34e9d24b76d786a5d3bba641f06e7764439c161e -rfb1be94d30e7017deb9bb465ce676ee37f2d73f3 --- MessageSupport.h (.../MessageSupport.h) (revision 34e9d24b76d786a5d3bba641f06e7764439c161e) +++ MessageSupport.h (.../MessageSupport.h) (revision fb1be94d30e7017deb9bb465ce676ee37f2d73f3) @@ -65,5 +65,6 @@ // ********** public function prototypes ********** BOOL broadcastData( MSG_ID_T msgID, COMM_BUFFER_T buffer, U08* dataPtr, U32 length ); +BOOL sendMessage( MSG_ID_T msgID, COMM_BUFFER_T buffer, U08* dataPtr, U32 length ); #endif