Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rf7e3018ec6ab762fe08efb42b21fb2ca970174b0 -r3e525c0567dd0b7d2153b751169d0ae17648e117 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision f7e3018ec6ab762fe08efb42b21fb2ca970174b0) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 3e525c0567dd0b7d2153b751169d0ae17648e117) @@ -24,13 +24,17 @@ #include "Buttons.h" #include "DialInFlow.h" #include "MsgQueues.h" +#include "PresOccl.h" #include "WatchdogMgmt.h" #include "SystemCommMessages.h" #include "Utilities.h" #include "SystemComm.h" // ********** private definitions ********** +#define ACK_REQUIRED TRUE +#define ACK_NOT_REQUIRED FALSE + #pragma pack(push,1) typedef struct @@ -57,41 +61,74 @@ F32 pwmDC; } PERISTALTIC_PUMP_STATUS_PAYLOAD_T; +typedef struct +{ + F32 arterialPressure; + F32 venousPressure; + F32 bldPumpOcclusion; + F32 diPumpOcclusion; + F32 doPumpOcclusion; +} PRESSURE_OCCLUSION_DATA_T; + #pragma pack(pop) // ********** private data ********** static BOOL testerLoggedIn = FALSE; +static volatile U16 nextSeqNo = 1; // ********** private function prototypes ********** -static U32 serializeMessage( MESSAGE_T msg, U08 *data ); +static U32 serializeMessage( MESSAGE_T msg, COMM_BUFFER_T buffer, BOOL ackReq ); static BOOL sendTestAckResponseMsg( MSG_ID_T msgID, BOOL ack ); /************************************************************************* * @brief serializeMessage * The serializeMessage function serializes a given message into a given \n - * array of bytes. A sync byte is inserted at the beginning of the message \n - * and an 8-bit CRC is appended to the end of the message. The given array \n - * must be large enough to hold the message + 1 sync byte and 1 CRC byte and \n - * up to 7 CAN padding bytes. + * array of bytes. A sequence # is added to the message here and the ACK \n + * bit of the sequence # is set if ACK is required per parameter. A sync byte \n + * is inserted at the beginning of the message and an 8-bit CRC is appended to \n + * the end of the message. The message is queued for transmission in the given buffer. * @details * Inputs : none - * Outputs : given data array populated with serialized message data. + * Outputs : given data array populated with serialized message data and queued for transmit. * @param msg : message to serialize - * @param data : byte array to populate with message data + * @param buffer : outgoing buffer that message should be queued in + * @param ackReq : is an acknowledgement from receiver required? * @return size (in bytes) of serialized message populated in given data array. *************************************************************************/ -static U32 serializeMessage( MESSAGE_T msg, U08 *data ) +static U32 serializeMessage( MESSAGE_T msg, COMM_BUFFER_T buffer, BOOL ackReq ) { + BOOL result = 0; + BOOL error = FALSE; U32 msgSize = 0; U32 sizeMod, sizePad; U32 i; - U08 crc = crc8( (U08*)(&msg), sizeof( MESSAGE_HEADER_T ) + msg.hdr.payloadLen ); + U08 crc; + U08 data[ MAX_ACK_MSG_SIZE ]; // byte array to populate with message data // prefix data with message sync byte data[ msgSize++ ] = MESSAGE_SYNC_BYTE; + // set sequence # and ACK bit (unless this is an ACK to a received message) +#ifndef ACK_NOT_IMPLEMENTED + if ( msg.hdr.msgID != MSG_ID_ACK ) + { + // thread protect next sequence # access & increment + _disable_IRQ(); + msg.hdr.seqNo = nextSeqNo; + nextSeqNo = INC_WRAP( nextSeqNo, MIN_MSG_SEQ_NO, MAX_MSG_SEQ_NO ); + _enable_IRQ(); + if ( TRUE == ackReq ) + { + msg.hdr.seqNo *= -1; + } + } +#endif + + // calculate message CRC + crc = crc8( (U08*)(&msg), sizeof( MESSAGE_HEADER_T ) + msg.hdr.payloadLen ); + // serialize message header data memcpy( &data[ msgSize ], &( msg.hdr ), sizeof( MESSAGE_HEADER_T ) ); msgSize += sizeof( MESSAGE_HEADER_T ); @@ -111,9 +148,59 @@ data[ msgSize++ ] = 0; } - return msgSize; +#ifndef ACK_NOT_IMPLEMENTED + // if ACK required, add to pending ACK list + if ( TRUE == ackReq ) + { + if ( FALSE == addMsgToPendingACKList( &msg, buffer, data, msgSize ) ) + { + error = TRUE; + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_MSG_PENDING_ACK_LIST_FULL ) + } + } +#endif + + if ( FALSE == error ) + { + // add serialized message data to appropriate out-going comm buffer + result = addToCommBuffer( buffer, data, msgSize ); + } + + return result; } +#ifndef ACK_NOT_IMPLEMENTED +/************************************************************************* + * @brief sendACKMsg + * The sendACKMsg function constructs and queues for transmit an ACK message \n + * for a given received message. + * @details + * Inputs : none + * Outputs : ACK message queued for transmit on broadcast CAN channel. + * @param message : message to send an ACK for + * @return TRUE if ACK message queued successfully, FALSE if not + *************************************************************************/ +BOOL sendACKMsg( MESSAGE_T *message ) +{ + BOOL result; + MESSAGE_T msg; + + // create a message record + blankMessage( &msg ); + // send ACK back with same seq. #, but w/o ACK bit + msg.hdr.seqNo = message->hdr.seqNo * -1; + // ACK messages always have this ID + msg.hdr.msgID = MSG_ID_ACK; + // ACK messages always have no payload + msg.hdr.payloadLen = 0; + + // serialize and queue the message for transmit on broadcast channel + result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_BROADCAST, ACK_NOT_REQUIRED ); + + return result; +} +#endif + // *********************************************************************** // ********************* MSG_ID_OFF_BUTTON_PRESS ************************* // *********************************************************************** @@ -133,21 +220,16 @@ { BOOL result; MESSAGE_T msg; - U32 msgSize; - U08 data[ sizeof( MESSAGE_WRAPPER_T ) + 1 + CAN_MESSAGE_PAYLOAD_SIZE ]; // must hold full (wrapped) message + sync + any CAN padding // create a message record blankMessage( &msg ); msg.hdr.msgID = MSG_ID_OFF_BUTTON_PRESS; - msg.hdr.payloadLen = 1; + msg.hdr.payloadLen = sizeof( U08 ); msg.payload[ 0 ] = cmd; - // serialize the message (w/ sync, CRC, and appropriate CAN padding) - msgSize = serializeMessage( msg, data ); + // 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_2_UI, ACK_NOT_REQUIRED ); - // add serialized message data to appropriate comm buffer - result = addToCommBuffer( COMM_BUFFER_OUT_CAN_HD_2_UI, data, msgSize ); - return result; } @@ -183,8 +265,6 @@ { BOOL result; MESSAGE_T msg; - U32 msgSize; - U08 data[ sizeof( MESSAGE_WRAPPER_T ) + 1 + CAN_MESSAGE_PAYLOAD_SIZE ]; // must hold full (wrapped) message + sync + any CAN padding U08 *payloadPtr = msg.payload; ALARM_COMP_STATUS_PAYLOAD_T payload; @@ -209,12 +289,9 @@ memcpy( payloadPtr, &payload, sizeof( ALARM_COMP_STATUS_PAYLOAD_T ) ); - // serialize the message (w/ sync, CRC, and appropriate CAN padding) - msgSize = serializeMessage( msg, data ); + // 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_ALARM, ACK_NOT_REQUIRED ); - // add serialized message data to appropriate comm buffer - result = addToCommBuffer( COMM_BUFFER_OUT_CAN_HD_ALARM, data, msgSize ); - return result; } @@ -234,8 +311,6 @@ { BOOL result; MESSAGE_T msg; - U32 msgSize; - U08 data[ sizeof( MESSAGE_WRAPPER_T ) + 1 + CAN_MESSAGE_PAYLOAD_SIZE ]; // must hold full (wrapped) message + sync + any CAN padding U08 *payloadPtr = msg.payload; // create a message record @@ -249,12 +324,9 @@ payloadPtr += sizeof( ALARM_DATA_T ); memcpy( payloadPtr, &almData2, sizeof( ALARM_DATA_T ) ); - // serialize the message (w/ sync, CRC, and appropriate CAN padding) - msgSize = serializeMessage( msg, data ); + // 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_ALARM, ACK_REQUIRED ); - // add serialized message data to appropriate comm buffer - result = addToCommBuffer( COMM_BUFFER_OUT_CAN_HD_ALARM, data, msgSize ); - return result; } @@ -272,8 +344,6 @@ { BOOL result; MESSAGE_T msg; - U32 msgSize; - U08 data[ sizeof( MESSAGE_WRAPPER_T ) + 1 + CAN_MESSAGE_PAYLOAD_SIZE ]; // must hold full (wrapped) message + sync + any CAN padding U08 *payloadPtr = msg.payload; // create a message record @@ -283,12 +353,9 @@ memcpy( payloadPtr, &alarm, sizeof( U16 ) ); - // serialize the message (w/ sync, CRC, and appropriate CAN padding) - msgSize = serializeMessage( msg, data ); + // 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_ALARM, ACK_REQUIRED ); - // add serialized message data to appropriate comm buffer - result = addToCommBuffer( COMM_BUFFER_OUT_CAN_HD_ALARM, data, msgSize ); - return result; } @@ -312,8 +379,6 @@ { BOOL result; MESSAGE_T msg; - U32 msgSize; - U08 data[ sizeof( MESSAGE_WRAPPER_T ) + 1 + CAN_MESSAGE_PAYLOAD_SIZE ]; // must hold full (wrapped) message + sync + any CAN padding U08 *payloadPtr = msg.payload; PERISTALTIC_PUMP_STATUS_PAYLOAD_T payload; @@ -332,12 +397,9 @@ memcpy( payloadPtr, &payload, sizeof( PERISTALTIC_PUMP_STATUS_PAYLOAD_T ) ); - // serialize the message (w/ sync, CRC, and appropriate CAN padding) - msgSize = serializeMessage( msg, data ); + // 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 ); - // add serialized message data to appropriate comm buffer - result = addToCommBuffer( COMM_BUFFER_OUT_CAN_HD_BROADCAST, data, msgSize ); - return result; } @@ -350,7 +412,7 @@ * Outputs : dialysate flow data msg constructed and queued. * @param flowStPt : Current set point for dialysate flow * @param measFlow : Latest measured dialysate flow - * @param measRotorSpd : Latest measured dialysate pump rotoro speed + * @param measRotorSpd : Latest measured dialysate pump rotor speed * @param measSpd : Latest measured dialysate pump speed * @param measMCspd : Latest measured dialysate pump motor controller speed * @param measSpd : Latest measured dialysate pump motor controller current @@ -361,8 +423,6 @@ { BOOL result; MESSAGE_T msg; - U32 msgSize; - U08 data[ sizeof( MESSAGE_WRAPPER_T ) + 1 + CAN_MESSAGE_PAYLOAD_SIZE ]; // must hold full (wrapped) message + sync + any CAN padding U08 *payloadPtr = msg.payload; PERISTALTIC_PUMP_STATUS_PAYLOAD_T payload; @@ -381,12 +441,49 @@ memcpy( payloadPtr, &payload, sizeof( PERISTALTIC_PUMP_STATUS_PAYLOAD_T ) ); - // serialize the message (w/ sync, CRC, and appropriate CAN padding) - msgSize = serializeMessage( msg, data ); + // 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 ); - // add serialized message data to appropriate comm buffer - result = addToCommBuffer( COMM_BUFFER_OUT_CAN_HD_BROADCAST, data, msgSize ); + return result; +} +/************************************************************************* + * @brief broadcastPresOcclData + * The broadcastPresOcclData function constructs a pres/occl data msg to \n + * be broadcast and queues the msg for transmit on the appropriate CAN channel. + * @details + * Inputs : none + * Outputs : pressure/occlusion data msg constructed and queued. + * @param artPres : Latest measured arterial pressure + * @param venPres : Latest measured venous pressure + * @param bpOccl : Latest measured blood pump occlusion pressure + * @param diOccl : Latest measured dialysate inlet pump occlusion pressure + * @param doOccl : Latest measured dialysate outlet pump occlusion pressure + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL broadcastPresOcclData( F32 artPres, F32 venPres, F32 bpOccl, F32 diOccl, F32 doOccl ) +{ + BOOL result; + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + PRESSURE_OCCLUSION_DATA_T payload; + + // create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_PRESSURE_OCCLUSION_DATA; + msg.hdr.payloadLen = sizeof( PRESSURE_OCCLUSION_DATA_T ); + + payload.arterialPressure = artPres; + payload.venousPressure = venPres; + payload.bldPumpOcclusion = bpOccl; + payload.diPumpOcclusion = diOccl; + payload.doPumpOcclusion = doOccl; + + memcpy( payloadPtr, &payload, sizeof( PRESSURE_OCCLUSION_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; } @@ -437,21 +534,9 @@ BOOL sendDebugData( U08 *dbgData, U32 len ) { BOOL result; - MESSAGE_T msg; - U32 msgSize; - U08 data[sizeof(MESSAGE_WRAPPER_T) + 1 + CAN_MESSAGE_PAYLOAD_SIZE]; // must hold full (wrapped) message + sync + any CAN padding - // create a message record - blankMessage( &msg ); - msg.hdr.msgID = 2; - msg.hdr.payloadLen = len; - memcpy( msg.payload, dbgData, len ); - - // serialize the message (w/ sync, CRC, and appropriate CAN padding) - msgSize = serializeMessage( msg, data ); - // add serialized message data to appropriate comm buffer - result = addToCommBuffer( COMM_BUFFER_OUT_UART_PC, data, msgSize ); + result = addToCommBuffer( COMM_BUFFER_OUT_UART_PC, dbgData, len ); return result; } @@ -487,21 +572,16 @@ { BOOL result; MESSAGE_T msg; - U32 msgSize; - U08 data[ PC_MESSAGE_PACKET_SIZE ]; // create a message record blankMessage( &msg ); msg.hdr.msgID = msgID; - msg.hdr.payloadLen = 1; + msg.hdr.payloadLen = sizeof( U08 ); msg.payload[ 0 ] = (U08)ack; - // serialize the message (w/ sync, CRC, and appropriate CAN padding) - msgSize = serializeMessage( msg, data ); + // 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_PC, ACK_NOT_REQUIRED ); - // add serialized message data to appropriate comm buffer - result = addToCommBuffer( COMM_BUFFER_OUT_CAN_PC, data, msgSize ); - return result; } @@ -726,87 +806,158 @@ DATA_OVERRIDE_HANDLER_FUNC( U32, handleTestBloodFlowBroadcastIntervalOverrideRequest, testSetBloodFlowDataPublishIntervalOverride, testResetBloodFlowDataPublishIntervalOverride ) /************************************************************************* - * @brief handleTestDialFlowSetPointOverrideRequest - * The handleTestDialFlowSetPointOverrideRequest function handles a request to \n + * @brief handleTestDialInFlowSetPointOverrideRequest + * The handleTestDialInFlowSetPointOverrideRequest function handles a request to \n * override the set point for the dialysate inlet flow rate (mL/min). * @details * Inputs : none * Outputs : message handled * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC( U32, handleTestDialFlowSetPointOverrideRequest, testSetTargetDialInFlowRateOverride, testResetTargetDialInFlowRateOverride ) +DATA_OVERRIDE_HANDLER_FUNC( U32, handleTestDialInFlowSetPointOverrideRequest, testSetTargetDialInFlowRateOverride, testResetTargetDialInFlowRateOverride ) /************************************************************************* - * @brief handleTestDialFlowMeasuredOverrideRequest - * The handleTestDialFlowMeasuredOverrideRequest function handles a request to \n + * @brief handleTestDialInFlowMeasuredOverrideRequest + * The handleTestDialInFlowMeasuredOverrideRequest function handles a request to \n * override the measured dialysate inlet flow rate (mL/min). * @details * Inputs : none * Outputs : message handled * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialFlowMeasuredOverrideRequest, testSetMeasuredDialInFlowRateOverride, testResetMeasuredDialInFlowRateOverride ) +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialInFlowMeasuredOverrideRequest, testSetMeasuredDialInFlowRateOverride, testResetMeasuredDialInFlowRateOverride ) /************************************************************************* - * @brief handleTestDialPumpRotorMeasuredSpeedOverrideRequest - * The handleTestDialPumpRotorMeasuredSpeedOverrideRequest function handles a request to \n + * @brief handleTestDialInPumpRotorMeasuredSpeedOverrideRequest + * The handleTestDialInPumpRotorMeasuredSpeedOverrideRequest function handles a request to \n * override the measured dialysate inlet pump rotor speed (RPM). * @details * Inputs : none * Outputs : message handled * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialPumpRotorMeasuredSpeedOverrideRequest, testSetMeasuredDialInPumpRotorSpeedOverride, testResetMeasuredDialInPumpRotorSpeedOverride ) +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialInPumpRotorMeasuredSpeedOverrideRequest, testSetMeasuredDialInPumpRotorSpeedOverride, testResetMeasuredDialInPumpRotorSpeedOverride ) /************************************************************************* - * @brief handleTestDialPumpMeasuredSpeedOverrideRequest - * The handleTestDialPumpMeasuredSpeedOverrideRequest function handles a request to \n + * @brief handleTestDialInPumpMeasuredSpeedOverrideRequest + * The handleTestDialInPumpMeasuredSpeedOverrideRequest function handles a request to \n * override the measured dialysate inlet pump speed (RPM). * @details * Inputs : none * Outputs : message handled * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialPumpMeasuredSpeedOverrideRequest, testSetMeasuredDialInPumpSpeedOverride, testResetMeasuredDialInPumpSpeedOverride ) +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialInPumpMeasuredSpeedOverrideRequest, testSetMeasuredDialInPumpSpeedOverride, testResetMeasuredDialInPumpSpeedOverride ) /************************************************************************* - * @brief handleTestDialPumpMCMeasuredSpeedOverrideRequest - * The handleTestDialPumpMCMeasuredSpeedOverrideRequest function handles a request to \n + * @brief handleTestDialInPumpMCMeasuredSpeedOverrideRequest + * The handleTestDialInPumpMCMeasuredSpeedOverrideRequest function handles a request to \n * override the measured dialysate inlet pump motor controller speed (RPM). * @details * Inputs : none * Outputs : message handled * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialPumpMCMeasuredSpeedOverrideRequest, testSetMeasuredDialInPumpMCSpeedOverride, testResetMeasuredDialInPumpMCSpeedOverride ) +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialInPumpMCMeasuredSpeedOverrideRequest, testSetMeasuredDialInPumpMCSpeedOverride, testResetMeasuredDialInPumpMCSpeedOverride ) /************************************************************************* - * @brief handleTestDialPumpMCMeasuredCurrentOverrideRequest - * The handleTestDialPumpMCMeasuredCurrentOverrideRequest function handles a request to \n + * @brief handleTestDialInPumpMCMeasuredCurrentOverrideRequest + * The handleTestDialInPumpMCMeasuredCurrentOverrideRequest function handles a request to \n * override the measured dialysate inlet pump motor controller current (mA). * @details * Inputs : none * Outputs : message handled * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialPumpMCMeasuredCurrentOverrideRequest, testSetMeasuredDialInPumpMCCurrentOverride, testResetMeasuredDialInPumpMCCurrentOverride ) +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialInPumpMCMeasuredCurrentOverrideRequest, testSetMeasuredDialInPumpMCCurrentOverride, testResetMeasuredDialInPumpMCCurrentOverride ) /************************************************************************* - * @brief handleTestDialFlowBroadcastIntervalOverrideRequest - * The handleTestDialFlowBroadcastIntervalOverrideRequest function handles a request to \n + * @brief handleTestDialInFlowBroadcastIntervalOverrideRequest + * The handleTestDialInFlowBroadcastIntervalOverrideRequest function handles a request to \n * override the broadcast interval for dialysate inlet flow data. * @details * Inputs : none * Outputs : message handled * @param message : a pointer to the message to handle * @return none *************************************************************************/ -DATA_OVERRIDE_HANDLER_FUNC( U32, handleTestDialFlowBroadcastIntervalOverrideRequest, testSetDialInFlowDataPublishIntervalOverride, testResetDialInFlowDataPublishIntervalOverride ) +DATA_OVERRIDE_HANDLER_FUNC( U32, handleTestDialInFlowBroadcastIntervalOverrideRequest, testSetDialInFlowDataPublishIntervalOverride, testResetDialInFlowDataPublishIntervalOverride ) +/************************************************************************* + * @brief handleTestArterialPressureOverrideRequest + * The handleTestArterialPressureOverrideRequest function handles a request to \n + * override the arterial pressure. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestArterialPressureOverrideRequest, testSetArterialPressureOverride, testResetArterialPressureOverride ) +/************************************************************************* + * @brief handleTestVenousPressureOverrideRequest + * The handleTestVenousPressureOverrideRequest function handles a request to \n + * override the venous pressure. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestVenousPressureOverrideRequest, testSetVenousPressureOverride, testResetVenousPressureOverride ) + +/************************************************************************* + * @brief handleTestBloodPumpOcclusionOverrideRequest + * The handleTestBloodPumpOcclusionOverrideRequest function handles a request to \n + * override the blood pump occlusion sensor. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestBloodPumpOcclusionOverrideRequest, testSetBloodPumpOcclusionOverride, testResetBloodPumpOcclusionOverride ) + +/************************************************************************* + * @brief handleTestDialysateInletPumpOcclusionOverrideRequest + * The handleTestDialysateInletPumpOcclusionOverrideRequest function handles a request to \n + * override the dialysate inlet pump occlusion sensor. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialysateInletPumpOcclusionOverrideRequest, testSetDialInPumpOcclusionOverride, testResetDialInPumpOcclusionOverride ) + +/************************************************************************* + * @brief handleTestDialysateOutletPumpOcclusionOverrideRequest + * The handleTestDialysateOutletPumpOcclusionOverrideRequest function handles a request to \n + * override the dialysate outlet pump occlusion sensor. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC( F32, handleTestDialysateOutletPumpOcclusionOverrideRequest, testSetDialOutPumpOcclusionOverride, testResetDialOutPumpOcclusionOverride ) + +/************************************************************************* + * @brief handleTestPresOcclBroadcastIntervalOverrideRequest + * The handleTestPresOcclBroadcastIntervalOverrideRequest function handles a request to \n + * override the broadcast interval for pressure/occlusion data. + * @details + * Inputs : none + * Outputs : message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +DATA_OVERRIDE_HANDLER_FUNC( U32, handleTestPresOcclBroadcastIntervalOverrideRequest, testSetPresOcclDataPublishIntervalOverride, testResetPresOcclDataPublishIntervalOverride ) +