Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r1240b612f790f931825aba86ec37f37eccce9336 -r31785f24396cebed8e10834f56fc2668783558e6 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 1240b612f790f931825aba86ec37f37eccce9336) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 31785f24396cebed8e10834f56fc2668783558e6) @@ -1,17 +1,17 @@ /************************************************************************** * -* 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 * ***************************************************************************/ @@ -23,21 +23,27 @@ #include "BloodLeak.h" #include "BloodPrime.h" #include "Bubble.h" +#include "CommBuffers.h" #include "DGInterface.h" #include "DialInFlow.h" #include "DialOutFlow.h" -#include "Dialysis.h" +#include "Dialysis.h" +#include "Fans.h" #include "FluidLeak.h" #include "HDCommon.h" -#include "Prime.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" @@ -50,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 ); @@ -64,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 ); @@ -163,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 ); @@ -265,6 +301,39 @@ // 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 @@ -300,6 +369,15 @@ // 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 @@ -314,9 +392,6 @@ // 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 ); @@ -404,6 +479,12 @@ // 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 ); @@ -413,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 ); @@ -620,6 +710,27 @@ // 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 ); @@ -671,6 +782,12 @@ // 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 ); @@ -704,6 +821,54 @@ // 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