Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r0785222033c051524fbe19e49c08ba7f3f7a347c -r6eb873c4bc96fb22e85ac23aeee1c37e5366d731 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 0785222033c051524fbe19e49c08ba7f3f7a347c) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 6eb873c4bc96fb22e85ac23aeee1c37e5366d731) @@ -19,10 +19,8 @@ #include "Accel.h" #include "AlarmLamp.h" -#include "BloodFlow.h" #include "Buttons.h" #include "DGInterface.h" -#include "DialInFlow.h" #include "FPGA.h" #include "MessagePayloads.h" #include "ModeStandby.h" @@ -821,37 +819,22 @@ * @details * Inputs : none * Outputs : blood flow data msg constructed and queued. - * @param flowStPt Current set point for blood flow - * @param measFlow Latest measured blood flow - * @param measRotorSpd Latest measured blood pump rotoro speed - * @param measSpd Latest measured blood pump speed - * @param measMCspd Latest measured blood pump motor controller speed - * @param measSpd Latest measured blood pump motor controller current - * @param pwmDC Latest PWM duty cycle % + * @param bloodData blood pump and flow data record * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL broadcastBloodFlowData( U32 flowStPt, F32 measFlow, F32 measRotorSpd, F32 measSpd, F32 measMCSpd, F32 measMCCurr, F32 pwmDC ) +BOOL broadcastBloodFlowData( BLOOD_PUMP_STATUS_PAYLOAD_T bloodData ) { BOOL result; MESSAGE_T msg; U08 *payloadPtr = msg.payload; - PERISTALTIC_PUMP_STATUS_PAYLOAD_T payload; // create a message record blankMessage( &msg ); msg.hdr.msgID = MSG_ID_BLOOD_FLOW_DATA; - msg.hdr.payloadLen = sizeof( PERISTALTIC_PUMP_STATUS_PAYLOAD_T ); + msg.hdr.payloadLen = sizeof( BLOOD_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, &bloodData, sizeof( BLOOD_PUMP_STATUS_PAYLOAD_T ) ); - memcpy( payloadPtr, &payload, sizeof( PERISTALTIC_PUMP_STATUS_PAYLOAD_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 ); @@ -865,37 +848,22 @@ * @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 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 - * @param pwmDC Latest PWM duty cycle % + * @param dialInData Dialysate inlet pump and flow data record * @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 broadcastDialInFlowData( DIALIN_PUMP_STATUS_PAYLOAD_T dialInData ) { BOOL result; MESSAGE_T msg; 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 ); + msg.hdr.payloadLen = sizeof( DIALIN_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, &dialInData, sizeof( DIALIN_PUMP_STATUS_PAYLOAD_T ) ); - memcpy( payloadPtr, &payload, sizeof( PERISTALTIC_PUMP_STATUS_PAYLOAD_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 ); @@ -2378,6 +2346,38 @@ // respond to request sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } + +/*********************************************************************//** + * @brief + * The handleTestBloodFlowSignalStrengthOverrideRequest function handles a + * request to override the measured blood flow signal strength (%). + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestBloodFlowSignalStrengthOverrideRequest( MESSAGE_T *message ) +{ + TEST_OVERRIDE_PAYLOAD_T payload; + BOOL result = FALSE; + + // verify payload length + if ( sizeof(TEST_OVERRIDE_PAYLOAD_T) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_PAYLOAD_T) ); + if ( FALSE == payload.reset ) + { + result = testSetMeasuredBloodFlowSignalStrengthOverride( payload.state.f32 ); + } + else + { + result = testResetMeasuredBloodFlowSignalStrengthOverride(); + } + } + + // respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} /*********************************************************************//** * @brief @@ -2642,6 +2642,38 @@ // respond to request sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } + +/*********************************************************************//** + * @brief + * The handleTestDialInFlowSignalStrengthOverrideRequest function handles a + * request to override the measured dialysate inlet flow signal strength (%). + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestDialInFlowSignalStrengthOverrideRequest( MESSAGE_T *message ) +{ + TEST_OVERRIDE_PAYLOAD_T payload; + BOOL result = FALSE; + + // verify payload length + if ( sizeof(TEST_OVERRIDE_PAYLOAD_T) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_PAYLOAD_T) ); + if ( FALSE == payload.reset ) + { + result = testSetMeasuredDialInFlowSignalStrengthOverride( payload.state.f32 ); + } + else + { + result = testResetMeasuredDialInFlowSignalStrengthOverride(); + } + } + + // respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} /*********************************************************************//** * @brief