/************************************************************************** * * 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 * * @author (last) Quang Nguyen * @date (last) 24-Aug-2020 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 * ***************************************************************************/ #ifndef __SYSTEM_COMM_MESSAGES_H__ #define __SYSTEM_COMM_MESSAGES_H__ #include "CommBuffers.h" #include "DGCommon.h" #include "DrainPump.h" #include "Fans.h" #include "FluidLeak.h" #include "LoadCell.h" #include "ModeChemicalDisinfect.h" #include "ModeFlush.h" #include "ModeHeatDisinfect.h" #include "MsgQueues.h" #include "NVDataMgmt.h" #include "Reservoirs.h" #include "ROPump.h" #include "Switches.h" #include "TemperatureSensors.h" #include "Thermistors.h" #include "UVReactors.h" #include "Voltages.h" /** * @defgroup SystemCommMessages SystemCommMessages * @brief System communication messages service module. Handles and broadcasts system messages. * * @addtogroup SystemCommMessages * @{ */ // ********** public definitions ********** #define ACK_REQUIRED TRUE ///< Require an ACK. #define ACK_NOT_REQUIRED FALSE ///< Not require an ACK. // ********** public function prototypes ********** // ACK MSG BOOL sendACKMsg( MESSAGE_T *message ); // MSG_ID_DG_EVENT BOOL sendEvent( DG_EVENT_ID_T event, EVENT_DATA_T dat1, EVENT_DATA_T dat2 ); // Serialize message U32 serializeMessage( MESSAGE_T msg, COMM_BUFFER_T buffer, BOOL ackReq ); // MSG_ID_ALARM_TRIGGERED BOOL broadcastAlarmTriggered( U32 alarm, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ); // MSG_ID_ALARM_CLEARED BOOL broadcastAlarmCleared( U32 alarm ); // MSG_ID_ALARM_CONDITION_CLEARED BOOL broadcastAlarmConditionCleared( U32 alarm ); // MSG_ID_DG_COMMAND_RESPONSE void sendCommandResponseMsg( DG_CMD_RESPONSE_T *cmdResponsePtr ); // MSG_ID_POWER_OFF_WARNING void handlePowerOffWarning( MESSAGE_T *message ); // MSG_ID_ALARM_CLEARED void handleAlarmClear( MESSAGE_T *message ); // MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS void handleSetDialysateTemperatureCmd( MESSAGE_T *message ); // MSG_ID_REQUEST_FW_VERSIONS void handleFWVersionCmd( MESSAGE_T *message ); // MSG_ID_REQUEST_FW_VERSIONS void handleDGSerialNumberRequest( void ); // MSG_ID_UI_REQUEST_SERVICE_INFO void handleDGServiceScheduleRequest( MESSAGE_T *message ); // MSG_ID_DG_SWITCH_RESERVOIR_CMD void handleSwitchReservoirCmd( MESSAGE_T *message ); // MSG_ID_DG_CHANGE_VALVE_SETTING_CMD void handleChangeValveSettingCmd( MESSAGE_T *message ); // MSG_ID_DG_FILL_CMD void handleFillCmd( MESSAGE_T *message ); // MSG_ID_DG_DRAIN_CMD void handleDrainCmd( MESSAGE_T *message ); // MSG_ID_STARTING_STOPPING_TREATMENT void handleStartStopTreatmentMsg( MESSAGE_T *message ); // MSG_ID_DG_SAMPLE_WATER_CMD void handleSampleWaterCmd( MESSAGE_T *message ); // MSG_ID_START_STOP_PRIMARY_HEATER BOOL handleStartStopPrimaryHeater( MESSAGE_T * message ); // MSG_ID_DG_START_STOP_TRIMMER_HEATER_CMD void handleStartStopTrimmerHeaterCmd( MESSAGE_T *message ); // MSG_ID_DG_SEND_CALIBRATION_DATA BOOL sendDGCalibrationRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* calRcrdAddress ); // MSG_ID_DG_SEND_SYSTEM_RECORD BOOL sendDGSystemRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* sysRcrdAddress ); // MSG_ID_DG_SEND_SERVICE_RECORD BOOL sendDGServiceRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* srvcRcrdAddress ); // MSG_ID_DG_SEND_SCHEDULED_RUNS_RECORD BOOL sendDGScheduledRunsRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* scheduledRcrdAddress ); // MSG_ID_DG_POST_SINGLE_TEST_RESULT BOOL sendPOSTTestResult( DG_POST_STATE_T test, BOOL passed ); // MSG_ID_DG_POST_FINAL_TEST_RESULT BOOL sendPOSTFinalResult( BOOL passed ); // *********** public test support message functions ********** #ifdef DEBUG_ENABLED // DEBUG OUTPUT 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_DG_ALARM_STATE_OVERRIDE void handleTestAlarmStateOverrideRequest( MESSAGE_T *message ); // MSG_ID_WATCHDOG_TASK_CHECKIN_OVERRIDE: void handleTestWatchdogCheckInStateOverrideRequest( MESSAGE_T *message ); // MSG_ID_LOAD_CELL_OVERRIDE void handleTestLoadCellOverrideRequest( MESSAGE_T *message ); // MSG_ID_LOAD_CELLL_SEND_INTERVAL_OVERRIDE: void handleTestLoadCellDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_TEMPERATURE_SENSORS_OVERRIDE void handleTestTemperatureSensorsOverrideRequest ( MESSAGE_T *message ); // MSG_ID_TEMPERATURE_SENSORS_DATA_PUBLISH_OVERRIDE void handleTestTemperatureSensorsDataPublishOverrideRequest ( MESSAGE_T *message ); // MSG_ID_PUBLSIH_HEATERS_DATA_OVERRIDE void handleTestHeatersDataPublishOverrideRequest ( MESSAGE_T *message ); // MSG_ID_SET_RTC_TIMESTAMP void handleSetRTCTimestamp( MESSAGE_T *message ); // MSG_ID_PRESSURE_OVERRIDE: void handleTestPressureSensorOverrideRequest( MESSAGE_T *message ); // MSG_ID_PRESSURE_SEND_INTERVAL_OVERRIDE: void handleTestPressureDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_RO_MEASURED_FLOW_OVERRIDE: void handleTestROMeasuredFlowOverrideRequest( MESSAGE_T *message ); // MSG_ID_RO_PUMP_SEND_INTERVAL_OVERRIDE: void handleTestROPumpDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_DRAIN_PUMP_SET_RPM void handleTestSetDrainPumpRPM( MESSAGE_T *message ); // MSG_ID_DRAIN_PUMP_SEND_INTERVAL_OVERRIDE: void handleTestDrainPumpDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_VALVE_STATE_OVERRIDE void handleTestValveStateOverrideRequest( MESSAGE_T *message ); // MSG_ID_VALVES_STATES_PUBLISH_INTERVAL_OVERRIDE void handleTestValvesStatesPublishIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_DG_SAFETY_SHUTDOWN_OVERRIDE: void handleTestDGSafetyShutdownOverrideRequest( MESSAGE_T *message ); // MSG_ID_DRAIN_PUMP_SET_DELTA_PRESSURE_OVERRIDE void handleSetDrainPumpTargetOutletPressure( MESSAGE_T *message ); // MSG_ID_DG_SWITCHES_STATUS_OVERRIDE void handleSetSwitchesStatusOverrideRequest( MESSAGE_T *message ); // MSG_ID_DG_SWITCHES_PUBLISH_INTERVAL_OVERRIDE void handleTestSwitchesPublishIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_CONDUCTIVITY_OVERRIDE void handleTestSetConductivityOverrideRequest( MESSAGE_T *message ); // MSG_ID_CONDUCTIVITY_PUBLISH_INTERVAL_OVERRIDE void handleTestSetConductivityDataPublishIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_DG_ACCEL_OVERRIDE: void handleTestDGAccelOverrideRequest( MESSAGE_T *message ); // MSG_ID_DG_ACCEL_MAX_OVERRIDE: void handleTestDGAccelMaxOverrideRequest( MESSAGE_T *message ); // MSG_ID_DG_ACCEL_SEND_INTERVAL_OVERRIDE: void handleTestDGAccelBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_DG_MONITORED_VOLTAGES_SEND_INTERVAL_OVERRIDE void handleTestMonitoredVoltagesSendIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_DG_MONITORED_VOLTAGES_OVERRIDE void handleTestMonitoredVoltageOverrideRequest( MESSAGE_T *message ); // MSG_ID_DG_START_STOP_INLET_UV_REACTOR void handleStartStopUVReactors( MESSAGE_T *message ); // MSG_ID_UV_REACTORS_DATA_PUBLISH_INTERVAL_OVERRIDE void handleTestUVReactorsDataPublishIntervalOverride( MESSAGE_T *message ); // MSG_ID_DG_FLUID_LEAK_SEND_INTERVAL_OVERRIDE void handleSetFluidLeakBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_HD_FLUID_LEAK_STATE_DETECTOR_OVERRIDE void handleSetFluidLeakStateDetectorOverrideRequest( MESSAGE_T *message); // MSG_ID_DG_SOFTWARE_RESET_REQUEST void handleDGSoftwareResetRequest( MESSAGE_T *message); // MSG_ID_DG_UV_REACTORS_HEALTH_OVERRIDE void handleTestUVReactorsHealthOverride( MESSAGE_T *message ); // MSG_ID_DG_CONCENTRATE_PUMP_MEASURED_SPEED_OVERRIDE void handleConcentratePumpMeasuredSpeedOverride( MESSAGE_T *message ); // MSG_ID_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE void handleSetConcentratePumpTargetSpeed( MESSAGE_T *message ); // MSG_ID_CONCENTRATE_PUMP_STATE_CHANGE_REQUEST void handleConcentratePumpStateChangeRequest( MESSAGE_T *message ); // MSG_ID_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE void handleConcentratePumpPublishIntervalOverride( MESSAGE_T *message ); // MSG_ID_DG_THERMISTORS_DATA_PUBLISH_INTERVAL_OVERRIDE void handleTestThermistorsDataPublishIntervalOverride( MESSAGE_T *message ); // MSG_ID_DG_THERMISTORS_VALUE_OVERRIDE void handleTestThermistorsValueOverride( MESSAGE_T *message ); // MSG_ID_DG_FANS_DATA_PUBLISH_INTERVAL_OVERRIDE void handleTestFansDataPublishIntervalOverride( MESSAGE_T *message ); // MSG_ID_DG_RO_PUMP_DUTY_CYCLE_OVERRIDE void handleTestROPumpDutyCycleOverride( MESSAGE_T *message ); // MSG_ID_DG_RO_PUMP_TARGET_FLOW_OVERRIDE void handleTestROPumpTargetFlowOverride( MESSAGE_T *message ); // MSG_ID_DG_RO_PUMP_TARGET_PRESSURE_OVERRIDE void handleROPumpTargetPressureOverride( MESSAGE_T *message ); // MSG_ID_DG_START_STOP_FLUSH BOOL handleStartStopDGFlush( MESSAGE_T *message ); // MSG_ID_DG_START_STOP_HEAT_DISINFECT BOOL handleStartStopDGHeatDisinfect( MESSAGE_T *message ); // MSG_ID_UI_DG_SET_RTC_REQUEST void handleUIClockSyncRequest( MESSAGE_T *message ); // MSG_ID_HD_DG_POST_RESULT_REQUEST void handleDGPOSTResultRequest( MESSAGE_T *message ); // MSG_ID_DG_SET_CALIBRATION_DATA void handleSetDGCalibrationRecord( MESSAGE_T *message ); // MSG_ID_DG_GET_CALIBRATION_RECORD void handleGetDGCalibrationRecord( MESSAGE_T *message ); // MSG_ID_DG_SET_SYSTEM_DATA void handleSetDGSystemRecord( MESSAGE_T *message ); // MSG_ID_DG_GET_SYSTEM_DATA void handleGetDGSystemRecord( MESSAGE_T *message ); // MSG_ID_DG_GET_SERVICE_RECORD void handleGetDGServiceRecord( MESSAGE_T *message ); // MSG_ID_DG_SET_SERVICE_RECORD void handleSetDGServiceRecord( MESSAGE_T *message ); // MSG_ID_DG_GET_SCHEDULED_RUNS_RECORD void handleGetDGScheduledRunsRecord( MESSAGE_T *message ); // MSG_ID_DG_SET_SCHEDULED_RUNS_RECORD void handleSetDGScheduledRunsRecord( MESSAGE_T *message ); // MSG_ID_DG_START_STOP_CHEM_DSINFECT BOOL handleStartStopDGChemicalDisinfect( MESSAGE_T *message ); // MSG_ID_DG_OP_MODE_PUBLISH_INTERVAL_OVERRIDE void handleSetDGOpModeBroadcastIntervalOverrideRequest( MESSAGE_T *message ); // MSG_ID_FILTER_FLUSH_TIME_PERIOD_OVERRIDE void handleFilterFlushTimePeriodOverride( MESSAGE_T *message ); // MSG_ID_DG_FANS_RPM_OVERRIDE void handleFansRPMOverride( MESSAGE_T *message ); // MSG_ID_DG_STOP_RTC_CLOCK void handleStopDGRTCClock( MESSAGE_T * message ); // MSG_ID_DG_DRAIN_PUMP_MEASURED_RPM_OVERRIDE void handleSetDrainPumpMeasuredRPMOverrideRequest( MESSAGE_T *message ); /**@}*/ #endif