Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r7c8ec681f8c5dc44674893b5c3924a6203f2c8d0 -r8e7158d8231435496fcf1d5649e51babf859ccc7 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 7c8ec681f8c5dc44674893b5c3924a6203f2c8d0) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 8e7158d8231435496fcf1d5649e51babf859ccc7) @@ -1,27 +1,45 @@ -/************************************************************************** - * - * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. - * - * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN - * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. - * - * @file SystemCommMessages.h - * - * @date 10-Oct-2019 - * @author S. Nash - * - * @brief header file for System Communication message definitions and functions. - * - **************************************************************************/ +/************************************************************************** +* +* Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. +* +* THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +* WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +* +* @file SystemCommMessages.h +* +* @author (last) Sean Nash +* @date (last) 01-Dec-2020 +* +* @author (original) Dara Navaei +* @date (original) 05-Nov-2019 +* +***************************************************************************/ #ifndef __SYSTEM_COMM_MESSAGES_H__ #define __SYSTEM_COMM_MESSAGES_H__ -#include "HDCommon.h" -#include "MsgQueues.h" +#include "HDCommon.h" +#include "AirTrap.h" +#include "BloodFlow.h" +#include "DGInterface.h" +#include "DialInFlow.h" #include "DialOutFlow.h" -#include "DGInterface.h" +#include "Dialysis.h" +#include "ModeTreatment.h" +#include "MsgQueues.h" +#include "NVDataMgmt.h" +#include "PresOccl.h" +#include "Valves.h" +/** + * @defgroup SystemCommMessages SystemCommMessages + * @brief The system communication messages module provides helper functions + * for sending outgoing system message and handling incoming system messages. + * + * @addtogroup SystemCommMessages + * @{ + */ + // ********** public definitions ********** // ********** public function prototypes ********** @@ -41,6 +59,12 @@ // MSG_ID_OFF_BUTTON_PRESS BOOL sendOffButtonMsgToUI( U08 cmd ); void handleOffButtonConfirmMsgFromUI( MESSAGE_T *message ); + +// MSG_ID_ALARM_TRIGGERED +void handleAlarmTriggered( MESSAGE_T *message ); + +// MSG_ID_ALARM_CLEARED +void handleAlarmCleared( MESSAGE_T *message ); // MSG_ID_LOAD_CELL_READINGS void handleLoadCellReadingsFromDG( MESSAGE_T *message ); @@ -58,11 +82,35 @@ void handleDGPressuresData( MESSAGE_T *message ); // MSG_ID_DG_RESERVOIR_DATA: -void handleDGReservoirData( MESSAGE_T *message ); +void handleDGReservoirData( MESSAGE_T *message ); + +// MSG_ID_UI_START_TREATMENT +void handleUIStartTreatmentMsg( MESSAGE_T *message ); + +// MSG_ID_HD_START_TREATMENT_RESPONSE +BOOL sendTreatmentStartResponseMsg( BOOL accepted, U32 reason ); + +// MSG_ID_UI_TREATMENT_END_REQUEST +void handleUIUserEndTreatmentRequest( MESSAGE_T *message ); + +// MSG_ID_HD_TREATMENT_END_RESPONSE +BOOL sendTreatmentEndResponseMsg( BOOL accepted ); + +// MSG_ID_UI_NEW_TREATMENT_PARAMS +void handleTreatmentParametersFromUI( MESSAGE_T *message ); + +// MSG_ID_HD_NEW_TREATMENT_PARAMS_RESPONSE +BOOL sendTreatmentParametersResponseMsg( BOOL rejected, U08 *rejectReasons, U32 byteLength ); +// MSG_ID_UI_USER_CONFIRM_TREATMENT_PARAMS +void handleUIUserConfirmTreatmentParameters( MESSAGE_T *message ); + // MSG_ID_USER_UF_PAUSE_RESUME_REQUEST void handleUFPauseResumeRequest( MESSAGE_T *message ); - + +// MSG_ID_USER_UF_PAUSE_RESUME_RESPONSE +BOOL sendUFPauseResumeResponse( BOOL accepted, U32 reason, U32 ufState ); + // MSG_ID_USER_UF_SETTINGS_CHANGE_REQUEST void handleChangeUFSettingsRequest( MESSAGE_T *message ); @@ -87,9 +135,21 @@ // MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_REQUEST void handleChangeBloodDialysateRateChangeRequest( MESSAGE_T *message ); +// MSG_ID_USER_SALINE_BOLUS_REQUEST +void handleSalineBolusRequest( MESSAGE_T *message ); + +// MSG_ID_USER_SALINE_BOLUS_RESPONSE +BOOL sendSalineBolusResponse( BOOL accepted, U32 rejReason, U32 bolusVol ); + // MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_RESPONSE BOOL sendChangeBloodDialysateRateChangeResponse( BOOL accepted, U32 reason, U32 bloodRate, U32 dialRate ); +// MSG_ID_UI_PRESSURE_LIMITS_CHANGE_REQUEST +void handleChangePressureLimitsRequest( MESSAGE_T *message ); + +// MSG_ID_HD_PRESSURE_LIMITS_CHANGE_RESPONSE +BOOL sendPressureLimitsChangeResponse( PRESSURE_LIMIT_CHANGE_RESPONSE_T *data ); + // MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS BOOL sendDialysateTempTargetsToDG( F32 primary, F32 trimmer ); @@ -112,7 +172,10 @@ BOOL sendDGStartStopTrimmerHeaterCommand( BOOL start ); // MSG_ID_DG_OP_MODE: -void handleDGOpMode( MESSAGE_T *message ); +void handleDGOpMode( MESSAGE_T *message ); + +// MSG_ID_HD_ACCELEROMETER_DATA +BOOL broadcastAccelData( F32 x, F32 y, F32 z, F32 xm, F32 ym, F32 zm, F32 xt, F32 yt, F32 zt ); // MSG_ID_ALARM_STATUS BOOL broadcastAlarmStatus( COMP_ALARM_STATUS_T almStatus ); @@ -124,16 +187,16 @@ BOOL broadcastAlarmCleared( U16 alarm ); // MSG_ID_BLOOD_FLOW_DATA -BOOL broadcastBloodFlowData( U32 flowStPt, F32 measFlow, F32 measRotorSpd, F32 measSpd, F32 measMCSpd, F32 measMCCurr, F32 pwmDC ); +BOOL broadcastBloodFlowData( BLOOD_PUMP_STATUS_PAYLOAD_T *bloodData ); // MSG_ID_DIALYSATE_FLOW_DATA -BOOL broadcastDialInFlowData( U32 flowStPt, F32 measFlow, F32 measRotorSpd, F32 measSpd, F32 measMCSpd, F32 measMCCurr, F32 pwmDC ); +BOOL broadcastDialInFlowData( DIALIN_PUMP_STATUS_PAYLOAD_T *dialInData ); // MSG_ID_DIALYSATE_OUT_FLOW_DATA BOOL broadcastDialOutFlowData( DIAL_OUT_FLOW_DATA_T *dialOutFlowData ); // MSG_ID_PRESSURE_OCCLUSION_DATA -BOOL broadcastPresOcclData( F32 artPres, F32 venPres, F32 bpOccl, F32 diOccl, F32 doOccl ); +BOOL broadcastPresOcclData( PRESSURE_OCCLUSION_DATA_T data ); // MSG_ID_RTC_EPOCH BOOL broadcastRTCEpoch( U32 epoch ); @@ -142,14 +205,23 @@ BOOL broadcastTreatmentTime( U32 secsTotTreatment, U32 secsElapsed, U32 secsRemaining ); // MSG_ID_TREATMENT_STATE -BOOL broadcastTreatmentState( U32 subMode, U32 uFState, BOOL salineBolusState ); +BOOL broadcastTreatmentState( U32 subMode, U32 uFState, U32 salineBolusState ); // MSG_ID_POWER_OFF_WARNING BOOL broadcastPowerOffWarning( void ); // MSG_ID_HD_OP_MODE -BOOL broadcastHDOperationMode( U32 mode, U32 subMode ); - +BOOL broadcastHDOperationMode( U32 mode, U32 subMode ); + +// MSG_ID_HD_VALVES_DATA +BOOL broadcastHDValves( HD_VALVE_DATA_T *valveData ); + +// MSG_ID_SALINE_BOLUS_DATA +BOOL broadcastSalineBolusData( SALINE_BOLUS_DATA_PAYLOAD_T data ); + +// MSG_ID_HD_AIR_TRAP_DATA +BOOL broadcastAirTrapData( AIR_TRAP_LEVELS_T lowerLevel, AIR_TRAP_LEVELS_T upperLevel ); + #ifdef EMC_TEST_BUILD // MSG_ID_CAN_ERROR_COUNT BOOL broadcastCANErrorCount( U32 count ); @@ -158,17 +230,17 @@ // *********** public test support message functions ********** #ifdef DEBUG_ENABLED -// DEBUG OUTPUT -BOOL sendDebugData( U08 *dbgData, U32 len ); +// DEBUG OUTPUT to debug UART +BOOL sendDebugData( U08 *dbgData, U32 len ); + +// Debug message to UI for logging +void sendDebugDataToUI( U08 *str ); #endif // MSG_TESTER_LOG_IN void handleTesterLogInRequest( MESSAGE_T *message ); BOOL isTestingActivated( void ); -// MSG_ID_HD_MESSAGE -void handleTestHDMessageRequest( MESSAGE_T *message ); - // MSG_ID_OFF_BUTTON_STATE_OVERRIDE void handleTestOffButtonStateOverrideRequest( MESSAGE_T *message ); @@ -196,6 +268,9 @@ // MSG_ID_BLOOD_FLOW_MEAS_OVERRIDE void handleTestBloodFlowMeasuredOverrideRequest( MESSAGE_T *message ); +// MSG_ID_BLOOD_FLOW_SIG_STRENGTH_OVERRIDE +void handleTestBloodFlowSignalStrengthOverrideRequest( MESSAGE_T *message ); + // MSG_ID_BLOOD_PUMP_MC_MEAS_SPEED_OVERRIDE void handleTestBloodPumpMCMeasuredSpeedOverrideRequest( MESSAGE_T *message ); @@ -212,11 +287,17 @@ void handleTestBloodPumpRotorMeasuredSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_IN_FLOW_SET_PT_OVERRIDE -void handleTestDialInFlowSetPointOverrideRequest( MESSAGE_T *message ); +void handleTestDialInFlowSetPointOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_DIAL_OUT_FLOW_SET_PT_OVERRIDE +void handleTestDialOutFlowSetPointOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_IN_FLOW_MEAS_OVERRIDE void handleTestDialInFlowMeasuredOverrideRequest( MESSAGE_T *message ); +// MSG_ID_DIAL_IN_FLOW_SIG_STRENGTH_OVERRIDE +void handleTestDialInFlowSignalStrengthOverrideRequest( MESSAGE_T *message ); + // MSG_ID_DIAL_IN_PUMP_MC_MEAS_SPEED_OVERRIDE void handleTestDialInPumpMCMeasuredSpeedOverrideRequest( MESSAGE_T *message ); @@ -279,6 +360,75 @@ // MSG_ID_HD_SAFETY_SHUTDOWN_OVERRIDE: void handleTestHDSafetyShutdownOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ACCEL_OVERRIDE: +void handleTestHDAccelOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ACCEL_MAX_OVERRIDE: +void handleTestHDAccelMaxOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ACCEL_SEND_INTERVAL_OVERRIDE: +void handleTestHDAccelBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ACCEL_SET_CALIBRATION: +void handleSetAccelCalibration( MESSAGE_T *message ); + +// MSG_ID_HD_BLOOD_FLOW_SET_CALIBRATION: +void handleSetBloodFlowCalibration( MESSAGE_T *message ); + +// MSG_ID_HD_DIALYSATE_FLOW_SET_CALIBRATION: +void handleSetDialysateFlowCalibration( MESSAGE_T *message ); + +// MSG_ID_HD_SET_PARAMETER_TREATMENT_PARAMETER +void handleTestSetTreatmentParameter( MESSAGE_T *message ); + +// MSG_ID_VALVES_STATES_PUBLISH_INTERVAL_OVERRIDE +void handleTestHDValvesBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_HOME_VALVE +void handleHomeHDValve( MESSAGE_T *message ); + +// MSG_ID_HD_VALVES_SET_AIR_TRAP_VALVE +void handleSetAirTrapValve( MESSAGE_T *message ); + +// MSG_ID_HD_VALVES_SET_POSITION +void handleSetHDValvePositionOverrideRequest( MESSAGE_T *message ); + +#ifdef DEBUG_ENABLED +// MSG_ID_HD_VALVES_SET_PWM_OVERRIDE +void handleSetHDValvePWMOverrideRequest( MESSAGE_T *message ); +#endif + +// MSG_ID_HD_SET_PARAMETER_TREATMENT_PARAMETER +void handleTestSetTreatmentParameter( MESSAGE_T *message ); +// MSG_ID_HD_SOFTWARE_RESET_REQUEST +void handleHDSoftwareResetRequest( MESSAGE_T *message ); + +// MSG_ID_BLOOD_PUMP_HOME_CMD +void handleTestBloodPumpHomeRequest( MESSAGE_T *message ); + +// MSG_ID_DIAL_IN_PUMP_HOME_CMD +void handleTestDialInPumpHomeRequest( MESSAGE_T *message ); + +// MSG_ID_DIAL_OUT_PUMP_HOME_CMD +void handleTestDialOutPumpHomeRequest( MESSAGE_T *message ); + +// MSG_ID_HD_AIR_TRAP_SEND_INTERVAL_OVERRIDE +void handleSetAirTrapBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_AIR_TRAP_LEVEL_SENSOR_OVERRIDE +void handleSetAirTrapLevelSensorOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_SUPER_CLEAR_ALARMS_CMD +void handleTestSuperClearAlarmsRequest( MESSAGE_T *message ); + +// MSG_ID_HD_REQUEST_CALIBRATION_DATA +void handleTestHDCalibrationDataRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ERASE_CALIBRATION_DATA +void handleTestEraseHDCalibrationDataRequest( MESSAGE_T *message ); + +/**@}*/ + #endif -