Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -reb877ae36c28eb83553ee11ccccf42e2c4a5b4d2 -rd792dd4d2cab1879e3360f85fd16bcbc9e7641a2 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision eb877ae36c28eb83553ee11ccccf42e2c4a5b4d2) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision d792dd4d2cab1879e3360f85fd16bcbc9e7641a2) @@ -1,69 +1,421 @@ -/************************************************************************** - * - * Copyright (c) 2019-2019 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 "Common.h" -#include "MsgQueues.h" - -// ********** public definitions ********** - -typedef enum Msg_IDs -{ - MSG_ID_UNUSED = 0, - MSG_ID_OFF_BUTTON_PRESS, - MSG_ID_FIRST_TESTER_MESSAGE = 8000, - MSG_ID_TESTER_LOGIN_REQUEST = MSG_ID_FIRST_TESTER_MESSAGE, - MSG_ID_HD_MESSAGE, - MSG_ID_OFF_BUTTON_STATE_OVERRIDE, - MSG_ID_STOP_BUTTON_STATE_OVERRIDE, - MSG_ID_ALARM_LAMP_PATTERN_OVERRIDE, - MSG_ID_WATCHDOG_TASK_CHECKIN_OVERRIDE, - NUM_OF_MSG_IDS -} MSG_ID_T; - -// ********** public function prototypes ********** - -// MSG_ID_OFF_BUTTON_PRESS -BOOL sendOffButtonMsgToUI( void ); -void handleOffButtonConfirmMsgFromUI( MESSAGE_T *message ); - -// *********** public test support message functions ********** - -// DEBUG OUTPUT -BOOL sendDebugData( U08 *dbgData, U32 len ); - -// 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 ); - -#endif +/************************************************************************** +* +* Copyright (c) 2019-2022 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) Michael Garthwaite +* @date (last) 07-Sep-2022 +* +* @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 "MessageSupport.h" +#include "ModeChemicalDisinfect.h" +#include "ModeFlush.h" +#include "ModeHeatDisinfect.h" +#include "MsgQueues.h" +#include "NVDataMgmt.h" +#include "Reservoirs.h" +#include "ROPump.h" +#include "DialysateFlow.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 ********** + +U32 serializeMessage( MESSAGE_T msg, COMM_BUFFER_T buffer, BOOL ackReq ); + +// 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_RTC_EPOCH +void handleRTCSyncFromHD( 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_HD_REQUEST_DG_CONCENTRATE_RATIOS +void handleDGSendConcentrateMixingRatios( 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_SET_RTC_TIMESTAMP +void handleSetRTCTimestamp( 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 ); + +// MSG_ID_DG_SEND_SW_CONFIG_RECORD +BOOL sendDGSWConfigRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* swRcrdAddress ); + +// MSG_ID_DG_SEND_USAGE_INFO_RECORD +BOOL sendDGUsageInfoRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* usageInfoAddress ); + +// MSG_ID_DG_SCHEDULED_RUNS_INFO +void handleDGScheduledRunsRequest( MESSAGE_T *message ); + +// MSG_ID_HD_OP_MODE +BOOL handleSetHDOperationMode( MESSAGE_T *message ); + +// MSG_ID_UI_REQUEST_SERVICE_MODE +void handleServiceModeRequest( MESSAGE_T *message ); + +// MSG_ID_DG_RESPONSE_SERVICE_MODE_REQUEST +BOOL sendServiceModeResponse( BOOL accepted, U32 rejCode ); + +// MSG_ID_REQUEST_CPLD_STATUS +void handleCpldStatusRequest( MESSAGE_T *message ); + +// *********** public test support message functions ********** + +// 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_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_DIALYSATE_MEASURED_FLOW_OVERRIDE: +void handleTestDialysateMeasuredFlowOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_RO_PUMP_SEND_INTERVAL_OVERRIDE: +void handleTestROPumpDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_DIALYSATE_FLOW_SEND_INTERVAL_OVERRIDE: +void handleTestDialysateFlowDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_DRAIN_PUMP_SET_RPM_OVERRIDE +void handleTestDrainPumpRPMOverrideRequest( 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_FLOW_RATE_OVERRIDE +void handleTestMeasuredROFlowRateOverride( MESSAGE_T *message ); + +// MSG_ID_DG_SET_RO_PUMP_TARGET_FLOW +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_BLOCK_MESSAGE_TRANSMISSION +void handleTestBlockMessagesRequest( MESSAGE_T *message ); + +// MSG_ID_DG_ALARM_INFO_SEND_INTERVAL_OVERRIDE +void handleTestAlarmInfoSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_DG_SUPER_CLEAR_ALARMS_CMD +void handleTestSuperClearAlarmsRequest( 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 ); + +// MSG_ID_DG_SET_FANS_RPM_ALARM_START_TIME_OFFSET +void handleTestFansRPMAlarmStartTimeOffsetRequest( MESSAGE_T *message ); + +// MSG_ID_DG_USED_ACID_VOLUME_ML_OVERRIDE +void handleTestUsedAcidVolumeMLOverrideRequest(MESSAGE_T *message); + +// MSG_ID_DG_USED_BICARB_VOLUME_ML_OVERRIDE +void handleTestUsedBicarbVolumeMLOverrideRequest(MESSAGE_T *message); + +// MSG_ID_DG_FANS_DUTY_CYCLE_OVERRIDE +void handleSetFansDutyCycleOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_DG_GET_SW_CONFIG_RECORD +void handleGetDGSoftwareConfigRecord( MESSAGE_T *message ); + +// MSG_ID_DG_SET_SW_CONFIG_RECORD +void handleSetDGSoftwareConfigRecord( MESSAGE_T *message ); + +// MSG_ID_DG_HD_COMMUNICATION_STATUS +void handleTestHDCommunicationStatusOverrideRequest(MESSAGE_T *message); + +// MSG_ID_DG_GET_USAGE_INFO_RECORD +void handleGetDGUsageInfoRecord( MESSAGE_T *message ); + +// MSG_ID_DG_SET_USAGE_INFO_RECORD +void handleSetDGUsageInfoRecord( MESSAGE_T *message ); + +// MSG_ID_HD_REQUEST_DG_ALARMS +void handleResendAllAlarmsCommand( MESSAGE_T *message ); + +// MSG_ID_DG_SET_OP_MODE_REQUEST +void handleTestSetOpModeRequest( MESSAGE_T *message ); + +// MSG_ID_DG_RESERVOIR_TARE_REQUEST +void handleTestTareReservoirRequest( MESSAGE_T *message ); + +// MSG_ID_HD_OP_MODE +BOOL handleSetHDOperationMode( MESSAGE_T *message ); + +// MSG_ID_CPLD_PUBLISH_INTERVAL_OVERRIDE: +void handleCpldDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +/**@}*/ + +#endif