Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r6419179374edcd65da462de84e8aeaefb7e20320 -r31785f24396cebed8e10834f56fc2668783558e6 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 6419179374edcd65da462de84e8aeaefb7e20320) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 31785f24396cebed8e10834f56fc2668783558e6) @@ -1,41 +1,51 @@ /************************************************************************** * -* Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +* 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 +* @file SystemCommMessages.h * -* @author (last) Sean Nash -* @date (last) 14-Oct-2020 +* @author (last) Dara Navaei +* @date (last) 06-Nov-2021 * -* @author (original) Dara Navaei -* @date (original) 05-Nov-2019 +* @author (original) Dara Navaei +* @date (original) 05-Nov-2019 * ***************************************************************************/ #ifndef __SYSTEM_COMM_MESSAGES_H__ #define __SYSTEM_COMM_MESSAGES_H__ -#include "HDCommon.h" #include "AirTrap.h" #include "BloodFlow.h" +#include "BloodLeak.h" #include "BloodPrime.h" +#include "Bubble.h" +#include "CommBuffers.h" #include "DGInterface.h" -#include "DialInFlow.h" +#include "DialInFlow.h" #include "DialOutFlow.h" #include "Dialysis.h" +#include "Fans.h" #include "FluidLeak.h" +#include "HDCommon.h" #include "Prime.h" +#include "ModeInitPOST.h" +#include "ModePostTreat.h" #include "ModePreTreat.h" +#include "ModeStandby.h" #include "ModeTreatment.h" #include "MsgQueues.h" #include "NVDataMgmt.h" #include "PresOccl.h" #include "Rinseback.h" +#include "Switches.h" #include "SyringePump.h" +#include "Temperatures.h" #include "Valves.h" +#include "Voltages.h" /** * @defgroup SystemCommMessages SystemCommMessages @@ -46,12 +56,18 @@ * @{ */ -// ********** public definitions ********** +// ********** public definitions ********** + +#define ACK_REQUIRED TRUE ///< Macro for functions that want to know if an outgoing message requires acknowledgement from receiver. +#define ACK_NOT_REQUIRED FALSE ///< Macro for functions that want to know if an outgoing message requires acknowledgement from receiver. // ********** public function prototypes ********** // ACK MSG -BOOL sendACKMsg( MESSAGE_T *message ); +BOOL sendACKMsg( MESSAGE_T *message ); + +// Serialize message +U32 serializeMessage( MESSAGE_T msg, COMM_BUFFER_T buffer, BOOL ackReq ); // MSG_ID_DG_CHECK_IN void handleDGCheckIn( MESSAGE_T *message ); @@ -60,8 +76,29 @@ void handleUICheckIn( MESSAGE_T *message ); // MSG_ID_REQUEST_FW_VERSIONS -void handleFWVersionRequest( MESSAGE_T *message ); +void handleFWVersionRequest( MESSAGE_T *message ); + +// MSG_ID_HD_UI_VERSION_INFO_RESPONSE +void handleUIVersionResponse( MESSAGE_T *message ); + +// MSG_ID_HD_UI_VERSION_INFO_REQUEST +BOOL sendUIVersionRequest( void ); + +// MSG_ID_REQUEST_FW_VERSIONS +void handleHDSerialNumberRequest( void ); + +// MSG_ID_UI_REQUEST_SERVICE_INFO +void handleHDServiceScheduleRequest( MESSAGE_T *message ); + +// MSG_ID_REQUEST_HD_USAGE_INFO +void handleHDUsageInfoRequest( MESSAGE_T *message ); +// MSG_ID_DG_VERSION +void handleDGVersionResponse( MESSAGE_T *message ); + +// MSG_ID_HD_DG_POST_RESULT_REQUEST +BOOL sendDGPOSTResultRequest( void ); + // MSG_ID_OFF_BUTTON_PRESS BOOL sendOffButtonMsgToUI( U08 cmd ); void handleOffButtonConfirmMsgFromUI( MESSAGE_T *message ); @@ -78,6 +115,18 @@ // MSG_ID_ALARM_CONDITION_CLEARED void handleAlarmUserAction( MESSAGE_T *message ); +// MSG_ID_HD_POST_SINGLE_TEST_RESULT +BOOL sendPOSTTestResult( HD_POST_STATE_T test, BOOL passed ); + +// MSG_ID_HD_POST_FINAL_TEST_RESULT +BOOL sendPOSTFinalResult( BOOL passed ); + +// MSG_ID_DG_POST_FINAL_TEST_RESULT +void handleDGPOSTFinalResult( MESSAGE_T *message ); + +// MSG_ID_UI_POST_FINAL_TEST_RESULT +void handleUIPOSTFinalResult( MESSAGE_T *message ); + // MSG_ID_LOAD_CELL_READINGS void handleLoadCellReadingsFromDG( MESSAGE_T *message ); @@ -147,9 +196,12 @@ // MSG_ID_TREATMENT_PARAM_CHANGE_RANGES BOOL sendTreatmentParamsRangesToUI( U32 minTime, U32 maxTime, F32 minUFVol, F32 maxUFVol, U32 minDialRate, U32 maxDialRate ); +// MSG_ID_HD_TREATMENT_LOG_PERIODIC_DATA +BOOL sendTreatmentPeriodicDataToUI( TREATMENT_LOG_DATA_PERIODIC_T * periodDataPtr ); + // MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_REQUEST -void handleChangeBloodDialysateRateChangeRequest( MESSAGE_T *message ); - +void handleChangeBloodDialysateRateChangeRequest( MESSAGE_T *message ); + // MSG_ID_USER_SALINE_BOLUS_REQUEST void handleSalineBolusRequest( MESSAGE_T *message ); @@ -171,6 +223,12 @@ // MSG_ID_HD_HEPARIN_PAUSE_RESUME_RESPONSE BOOL sendHeparinCommandResponse( U32 accepted, U32 rejReason ); +// MSG_ID_UI_SET_ALARM_AUDIO_VOLUME_LEVEL_CMD +void handleAlarmAudioVolumeSetCmd( MESSAGE_T *message ); + +// MSG_ID_HD_ALARM_AUDIO_VOLUME_SET_RESPONSE +BOOL sendAlarmAudioVolumeSetResponse( U32 accepted, U32 rejReason ); + // MSG_ID_UI_SAMPLE_WATER_CMD void handleSampleWaterCmd( MESSAGE_T *message ); @@ -228,6 +286,54 @@ // MSG_ID_HD_RECIRC_CMD_RESPONSE BOOL sendTreatmentEndCmdResponse( BOOL accepted, U32 rejReason ); +// MSG_ID_UI_PATIENT_DISCONNECTION_CONFIRM +void handlePatientDisconnectionConfirmCmd( MESSAGE_T *message ); + +// MSG_ID_UI_DISPOSABLE_REMOVAL_CONFIRM +void handleDisposableRemovalConfirmCmd( MESSAGE_T *message ); + +// MSG_ID_HD_DISPOSABLE_REMOVAL_CONFIRM_RESPONSE +BOOL sendDisposableRemovalConfirmResponse( BOOL accepted, U32 reason ); + +// MSG_ID_UI_TREATMENT_LOG_DATA_REQUEST +void handleUITreatmentLogDataRequest( MESSAGE_T *message ); + +// MSG_ID_HD_TREATMENT_LOG_DATA_RESPONSE +BOOL sendTreatmentLogData( BOOL accepted, U32 reason, TREATMENT_LOG_DATA_PAYLOAD_T *logDataPtr ); + +// MSG_ID_UI_DISINFECT_REQUEST +void handleUIDisinfectRequest( MESSAGE_T *message ); + +// MSG_ID_HD_DISINFECT_RESPONSE +BOOL sendDisinfectConfirmResponse( BOOL accepted, U32 reason ); + +// MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_REQUEST +void handleSetHDStandbyDisinfectSubmodeRequest( MESSAGE_T *message ); + +// MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_RESPONSE +BOOL handleSetHDStandbyDisinfectSubmodeResponse( BOOL accepted, U32 reason ); + +// MSG_ID_DG_FLUSH_DATA +void handleFlushUIStateReadingFromDG( MESSAGE_T *message ); + +// MSG_ID_DG_HEAT_DISINFECT_DATA +void handleHeatDisinfectUIStateReadingFromDG( MESSAGE_T *message ); + +// MSG_ID_DG_CHEM_DISINFECT_DATA +void handleChemDisinfectUIStateReadingFromDG( MESSAGE_T *message ); + +// MSG_ID_UI_ACTIVE_ALARMS_LIST_REQUEST +void handleUIActiveAlarmsListRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE +BOOL sendActiveAlarmsList( BOOL accepted, U32 reason, U32 *alarmList, U32 size ); + +// MSG_ID_HD_TREATMENT_LOG_ALARM_EVENT +BOOL sendTreatmentLogAlarmEventData( ALARM_ID_T alarmID, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ); + +// MSG_ID_HD_TREATMENT_LOG_EVENT +BOOL sendTreatmentLogEventData( HD_EVENT_ID_T event, F32 oldValue, F32 newValue ); + // *********** public DG command functions ********** // MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS @@ -256,24 +362,36 @@ // MSG_ID_DG_COMMAND_RESPONSE void handleDGCmdResp( MESSAGE_T *messagePtr ); + +// MSG_ID_UI_HD_SET_RTC_REQUEST: +void handleUIClockSyncRequest( MESSAGE_T *message ); // MSG_ID_DG_OP_MODE void handleDGOpMode( MESSAGE_T *message ); +// MSG_ID_DG_START_STOP_FLUSH +BOOL sendDGStartFlushModeCommand( BOOL start ); + +// MSG_ID_DG_START_STOP_HEAT_DISINFECT +BOOL sendDGStartHeatDisinfectModeCommand( BOOL start ); + +// MSG_ID_DG_START_STOP_CHEM_DISINFECT +BOOL sendDGStartChemicalDisinfectModeCommand( BOOL start ); + // *********** public data broad cast functions ********** // 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 ); +BOOL broadcastAlarmStatus( COMP_ALARM_STATUS_T almStatus ); + +// MSG_ID_HD_ALARM_INFORMATION +BOOL broadcastAlarmInfo( ALARM_INFO_PAYLOAD_T data ); // MSG_ID_ALARM_TRIGGERED BOOL broadcastAlarmTriggered( U32 alarm, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ); -// MSG_ID_ALARM_CONDITION_CLEARED -BOOL broadcastAlarmConditionCleared( U32 alarm ); - // MSG_ID_ALARM_CLEARED BOOL broadcastAlarmCleared( U32 alarm ); @@ -297,6 +415,9 @@ // MSG_ID_PRESSURE_OCCLUSION_DATA BOOL broadcastPresOcclData( PRESSURE_OCCLUSION_DATA_T data ); + +// MSG_ID_HD_VOLTAGES_DATA +BOOL broadcastVoltagesData( VOLTAGES_DATA_PAYLOAD_T data ); // MSG_ID_RTC_EPOCH BOOL broadcastRTCEpoch( U32 epoch ); @@ -307,6 +428,9 @@ // MSG_ID_TREATMENT_STATE BOOL broadcastTreatmentState( TREATMENT_STATE_DATA_T payload ); +// MSG_ID_HD_POST_TREATMENT_STATE +BOOL broadcastPostTreatmentState( U32 postTreatmentSubMode ); + // MSG_ID_PRE_TREATMENT_STATE BOOL broadcastPreTreatmentState( PRE_TREATMENT_STATE_DATA_T *preTreatmentDataPtr ); @@ -346,9 +470,21 @@ // MSG_ID_HD_FLUID_LEAK_STATE BOOL broadcastFluidLeakState( FLUID_LEAK_STATES_T state ); +// MSG_ID_HD_BLOOD_LEAK_DATA +BOOL broadcastBloodLeakData( BLOOD_LEAK_STATUS_T status, U32 state ); + +// MSG_ID_HD_BUBBLES_DATA +BOOL broadcastBubblesData( U32 statusADA, U32 stateADA, U32 statusADV, U32 stateADV ); + // MSG_ID_HD_PRIMING_STATUS_DATA BOOL broadcastPrimeData( PRIMING_DATA_PAYLOAD_T *primeDataPtr ); +// MSG_ID_HD_DISINFECT_STANDBY_DATA +BOOL broadcastDisinfectsData( DISINFECTS_DATA_T *disinfectsData ); + +// MSG_ID_HD_SWITCHES_DATA +BOOL broadcastSwitchesData( SWITCHES_DATA_T *switchesData ); + // MSG_ID_HD_SEND_CALIBRATION_RECORD BOOL sendHDCalibrationRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* calRcrdAddress ); @@ -358,6 +494,15 @@ // MSG_ID_Hd_SEND_SERVICE_RECORD BOOL sendHDServiceRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* srvcRcrdAddress ); +// MSG_ID_HD_DISINFECT_STANDBY_DATA +BOOL broadcastDisinfectsData( DISINFECTS_DATA_T *disinfectsData ); + +// MSG_ID_HD_TEMPERATURES_DATA +BOOL broadcastTemperaturesData( TEMPERATURES_DATA_T *temperaturesData ); + +// MSG_ID_HD_FANS_DATA +BOOL broadcastFansData( FANS_DATA_T *fansData ); + #ifdef EMC_TEST_BUILD // MSG_ID_CAN_ERROR_COUNT BOOL broadcastCANErrorCount( U32 count ); @@ -523,9 +668,6 @@ 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 ); @@ -547,9 +689,48 @@ // MSG_ID_HD_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_HD_FLUID_LEAK_STATE_OVERRIDE +void handleSetFluidLeakStateOverrideRequest( MESSAGE_T *message ); +// MSG_ID_HD_BLOOD_LEAK_DATA_SEND_INTERVAL_OVERRIDE +void handleSetBloodLeakDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_BLOOD_LEAK_STATUS_OVERRIDE +void handleSetBloodLeakStatusOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_BLOOD_LEAK_ZERO_REQUEST +void handleBloodLeakZeroRequest( MESSAGE_T *message ); + +// MSG_ID_HD_BUBBLES_DATA_SEND_INTERVAL_OVERRIDE +void handleSetBubblesDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_BUBBLE_STATUS_OVERRIDE +void handleSetBubbleStatusOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_BUBBLE_SELF_TEST_REQUEST +void handleBubbleSelfTestRequest( MESSAGE_T *message ); + +// MSG_ID_HD_BLOOD_PRIME_VOLUME_OVERRIDE +void handleBloodPrimeVolumeOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_BLOOD_PRIME_SAFETY_VOLUME_OVERRIDE +void handleBloodPrimeSafetyVolumeOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_RINSEBACK_VOLUME_OVERRIDE +void handleRinsebackVolumeOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_RINSEBACK_SAFETY_VOLUME_OVERRIDE +void handleRinsebackSafetyVolumeOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_SWITCHES_STATUS_OVERRIDE +void handleSetSwitchesStatusOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_SWITCHES_PUBLISH_INTERVAL_OVERRIDE +void handleTestSwitchesPublishIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_BATTERY_REMAINING_PERCENT_OVERRIDE +void handleBatteryRemainingPercentOverrideRequest( MESSAGE_T *message ); + // MSG_ID_SUPER_CLEAR_ALARMS_CMD void handleTestSuperClearAlarmsRequest( MESSAGE_T *message ); @@ -601,6 +782,93 @@ // MSG_ID_HD_SYRINGE_PUMP_MEASURED_VOLUME_OVERRIDE: void handleTestSyringePumpMeasuredVolumeOverrideRequest( MESSAGE_T *message ); +// MSG_ID_HD_VALVES_CURRENT_OVERRIDE +void handleTestValvesCurrentOverrideRequest( MESSAGE_T *message ); + +// MSD_ID_HD_VALVES_POSITION_COUNT_OVERRIDE +void handleTestValvesPositionCountOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_MONITORED_VOLTAGES_SEND_INTERVAL_OVERRIDE +void handleTestMonitoredVoltagesSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_MONITORED_VOLTAGES_OVERRIDE +void handleTestMonitoredVoltageOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ALARM_INFO_SEND_INTERVAL_OVERRIDE +void handleTestAlarmInfoSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ALARM_AUDIO_VOLUME_LEVEL_OVERRIDE +void handleTestAlarmAudioVolumeOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ALARM_AUDIO_CURRENT_HG_OVERRIDE +void handleTestAlarmAudioCurrentHgOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ALARM_AUDIO_CURRENT_LG_OVERRIDE +void handleTestAlarmAudioCurrentLgOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ALARM_BACKUP_AUDIO_CURRENT_OVERRIDE +void handleTestAlarmBackupAudioCurrentOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_SYRINGE_PUMP_STATUS_OVERRIDE +void handleTestSyringePumpStatusOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_SYRINGE_PUMP_ENCODER_STATUS_OVERRIDE +void handleTestSyringePumpEncoderStatusOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_SYRINGE_PUMP_ADC_DAC_STATUS_OVERRIDE +void handleTestSyringePumpADCandDACStatusOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE +void handleTestSyringePumpADCReadCtrOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_ALARM_STATUS_PUBLISH_INTERVAL_OVERRIDE +void handleTestAlarmStatusSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_TREATMENT_TIME_DATA_PUBLISH_INTERVAL_OVERRIDE +void handleTestTreatmentTimeDataSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_TREATMENT_RANGES_PUBLISH_INTERVAL_OVERRIDE +void handleTestTreatmentRangesSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_TREATMENT_STOP_DATA_PUBLISH_INTERVAL_OVERRIDE +void handleTestTreatmentStopDataSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_BLOOD_PRIME_DATA_PUBLISH_INTERVAL_OVERRIDE +void handleTestBloodPrimeDataSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_RINSEBACK_DATA_PUBLISH_INTERVAL_OVERRIDE +void handleTestRinsebackDataSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_STANDBY_DATA_PUBLISH_INTERVAL_OVERRIDE +void handleTestStandbyModeDataSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_OP_MODE_DATA_PUBLISH_INTERVAL_OVERRIDE +void handleTestOpModeDataSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_PRE_TREATMENT_DATA_PUBLISH_INTERVAL_OVERRIDE +void handleTestPreTreatmentModeDataSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_TREATMENT_DATA_PUBLISH_INTERVAL_OVERRIDE +void handleTestTreatmentModeSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_POST_TREATMENT_DATA_PUBLISH_INTERVAL_OVERRIDE +void handleTestPostTreatmentModeSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_TEMPERATURES_VALUE_OVERRIDE +void handleTestTemperaturesValueOverrideRequest( MESSAGE_T * message ); + +// MSG_ID_HD_TEMPERATURES_PUBLISH_INTERVAL_OVERRRIDE +void handleTestTemperaturesBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_FANS_PUBLISH_INTERVAL_OVERRIDE +void handleTestFansBroadcastIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_HD_FANS_RPM_OVERRIDE +void handleFansRPMOverride( MESSAGE_T *message ); + +// MSG_ID_HD_STOP_RTC_CLOCK +void handleStopHDRTCClock( MESSAGE_T *message ); + /**@}*/ #endif