Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r07b9515c080aa68fecfa331cbc593adea4c0b8dc -r8f8776e48894e31cba816ebef2edf96d14306ba8 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 07b9515c080aa68fecfa331cbc593adea4c0b8dc) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 8f8776e48894e31cba816ebef2edf96d14306ba8) @@ -22,6 +22,7 @@ #include "AlarmLamp.h" #include "BloodFlow.h" #include "Buttons.h" +#include "DialInFlow.h" #include "MsgQueues.h" #include "WatchdogMgmt.h" #include "SystemCommMessages.h" @@ -40,6 +41,7 @@ { U32 alarmState; // 0 = no alarms, 1 = low priority, 2 = medium priority, 3 = high priority U32 alarmTop; // ID of top active alarm + U32 escalatesIn; // seconds U32 silenceExpiresIn; // seconds U16 alarmsFlags; // bit flags: 1 = true, 0 = false for each bit } ALARM_COMP_STATUS_PAYLOAD_T; @@ -193,6 +195,7 @@ payload.alarmState = (U32)almStatus.alarmsState; payload.alarmTop = (U32)almStatus.alarmTop; payload.silenceExpiresIn = almStatus.alarmsSilenceExpiresIn; + payload.escalatesIn = almStatus.alarmsEscalatesIn; payload.alarmsFlags = ( almStatus.systemFault ? BIT_BY_POS(0) : 0 ); payload.alarmsFlags |= ( almStatus.stop ? BIT_BY_POS(1) : 0 ); payload.alarmsFlags |= ( almStatus.noClear ? BIT_BY_POS(2) : 0 ); @@ -339,6 +342,55 @@ } /************************************************************************* + * @brief broadcastDialInFlowData + * The broadcastDialInFlowData function constructs a dialysate flow data msg to \n + * be broadcast and queues the msg for transmit on the appropriate CAN channel. + * @details + * Inputs : none + * 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 measSpd : Latest measured dialysate pump speed + * @param measMCspd : Latest measured dialysate pump motor controller speed + * @param measSpd : Latest measured dialysate pump motor controller current + * @param pwmDC : Latest PWM duty cycle % + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL broadcastDialInFlowData( U32 flowStPt, F32 measFlow, F32 measRotorSpd, F32 measSpd, F32 measMCSpd, F32 measMCCurr, F32 pwmDC ) +{ + 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; + + // create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_DIALYSATE_FLOW_DATA; + msg.hdr.payloadLen = sizeof( PERISTALTIC_PUMP_STATUS_PAYLOAD_T ); + + payload.setPoint = flowStPt; + payload.measFlow = measFlow; + payload.measRotorSpd = measRotorSpd; + payload.measPumpSpd = measSpd; + payload.measMCSpd = measMCSpd; + payload.measMCCurr = measMCCurr; + payload.pwmDC = pwmDC; + + memcpy( payloadPtr, &payload, sizeof( PERISTALTIC_PUMP_STATUS_PAYLOAD_T ) ); + + // 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_CAN_HD_BROADCAST, data, msgSize ); + + return result; +} + +/************************************************************************* * @brief handleDGCheckIn * The handleDGCheckIn function handles a check-in from the DG. * @details @@ -673,4 +725,88 @@ *************************************************************************/ DATA_OVERRIDE_HANDLER_FUNC( U32, handleTestBloodFlowBroadcastIntervalOverrideRequest, testSetBloodFlowDataPublishIntervalOverride, testResetBloodFlowDataPublishIntervalOverride ) +/************************************************************************* + * @brief handleTestDialFlowSetPointOverrideRequest + * The handleTestDialFlowSetPointOverrideRequest 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 ) +/************************************************************************* + * @brief handleTestDialFlowMeasuredOverrideRequest + * The handleTestDialFlowMeasuredOverrideRequest 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 ) + +/************************************************************************* + * @brief handleTestDialPumpRotorMeasuredSpeedOverrideRequest + * The handleTestDialPumpRotorMeasuredSpeedOverrideRequest 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 ) + +/************************************************************************* + * @brief handleTestDialPumpMeasuredSpeedOverrideRequest + * The handleTestDialPumpMeasuredSpeedOverrideRequest 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 ) + +/************************************************************************* + * @brief handleTestDialPumpMCMeasuredSpeedOverrideRequest + * The handleTestDialPumpMCMeasuredSpeedOverrideRequest 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 ) + +/************************************************************************* + * @brief handleTestDialPumpMCMeasuredCurrentOverrideRequest + * The handleTestDialPumpMCMeasuredCurrentOverrideRequest 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 ) + +/************************************************************************* + * @brief handleTestDialFlowBroadcastIntervalOverrideRequest + * The handleTestDialFlowBroadcastIntervalOverrideRequest 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 ) + +