Index: dialin/common/hd_defs.py =================================================================== diff -u -rb774f196996af4f9fdeb07de414edf8cebd8cc7a -r57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf --- dialin/common/hd_defs.py (.../hd_defs.py) (revision b774f196996af4f9fdeb07de414edf8cebd8cc7a) +++ dialin/common/hd_defs.py (.../hd_defs.py) (revision 57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf) @@ -8,7 +8,7 @@ # @file hd_defs.py # # @author (last) Sean Nash -# @date (last) 14-Apr-2023 +# @date (last) 24-Apr-2023 # @author (original) Peter Lucia # @date (original) 04-Dec-2020 # Index: dialin/dg/dialysate_generator.py =================================================================== diff -u -r9dee83286969ac19c09f6879394494e551663cb5 -r57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf --- dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision 9dee83286969ac19c09f6879394494e551663cb5) +++ dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision 57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf) @@ -7,8 +7,8 @@ # # @file dialysate_generator.py # -# @author (last) Micahel Garthwaite -# @date (last) 07-Mar-2023 +# @author (last) Dara Navaei +# @date (last) 25-Apr-2023 # @author (original) Peter Lucia # @date (original) 02-Apr-2020 # @@ -52,6 +52,7 @@ from .events import DGEvents from .sw_configs import DGSoftwareConfigs from .usage_info_record import DGUsageNVRecord +from .dg_test_configs import DGTestConfig from ..common.msg_defs import MsgIds, MsgFieldPositions from enum import unique from .constants import NO_RESET @@ -200,6 +201,7 @@ self.events = DGEvents(self.can_interface, self.logger) self.sw_configs = DGSoftwareConfigs(self.can_interface, self.logger) self.usage_record = DGUsageNVRecord(self.can_interface, self.logger) + self.test_configs = DGTestConfig(self.can_interface, self.logger) def get_version(self): """ Index: dialin/dg/drain_pump.py =================================================================== diff -u -r9dee83286969ac19c09f6879394494e551663cb5 -r57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf --- dialin/dg/drain_pump.py (.../drain_pump.py) (revision 9dee83286969ac19c09f6879394494e551663cb5) +++ dialin/dg/drain_pump.py (.../drain_pump.py) (revision 57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf) @@ -7,8 +7,8 @@ # # @file drain_pump.py # -# @author (last) Micahel Garthwaite -# @date (last) 07-Mar-2023 +# @author (last) Dara Navaei +# @date (last) 18-Apr-2023 # @author (original) Sean # @date (original) 14-Apr-2020 # @@ -27,11 +27,17 @@ @unique class DrainPumpStates(DialinEnum): - DRAIN_PUMP_OFF_STATE = 0 - DRAIN_PUMP_CONTROL_TO_TARGET_STATE = 1 - DRAIN_PUMP_OPEN_LOOP_STATE = 2 + DRAIN_PUMP_OFF_STATE = 0 # Drain pump off state + DRAIN_PUMP_CONTROL_TO_TARGET_STATE = 1 # Drain pump control to target state + DRAIN_PUMP_OPEN_LOOP_STATE = 2 # Drain pump open loop state +@unique +class DrainPumpRPMFeedBackSensors(DialinEnum): + DRAIN_PUMP_HALL_SNSR_FB = 0 # Drain pump hall sensor RPM feedback sensor + DRAIN_PUMP_MAXON_SNSR_FB = 1 # Drain pump Maxon sensor RPM feedback sensor + + class DGDrainPump(AbstractSubSystem): """ Dialysate Generator (DG) Dialin API sub-class for drain pump related commands. @@ -56,7 +62,8 @@ self.target_drain_pump_rpm = 0 self.dac_value = 0 self.drain_pump_state = 0 - self.current_drain_pump_rpm = 0 + self.current_drain_pump_rpm = {DrainPumpRPMFeedBackSensors.DRAIN_PUMP_HALL_SNSR_FB.name: 0, + DrainPumpRPMFeedBackSensors.DRAIN_PUMP_MAXON_SNSR_FB.name: 0} self.target_drain_pump_outlet_flow_lpm = 0.0 self.drain_pump_current_A = 0.0 self.drain_pump_direction = 0 @@ -86,16 +93,18 @@ """ return self.drain_pump_state - def get_drain_pump_current_rpm(self): + def get_drain_pump_current_rpm(self, sensor: int): """ Gets the drain pump current RPM + @param sensor (int) the sensor to read its data @return: Drain pump current RPM """ - return self.current_drain_pump_rpm + return self.current_drain_pump_rpm[DrainPumpRPMFeedBackSensors(sensor).name] - @publish(["dg_drain_pump_timestamp","target_drain_pump_rpm", "dac_value", "drain_pump_state", "current_drain_pump_rpm", - "drain_pump_current_A", "drain_pump_direction", "target_drain_pump_outlet_flow_lpm"]) + @publish(["dg_drain_pump_timestamp", "target_drain_pump_rpm", "dac_value", "drain_pump_state", + "drain_pump_current_A", "drain_pump_direction", "target_drain_pump_outlet_flow_lpm", + "current_drain_pump_rpm"]) def _handler_drain_pump_sync(self, message, timestamp=0.0): """ Handles published drain pump data messages. Drain pump data are captured @@ -110,14 +119,18 @@ message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] self.drain_pump_state = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.current_drain_pump_rpm = struct.unpack('i', bytearray( + self.current_drain_pump_rpm[DrainPumpRPMFeedBackSensors.DRAIN_PUMP_HALL_SNSR_FB.name] = \ + struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] self.target_drain_pump_outlet_flow_lpm = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] self.drain_pump_current_A = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] self.drain_pump_direction = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] + self.current_drain_pump_rpm[DrainPumpRPMFeedBackSensors.DRAIN_PUMP_MAXON_SNSR_FB.name] = \ + struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] self.dg_drain_pump_timestamp = timestamp def cmd_drain_pump_set_outlet_target_flow_lpm(self, flow: float) -> int: @@ -186,27 +199,29 @@ self.logger.debug("Timeout!!!!") return False - def cmd_drain_pump_measured_rpm_override(self, rpm: int, reset: int = NO_RESET) -> int: + def cmd_drain_pump_measured_rpm_override(self, sensor: int, rpm: int, reset: int = NO_RESET) -> int: """ Constructs and sends the drain pump measured RPM override command. Constraints: Must be logged into DG. Given RPM must be within 300 <= RPM <= 3000 + @param sensor: (int) the sensor (hall sensor or maxon sensor) @param rpm: (int) rpm to override with @param reset: (int) 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ rst = integer_to_bytearray(reset) r = integer_to_bytearray(rpm) - payload = rst + r + index = integer_to_bytearray(sensor) + payload = rst + r + index message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, message_id=MsgIds.MSG_ID_DG_DRAIN_PUMP_MEASURED_RPM_OVERRIDE.value, payload=payload) - self.logger.debug("Override drain pump measured RPM") + self.logger.debug("Setting sensor {} to {} C".format(sensor, rpm)) # Send message received_message = self.can_interface.send(message) Index: dialin/hd/alarms.py =================================================================== diff -u -r4f649cc5d0bb8e26b4b3614d0c4ed2a1b3189a87 -r57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf --- dialin/hd/alarms.py (.../alarms.py) (revision 4f649cc5d0bb8e26b4b3614d0c4ed2a1b3189a87) +++ dialin/hd/alarms.py (.../alarms.py) (revision 57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf) @@ -8,7 +8,7 @@ # @file alarms.py # # @author (last) Micahel Garthwaite -# @date (last) 03-Mar-2023 +# @date (last) 04-Apr-2023 # @author (original) Peter Lucia # @date (original) 02-Apr-2020 # Index: dialin/hd/ui_proxy.py =================================================================== diff -u -r5f044702b19a3bd65d001464d9515546d37a0ff9 -r57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf --- dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 5f044702b19a3bd65d001464d9515546d37a0ff9) +++ dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf) @@ -7,8 +7,8 @@ # # @file ui_proxy.py # -# @author (last) Dara Navaei -# @date (last) 28-Mar-2023 +# @author (last) Micahel Garthwaite +# @date (last) 12-Apr-2023 # @author (original) Sean # @date (original) 15-Apr-2020 # Index: tests/dg_tests.py =================================================================== diff -u -r27872ba051da5230041de569fc817d3c00a5ddb0 -r57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf --- tests/dg_tests.py (.../dg_tests.py) (revision 27872ba051da5230041de569fc817d3c00a5ddb0) +++ tests/dg_tests.py (.../dg_tests.py) (revision 57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf) @@ -8,7 +8,7 @@ # @file dg_tests.py # # @author (last) Dara Navaei -# @date (last) 27-Mar-2023 +# @date (last) 26-Apr-2023 # @author (original) Dara Navaei # @date (original) 16-Jan-2022 # @@ -23,7 +23,7 @@ from dialin.common.dg_defs import DGChemicalDisinfectStates, DGChemDisinfectUIStates from dialin.common.dg_defs import DGChemDisinfectFlushStates, DGChemDisinfectFlushUIStates from dialin.dg.chemical_disinfect import ChemCancellationModes -from dialin.dg.drain_pump import DrainPumpStates +from dialin.dg.drain_pump import DrainPumpStates, DrainPumpRPMFeedBackSensors from dialin.dg.thermistors import ThermistorsNames from dialin.dg.temperatures import DGTemperaturesNames from dialin.dg.dialysate_generator import DGOperationModes @@ -48,6 +48,7 @@ from dialin.hd.voltages import HDMonitoredVoltages from dialin.hd.pretreatment import PreTreatmentRsrvrState from dialin.common.dg_defs import DGFlushStates, DGHeatDisinfectActiveCoolStates +from dialin.common.test_config_defs import DGTestConfigOptions, HDTestConfigOptions from time import sleep from datetime import datetime import sys @@ -151,9 +152,9 @@ def get_hd_occlusion_pressures_info(): - info = ('Art_pres, {:5.3f}, Venous_pres, {:5.3f}, Blood_pump_pres, {:5.3f}, DialIn_pres, {}, DialOut_pres, {}, ' + info = ('Art_pres, {:5.3f}, Venous_pres, {:5.3f}, Blood_pump_pres, {:5.3f}, DialOut_pres, {}, ' .format(hd.pressure_occlusion.arterial_pressure, hd.pressure_occlusion.venous_pressure, - hd.pressure_occlusion.blood_pump_occlusion, hd.pressure_occlusion.dialysate_inlet_pump_occlusion, + hd.pressure_occlusion.blood_pump_occlusion, hd.pressure_occlusion.dialysate_outlet_pump_occlusion)) return info @@ -208,12 +209,14 @@ def get_drain_states_info(): info = ('Drain, {}, DAC, {}, Tgt_RPM, {}, Curr_RPM, {}, PRd, {:5.3f}, PDr, {:5.3f}, Baro, {:5.3f}, ' - 'Drain_curr_A, {:5.3f}, Drain_dir, {}, Target_flow_lpm, {:5.3f}, ' + 'Drain_curr_A, {:5.3f}, Drain_dir, {}, Target_flow_lpm, {:5.3f}, Maxon_rpm, {}, ' .format(DrainPumpStates(dg.drain_pump.drain_pump_state).name, dg.drain_pump.dac_value, - dg.drain_pump.target_drain_pump_rpm, dg.drain_pump.current_drain_pump_rpm, + dg.drain_pump.target_drain_pump_rpm, + dg.drain_pump.current_drain_pump_rpm[DrainPumpRPMFeedBackSensors.DRAIN_PUMP_HALL_SNSR_FB.name], dg.pressures.drain_pump_inlet_pressure, dg.pressures.drain_pump_outlet_pressure, dg.pressures.barometric_pressure, dg.drain_pump.drain_pump_current_A, - dg.drain_pump.drain_pump_direction, dg.drain_pump.target_drain_pump_outlet_flow_lpm)) + dg.drain_pump.drain_pump_direction, dg.drain_pump.target_drain_pump_outlet_flow_lpm, + dg.drain_pump.current_drain_pump_rpm[DrainPumpRPMFeedBackSensors.DRAIN_PUMP_MAXON_SNSR_FB.name])) return info @@ -384,6 +387,13 @@ return info +def get_dg_voltages_info(): + info = ('DG_24, {:5.3f}, DG_24_non-iso, {:5.3f}, '. + format(dg.voltages.monitored_voltages[DGMonitoredVoltages.MONITORED_LINE_24V_MAIN.value], + dg.voltages.monitored_voltages[DGMonitoredVoltages.MONITORED_LINE_NON_ISOLATED_24_V_MAIN.value])) + return info + + def run_dg(): counter = 1 timer = 0.1 @@ -491,7 +501,7 @@ idle_bad_fill = '0,' #get_dg_idle_bad_fill_info() uv = get_uv_reactors_info() hd_fans = get_hd_fans_info() - hd_pressures = get_hd_occlusion_pressures_info() + hd_pressures = '0' #get_hd_occlusion_pressures_info() air_trap = get_hd_air_trap_info() var = str(datetime.now()) + ', ' + hd_run + dg_run + hd_rsrvrs + dg_rsrvrs + load_cell + drain + ro + \ @@ -512,8 +522,8 @@ f = open(address, "w") #dg.heaters.cmd_heaters_broadcast_interval_override(50) #sleep(1) - #dg.hd_proxy.cmd_start_stop_dg_heat_disinfect() - dg.hd_proxy.cmd_start_stop_dg_heat_disinfect_active_cool() + dg.hd_proxy.cmd_start_stop_dg_heat_disinfect() + #dg.hd_proxy.cmd_start_stop_dg_heat_disinfect_active_cool() try: while True: @@ -661,7 +671,20 @@ hd = HD(log_level='DEBUG') hd.cmd_log_in_to_hd() sleep(1) + """ + print(dg.test_configs.dg_test_configs) + print(hex(dg.test_configs.cmd_get_test_config_status(DGTestConfigOptions.TEST_CONFIG_ENABLE_MIXING_WITH_WATER.value))) + dg.test_configs.cmd_set_test_config(DGTestConfigOptions.TEST_CONFIG_ENABLE_MIXING_WITH_WATER.value, reset=0) + sleep(1) + """ + dg.test_configs.cmd_request_test_config_status_from_fw() + + while True: + print(hex(dg.test_configs.cmd_get_test_config_status( + DGTestConfigOptions.TEST_CONFIG_ENABLE_MIXING_WITH_WATER.value))) + sleep(1) + #run_heat_disinfect() #run_flush_mode() @@ -674,7 +697,7 @@ # cmd_set_disinfect_ui_screen() - #collect_treatment_data() + collect_treatment_data() #collect_hd_treatment() @@ -696,10 +719,10 @@ #hd.cmd_hd_software_reset_request() - hd.ui.cmd_set_ro_only_mode_status(1) + #hd.ui.cmd_set_ro_only_mode_status(1) - while True: - print(dg.dialysate_fill.ro_only_mode_status) - sleep(1) + #while True: + # print(get_dg_voltages_info()) + # sleep(1) Index: tools/Code_Report.csv =================================================================== diff -u -r934f3e2a8ffaa46dc69fb780d2972da934071c65 -r57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf --- tools/Code_Report.csv (.../Code_Report.csv) (revision 934f3e2a8ffaa46dc69fb780d2972da934071c65) +++ tools/Code_Report.csv (.../Code_Report.csv) (revision 57d4a1ed94cf53c849ab9ae5c729c0ba29234aaf) @@ -52,6 +52,10 @@ ./dg/cpld.py, Function, get_cpld_audio(self) -> int: ./dg/cpld.py, Function, get_cpld_fault_led(self) -> int: ./dg/cpld.py, Function, get_cpld_clean_led(self) -> int: +./dg/dg_test_configs.py, Function, cmd_reset_all_test_configs(self): +./dg/dg_test_configs.py, Function, cmd_get_test_config_status(self, config: int): +./dg/dg_test_configs.py, Function, cmd_set_test_config(self, config: int, reset: int = NO_RESET): +./dg/dg_test_configs.py, Function, cmd_request_test_config_status_from_fw(self): ./dg/dialysate_fill.py, Function, cmd_used_acid_volume_override(self, volume: float) -> int: ./dg/dialysate_fill.py, Function, cmd_used_bicarb_volume_override(self, volume: float) -> int: ./dg/dialysate_fill.py, Function, cmd_fill_mode_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: @@ -73,15 +77,15 @@ ./dg/dialysate_generator.py, Function, cmd_block_dg_message_transmissions(self, msg1: int = 0, msg2: int = 0, msg3: int = 0, msg4: int = 0, ./dg/drain_pump.py, Function, cmd_drain_pump_set_outlet_target_flow_lpm(self, flow: float) -> int: ./dg/drain_pump.py, Function, cmd_drain_pump_set_rpm(self, rpm: int) -> int: -./dg/drain_pump.py, Function, cmd_drain_pump_measured_rpm_override(self, rpm: int, reset: int = NO_RESET) -> int: ./dg/drain_pump.py, Function, cmd_drain_pump_measured_current_override(self, current: float, reset: int = NO_RESET) -> int: +./dg/drain_pump.py, Function, cmd_drain_pump_measured_rpm_override(self, sensor: int, rpm: int, reset: int = NO_RESET) -> int: ./dg/drain_pump.py, Function, cmd_drain_pump_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: ./dg/drain_pump.py, Function, cmd_drain_pump_measured_current_amps_override(self, current: float, reset: int = NO_RESET) -> int: ./dg/drain_pump.py, Function, cmd_drain_pump_measured_direction_override(self, direction: int, reset: int = NO_RESET) -> int: ./dg/drain_pump.py, Function, get_target_drain_pump_rpm(self): ./dg/drain_pump.py, Function, get_dac_value(self): ./dg/drain_pump.py, Function, get_drain_pump_state(self): -./dg/drain_pump.py, Function, get_drain_pump_current_rpm(self): +./dg/drain_pump.py, Function, get_drain_pump_current_rpm(self, sensor: int): ./dg/events.py, Function, clear_dg_event_list(self): ./dg/events.py, Function, get_dg_events(self, event_id, number_of_events=1): ./dg/events.py, Function, get_dg_nth_event(self, event_id, event_number=0): @@ -721,6 +725,8 @@ dg/cpld.py, Variable, cpld_fault_led dg/cpld.py, Variable, cpld_clean_led dg/cpld.py, Variable, dg_cpld_timestamp +dg/dg_test_configs.py, Variable, dg_test_configs +dg/dg_test_configs.py, Variable, dg_test_configs_response_timestamp dg/dialysate_fill.py, Variable, avg_acid dg/dialysate_fill.py, Variable, avg_bicarb dg/dialysate_fill.py, Variable, first_fill @@ -775,6 +781,7 @@ dg/dialysate_generator.py, Variable, events dg/dialysate_generator.py, Variable, sw_configs dg/dialysate_generator.py, Variable, usage_record +dg/dialysate_generator.py, Variable, test_configs dg/drain_pump.py, Variable, target_drain_pump_rpm dg/drain_pump.py, Variable, dac_value dg/drain_pump.py, Variable, drain_pump_state @@ -1320,7 +1327,7 @@ common/alarm_defs.py, Enum, AlarmList, ALARM_ID_HD_UI_COMM_TIMEOUT common/alarm_defs.py, Enum, AlarmList, ALARM_ID_HD_COMM_TOO_MANY_BAD_CRCS common/alarm_defs.py, Enum, AlarmList, ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_UI -common/alarm_defs.py, Enum, AlarmList, ALARM_ID_HD_UF_RATE_ERROR +common/alarm_defs.py, Enum, AlarmList, ALARM_ID_AVAILABLE_16 common/alarm_defs.py, Enum, AlarmList, ALARM_ID_HD_UF_VOLUME_ACCURACY_ERROR common/alarm_defs.py, Enum, AlarmList, ALARM_ID_HD_FPGA_COMM_TIMEOUT common/alarm_defs.py, Enum, AlarmList, ALARM_ID_DG_VALVE_CONTROL_FAILURE @@ -1656,6 +1663,7 @@ common/dg_defs.py, Enum, DGStandByModeStates, DG_STANDBY_MODE_STATE_FLUSH_FILTER common/dg_defs.py, Enum, DGStandByModeStates, DG_STANDBY_MODE_STATE_FLUSH_FILTER_IDLE common/dg_defs.py, Enum, DGStandByModeStates, DG_STANDBY_MODE_STATE_SAMPLE_WATER +common/dg_defs.py, Enum, DGStandByModeStates, DG_STANDBY_MODE_STATE_PAUSE common/dg_defs.py, Enum, DGStandByModeStates, NUM_OF_DG_STANDBY_MODE_STATES common/dg_defs.py, Enum, DGGenIdleModeStates, DGGenIdleModeStates common/dg_defs.py, Enum, DGGenIdleModeStates, DG_GEN_IDLE_MODE_STATE_START @@ -2554,6 +2562,7 @@ common/msg_ids.py, Enum, MsgIds, MSG_ID_HD_DIAL_IN_PUMP_HARD_STOP common/msg_ids.py, Enum, MsgIds, MSG_ID_HD_DIAL_OUT_PUMP_HARD_STOP common/msg_ids.py, Enum, MsgIds, MSG_ID_HD_BLOOD_PUMP_HARD_STOP +common/msg_ids.py, Enum, MsgIds, MSG_ID_HD_DIALIN_CHECK_IN common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_TESTER_LOGIN_REQUEST common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_ALARM_STATE_OVERRIDE common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_WATCHDOG_TASK_CHECKIN_OVERRIDE @@ -2654,9 +2663,19 @@ common/msg_ids.py, Enum, MsgIds, MSD_ID_DG_RTC_CTL_REG3_STATUS_OVERRIDE common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_NELSON_DISINFECT_SUPPORT common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_SET_DIALYSATE_MIXING_RATIOS +common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_SET_TEST_CONFIGURATION +common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_GET_TEST_CONFIGURATION +common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_SEND_TEST_CONFIGURATION +common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_RESET_ALL_TEST_CONFIGURATIONS +common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_DIALIN_CHECK_IN common/msg_ids.py, Enum, MsgIds, MSG_ID_HD_DEBUG_EVENT common/msg_ids.py, Enum, MsgIds, MSG_ID_DG_DEBUG_EVENT common/msg_ids.py, Enum, MsgIds, MSG_ID_ACK_MESSAGE_THAT_REQUIRES_ACK +common/test_config_defs.py, Enum, DGTestConfigOptions, DGTestConfigOptions +common/test_config_defs.py, Enum, DGTestConfigOptions, TEST_CONFIG_ENABLE_MIXING_WITH_WATER +common/test_config_defs.py, Enum, DGTestConfigOptions, NUM_OF_TEST_CONFIGS +common/test_config_defs.py, Enum, HDTestConfigOptions, HDTestConfigOptions +common/test_config_defs.py, Enum, HDTestConfigOptions, pass dg/chemical_disinfect.py, Enum, ChemCancellationModes, ChemCancellationModes dg/chemical_disinfect.py, Enum, ChemCancellationModes, CANCELLATION_MODE_NONE dg/chemical_disinfect.py, Enum, ChemCancellationModes, CANCELLATION_MODE_BASIC @@ -2698,6 +2717,9 @@ dg/drain_pump.py, Enum, DrainPumpStates, DRAIN_PUMP_OFF_STATE dg/drain_pump.py, Enum, DrainPumpStates, DRAIN_PUMP_CONTROL_TO_TARGET_STATE dg/drain_pump.py, Enum, DrainPumpStates, DRAIN_PUMP_OPEN_LOOP_STATE +dg/drain_pump.py, Enum, DrainPumpRPMFeedBackSensors, DrainPumpRPMFeedBackSensors +dg/drain_pump.py, Enum, DrainPumpRPMFeedBackSensors, DRAIN_PUMP_HALL_SNSR_FB +dg/drain_pump.py, Enum, DrainPumpRPMFeedBackSensors, DRAIN_PUMP_MAXON_SNSR_FB dg/fans.py, Enum, DGFansNames, DGFansNames dg/fans.py, Enum, DGFansNames, FAN_INLET_1 dg/fans.py, Enum, DGFansNames, FAN_INLET_2 @@ -2904,6 +2926,7 @@ dg/voltages.py, Enum, DGMonitoredVoltages, MONITORED_LINE_FPGA_AUX_VCC_V dg/voltages.py, Enum, DGMonitoredVoltages, MONITORED_LINE_FPGA_VPVN_V dg/voltages.py, Enum, DGMonitoredVoltages, MONITORED_LINE_PS_GATE_DRIVER_V +dg/voltages.py, Enum, DGMonitoredVoltages, MONITORED_LINE_NON_ISOLATED_24_V_MAIN dg/voltages.py, Enum, DGMonitoredVoltages, MONITORED_LINE_24V_POWER_PRIM_HTR_V dg/voltages.py, Enum, DGMonitoredVoltages, MONITORED_LINE_24V_GND_MAIN_PRIM_HTR_V dg/voltages.py, Enum, DGMonitoredVoltages, MONITORED_LINE_24V_GND_SMALL_PRIM_HTR_V