Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rfef7e8ec54aea7e7dc447b6240796013cc086604 -r07a5add2dff254f7be3699e4efac2b99d3554847 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision fef7e8ec54aea7e7dc447b6240796013cc086604) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 07a5add2dff254f7be3699e4efac2b99d3554847) @@ -24,6 +24,7 @@ #include "Buttons.h" #include "DialInFlow.h" #include "MsgQueues.h" +#include "PresOccl.h" #include "WatchdogMgmt.h" #include "SystemCommMessages.h" #include "Utilities.h" @@ -60,6 +61,15 @@ 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 ********** @@ -151,6 +161,7 @@ return result; } +#ifdef ACK_IMPLEMENTED /************************************************************************* * @brief sendACKMsg * The sendACKMsg function constructs and queues for transmit an ACK message \n @@ -179,6 +190,7 @@ return result; } +#endif // *********************************************************************** // ********************* MSG_ID_OFF_BUTTON_PRESS ************************* @@ -391,7 +403,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 @@ -427,6 +439,46 @@ } /************************************************************************* + * @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( PERISTALTIC_PUMP_STATUS_PAYLOAD_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; +} + +/************************************************************************* * @brief handleDGCheckIn * The handleDGCheckIn function handles a check-in from the DG. * @details @@ -745,87 +797,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 ) +