/************************************************************************** * * 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. * **************************************************************************/ #ifndef __SYSTEM_COMM_MESSAGES_H__ #define __SYSTEM_COMM_MESSAGES_H__ #include "HDCommon.h" #include "MsgQueues.h" #include "DialOutFlow.h" #include "DGInterface.h" // ********** public definitions ********** // ********** public function prototypes ********** // ACK MSG BOOL sendACKMsg( MESSAGE_T *message ); // MSG_ID_DG_CHECK_IN void handleDGCheckIn( MESSAGE_T *message ); // MSG_ID_UI_CHECK_IN void handleUICheckIn( MESSAGE_T *message ); // MSG_ID_REQUEST_FW_VERSIONS void handleFWVersionRequest( MESSAGE_T *message ); // MSG_ID_OFF_BUTTON_PRESS BOOL sendOffButtonMsgToUI( U08 cmd ); void handleOffButtonConfirmMsgFromUI( MESSAGE_T *message ); // MSG_ID_LOAD_CELL_READINGS void handleLoadCellReadingsFromDG( MESSAGE_T *message ); // MSG_ID_RO_PUMP_DATA: void handleROPumpData( MESSAGE_T *message ); // MSG_ID_DRAIN_PUMP_DATA: void handleDrainPumpData( MESSAGE_T *message ); // MSG_ID_DG_PRESSURES_DATA: void handleDGPressuresData( MESSAGE_T *message ); // MSG_ID_DG_RESERVOIR_DATA: void handleDGReservoirData( MESSAGE_T *message ); // MSG_ID_USER_UF_PAUSE_RESUME_REQUEST void handleUFPauseResumeRequest( MESSAGE_T *message ); // MSG_ID_USER_UF_SETTINGS_CHANGE_REQUEST void handleChangeUFSettingsRequest( MESSAGE_T *message ); // MSG_ID_USER_UF_SETTINGS_CHANGE_RESPONSE BOOL sendChangeUFSettingsResponse( BOOL accepted, U32 reason, F32 volume_mL, U32 time_min, F32 ufRate_mL_min, S32 timeDiff, F32 rateDiff, F32 oldUFRate_mL_min ); // MSG_ID_USER_CONFIRM_UF_SETTINGS_CHANGE void handleChangeUFSettingsConfirmation( MESSAGE_T *message ); // MSG_ID_USER_UF_SETTINGS_CHANGE_CONFIRMATION_RESPONSE BOOL sendChangeUFSettingsOptionResponse( BOOL accepted, U32 reason, F32 volume_mL, U32 time_min, F32 ufRate_mL_min ); // MSG_ID_USER_TREATMENT_TIME_CHANGE_REQUEST void handleChangeTreatmentDurationRequest( MESSAGE_T *message ); // MSG_ID_USER_TREATMENT_TIME_CHANGE_RESPONSE BOOL sendChangeTreatmentDurationResponse( BOOL accepted, U32 reason, U32 time_min, F32 volume_mL ); // MSG_ID_TREATMENT_PARAM_CHANGE_RANGES BOOL sendTreatmentParamsRangesToUI( U32 minTime, U32 maxTime, F32 minUFVol, F32 maxUFVol, U32 minDialRate, U32 maxDialRate ); // MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_REQUEST void handleChangeBloodDialysateRateChangeRequest( MESSAGE_T *message ); // MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_RESPONSE BOOL sendChangeBloodDialysateRateChangeResponse( BOOL accepted, U32 reason, U32 bloodRate, U32 dialRate ); // MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS BOOL sendDialysateTempTargetsToDG( F32 primary, F32 trimmer ); // MSG_ID_DG_SWITCH_RESERVOIR_CMD BOOL sendDGSwitchReservoirCommand( DG_RESERVOIR_ID_T activeReservoir ); // MSG_ID_DG_FILL_CMD BOOL sendDGFillCommand( U32 fillToVolumeMl ); // MSG_ID_DG_DRAIN_CMD BOOL sendDGDrainCommand( U32 drainToVolumeMl ); // MSG_ID_STARTING_STOPPING_TREATMENT_CMD BOOL sendDGStartStopCommand( BOOL start ); // MSG_ID_DG_SAMPLE_WATER_CMD BOOL sendDGSampleWaterCommand( void ); // MSG_ID_DG_START_STOP_TRIMMER_HEATER_CMD BOOL sendDGStartStopTrimmerHeaterCommand( BOOL start ); // MSG_ID_DG_OP_MODE: void handleDGOpMode( MESSAGE_T *message ); // MSG_ID_ALARM_STATUS BOOL broadcastAlarmStatus( COMP_ALARM_STATUS_T almStatus ); // MSG_ID_ALARM_TRIGGERED BOOL broadcastAlarmTriggered( U16 alarm, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ); // MSG_ID_ALARM_CLEARED 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 ); // MSG_ID_DIALYSATE_FLOW_DATA BOOL broadcastDialInFlowData( U32 flowStPt, F32 measFlow, F32 measRotorSpd, F32 measSpd, F32 measMCSpd, F32 measMCCurr, F32 pwmDC ); // 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 ); // MSG_ID_RTC_EPOCH BOOL broadcastRTCEpoch( U32 epoch ); // MSG_ID_TREATMENT_TIME BOOL broadcastTreatmentTime( U32 secsTotTreatment, U32 secsElapsed, U32 secsRemaining ); // MSG_ID_TREATMENT_STATE BOOL broadcastTreatmentState( U32 subMode, U32 uFState, BOOL salineBolusState ); // MSG_ID_POWER_OFF_WARNING BOOL broadcastPowerOffWarning( void ); // MSG_ID_HD_OP_MODE BOOL broadcastHDOperationMode( U32 mode, U32 subMode ); // *********** public test support message functions ********** #ifdef DEBUG_ENABLED // DEBUG OUTPUT BOOL sendDebugData( U08 *dbgData, U32 len ); #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 ); // MSG_ID_STOP_BUTTON_STATE_OVERRIDE void handleTestStopButtonStateOverrideRequest( MESSAGE_T *message ); // MSG_ID_ALARM_LAMP_PATTERN_OVERRIDE void handleTestAlarmLampPatternOverrideRequest( MESSAGE_T *message ); // MSG_ID_WATCHDOG_TASK_CHECKIN_OVERRIDE: void handleTestWatchdogCheckInStateOverrideRequest( MESSAGE_T *message ); // MSG_ID_ALARM_STATE_OVERRIDE void handleTestAlarmStateOverrideRequest( MESSAGE_T *message ); // MSG_ID_ALARM_TIME_OVERRIDE void handleTestAlarmTimeOverrideRequest( MESSAGE_T *message ); // MSG_ID_ALARM_STATUS_SEND_INTERVAL_OVERRIDE void handleTestAlarmStatusBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_BLOOD_FLOW_SET_PT_OVERRIDE void handleTestBloodFlowSetPointOverrideRequest( MESSAGE_T *message ); // MSG_ID_BLOOD_FLOW_MEAS_OVERRIDE void handleTestBloodFlowMeasuredOverrideRequest( MESSAGE_T *message ); // MSG_ID_BLOOD_PUMP_MC_MEAS_SPEED_OVERRIDE void handleTestBloodPumpMCMeasuredSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_BLOOD_PUMP_MC_MEAS_CURR_OVERRIDE void handleTestBloodPumpMCMeasuredCurrentOverrideRequest( MESSAGE_T *message ); // MSG_ID_BLOOD_FLOW_SEND_INTERVAL_OVERRIDE void handleTestBloodFlowBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_BLOOD_PUMP_MEAS_SPEED_OVERRIDE void handleTestBloodPumpMeasuredSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_BLOOD_PUMP_MEAS_ROTOR_SPEED_OVERRIDE void handleTestBloodPumpRotorMeasuredSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_IN_FLOW_SET_PT_OVERRIDE void handleTestDialInFlowSetPointOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_IN_FLOW_MEAS_OVERRIDE void handleTestDialInFlowMeasuredOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_IN_PUMP_MC_MEAS_SPEED_OVERRIDE void handleTestDialInPumpMCMeasuredSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_IN_PUMP_MC_MEAS_CURR_OVERRIDE void handleTestDialInPumpMCMeasuredCurrentOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_IN_FLOW_SEND_INTERVAL_OVERRIDE void handleTestDialInFlowBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_IN_PUMP_MEAS_SPEED_OVERRIDE void handleTestDialInPumpMeasuredSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_IN_PUMP_MEAS_ROTOR_SPEED_OVERRIDE void handleTestDialInPumpRotorMeasuredSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_PRESSURE_ARTERIAL_OVERRIDE void handleTestArterialPressureOverrideRequest( MESSAGE_T *message ); // MSG_ID_PRESSURE_VENOUS_OVERRIDE void handleTestVenousPressureOverrideRequest( MESSAGE_T *message ); // MSG_ID_OCCLUSION_BLOOD_PUMP_OVERRIDE void handleTestBloodPumpOcclusionOverrideRequest( MESSAGE_T *message ); // MSG_ID_OCCLUSION_DIAL_IN_PUMP_OVERRIDE void handleTestDialysateInletPumpOcclusionOverrideRequest( MESSAGE_T *message ); // MSG_ID_OCCLUSION_DIAL_OUT_PUMP_OVERRIDE void handleTestDialysateOutletPumpOcclusionOverrideRequest( MESSAGE_T *message ); // MSG_ID_PRES_OCCL_SEND_INTERVAL_OVERRIDE void handleTestPresOcclBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_SET_RTC_TIMESTAMP void handleSetRTCTimestamp( MESSAGE_T *message ); // MSG_ID_DIAL_OUT_FLOW_SEND_INTERVAL_OVERRIDE void handleTestDialOutFlowBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_OUT_UF_REF_VOLUME_OVERRIDE void handleTestDialOutUFReferenceVolumeOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_OUT_UF_MEAS_VOLUME_OVERRIDE void handleTestDialOutUFMeasuredVolumeOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_OUT_PUMP_MC_MEAS_SPEED_OVERRIDE void handleTestDialOutPumpMCMeasuredSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_OUT_PUMP_MC_MEAS_CURR_OVERRIDE void handleTestDialOutPumpMCMeasuredCurrentOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_OUT_PUMP_MEAS_SPEED_OVERRIDE void handleTestDialOutPumpMeasuredSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_OUT_PUMP_MEAS_ROTOR_SPEED_OVERRIDE void handleTestDialOutPumpMeasuredRotorSpeedOverrideRequest( MESSAGE_T *message ); // MSG_ID_DIAL_OUT_LOAD_CELL_WEIGHT_OVERRIDE void handleTestDialOutLoadCellWeightOverrideRequest( MESSAGE_T *message ); // MSG_ID_HD_SAFETY_SHUTDOWN_OVERRIDE: void handleTestHDSafetyShutdownOverrideRequest( MESSAGE_T *message ); #endif