Index: dialin/hd/sw_config.py =================================================================== diff -u -r6286da1bcfac5f1d43659196fb1baf27af50d746 -r8841ca865ff616ea3de171bc4037c349aaac7934 --- dialin/hd/sw_config.py (.../sw_config.py) (revision 6286da1bcfac5f1d43659196fb1baf27af50d746) +++ dialin/hd/sw_config.py (.../sw_config.py) (revision 8841ca865ff616ea3de171bc4037c349aaac7934) @@ -36,6 +36,14 @@ SW_CONFIG_DISABLE_BATTERY_COMMUNICATION = 16 SW_CONFIG_DISABLE_AIR_BUBBLE_CHECK = 17 SW_CONFIG_DISABLE_OCCLUSION_SELF_TEST = 18 + SW_CONFIG_DISABLE_BLOOD_LEAK_SELF_TEST = 19 + SW_CONFIG_DISABLE_BLOOD_LEAK_ALARM = 20 + SW_CONFIG_DISABLE_UI_INTERACTION = 21 + SW_CONFIG_DISABLE_SAMPLE_WATER = 22 + SW_CONFIG_DISABLE_CONSUMABLES_TESTS = 23 + SW_CONFIG_DISABLE_DRY_SELF_TESTS = 24 + SW_CONFIG_DISABLE_PRIMING = 25 + SW_CONFIG_DISABLE_WE_SELF_TEST = 26 class HDSoftwareConfigs(AbstractSubSystem): @@ -86,7 +94,6 @@ # Get the default software configuration dictionary self.hd_sw_config_record = self._prepare_hd_sw_configs_record() # Calculate the CRC for reset software configuration record - #self._utilities.reset_fw_system_service_record(self.hd_sw_config_record) status = self._cmd_set_hd_sw_config_record() return status Index: tests/dg_tests.py =================================================================== diff -u -r4264a946469e93087db5ec00492ec374cdfd6ac5 -r8841ca865ff616ea3de171bc4037c349aaac7934 --- tests/dg_tests.py (.../dg_tests.py) (revision 4264a946469e93087db5ec00492ec374cdfd6ac5) +++ tests/dg_tests.py (.../dg_tests.py) (revision 8841ca865ff616ea3de171bc4037c349aaac7934) @@ -33,6 +33,7 @@ from dialin.hd.reservoirs import HDReservoirStates from dialin.dg.reservoirs import DGReservoirsNames from dialin.common.alarm_defs import AlarmList +from dialin.dg.fans import DGFansNames from time import sleep from datetime import datetime import sys @@ -188,15 +189,16 @@ info = ('Target_fans_DC, {:5.3f}, Inlet1_RPM, {:5.3f}, Inlet2_RPM, {:5.3f}, Inlet3_RPM, {:5.3f}, ' 'Outlet1_RPM, {:5.3f}, Outlet2_RPM, {:5.3f}, Outlet3_RPM, {:5.3f}, Board_temp, {:5.3f}, ' 'Power_supply_1, {:5.3f}, Power_supply_2, {:5.3f}, FPGA_temp, {:5.3f}, Load_cell_A1_B1, {:5.3f}, ' - 'Load_cell_A2_B2, {:5.3f}, ' + 'Load_cell_A2_B2, {:5.3f}, timeOffset, {}, ' .format(dg.fans.dg_fans_duty_cycle, dg.fans.inlet_1_rpm, dg.fans.inlet_2_rpm, dg.fans.inlet_3_rpm, dg.fans.outlet_1_rpm, dg.fans.outlet_2_rpm, dg.fans.outlet_3_rpm, dg.thermistors.thermistors[ThermistorsNames.THERMISTOR_ONBOARD_NTC.name], dg.thermistors.thermistors[ThermistorsNames.THERMISTOR_POWER_SUPPLY_1.name], dg.thermistors.thermistors[ThermistorsNames.THERMISTOR_POWER_SUPPLY_2.name], dg.temperatures.temperatures[DGTemperaturesNames.FPGA_BOARD_SENSOR.name], dg.temperatures.temperatures[DGTemperaturesNames.LOAD_CELL_A1_B1.name], - dg.temperatures.temperatures[DGTemperaturesNames.LOAD_CELL_A2_B2.name])) + dg.temperatures.temperatures[DGTemperaturesNames.LOAD_CELL_A2_B2.name], + dg.fans.rpm_alarm_time_offset)) return info @@ -231,6 +233,17 @@ return info +def get_blood_leak_info(): + info = ('Blood_leak_status, {}, Blood_leak_zero_status_counter, {}, Blood_leak_zeroed_status, {}, ' + 'Blood_leak_detect_set_point, {}, Blood_leak_detect_level, {}, Blood_leak_st_count, {}, ' + 'Blood_leak_led_intensity, {}, ' + .format(hd.blood_leak.get_blood_leak_status(), hd.blood_leak.get_blood_leak_zero_status_counter(), + hd.blood_leak.get_blood_leak_zeroed_status(), hd.blood_leak.get_blood_leak_detect_set_point(), + hd.blood_leak.get_blood_leak_detect_level(), hd.blood_leak.get_blood_leak_st_count(), + hd.blood_leak.get_blood_leak_led_intensity())) + return info + + def run_dg(): counter = 1 timer = 0.1 @@ -309,8 +322,6 @@ def collect_treatment_data(): f = open("/home/fw/projects/dialin/tests/treatment_run.log", "w") - #dg.cmd_dg_software_reset_request() - try: while True: hd_run = get_hd_run_info() @@ -325,9 +336,10 @@ heaters = get_heaters_info() dg_fans = get_dg_fans_info() conc_pumps = get_concentrate_pumps_info() + blood_leak = get_blood_leak_info() var = str(datetime.now()) + ', ' + hd_run + dg_run + hd_rsrvrs + dg_rsrvrs + load_cell + drain + ro + \ - temp + heaters + conc_pumps + dg_fans + valves + '\r' + temp + heaters + conc_pumps + dg_fans + valves + blood_leak + '\r' print(var) f.write(var) @@ -491,41 +503,44 @@ def test_dg_fans_alarms(): f = open("/home/fw/projects/dialin/tests/dg_fans_issues.log", "w") - counter = 0 - for fan in range(6): + for fan in DGFansNames.__members__: + dg.cmd_dg_software_reset_request() sleep(1) dg.alarms.clear_dialin_alarms() + i = 0 + ack = False + counter = 0 while True: if dg.dg_operation_mode == DGOperationModes.DG_OP_MODE_STANDBY.value: dg.cmd_log_in_to_dg() sleep(1) dg.fans.cmd_fans_data_broadcast_interval_override(50, reset=0) sleep(1) - dg.fans.cmd_fans_rpm_override(fan, 1000.0, reset=0) + dg.fans.cmd_fans_rpm_override(DGFansNames[fan].value, 1000.0, reset=0) start_time = datetime.now() - i = 0 while True: - info = str(fan) + ', ' + str(datetime.now() - start_time) + ', ' + get_dg_fans_info() + \ - str(dg.alarms.alarm_states[AlarmList.ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE.value]) + '\r' + alarm_state = dg.alarms.get_alarm_state(AlarmList.ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE.value) + info = str(fan) + ', ' + str(alarm_state) + ', ' + str(datetime.now() - start_time) + ', ' + \ + get_dg_fans_info() + '\r' print(info) f.write(info) - if dg.alarms.get_alarm_state(AlarmList.ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE.value): - print(counter, datetime.now() - start_time) + if alarm_state: + if ack is False and counter == 0: + hd.ui.cmd_ui_user_alarm_response(3) + ack = True + if ack: + if i == 0 and counter == 50: + dg.fans.cmd_fans_rpm_alarm_start_time_offset_override(24, 5) + i += 1 + elif alarm_state and i > 0: + break + counter += 1 - hd.ui.cmd_ui_user_alarm_response(3) - break - - # if i > 4000 / 50: - # hd.ui.cmd_ui_user_alarm_response(3) - # break - # i += 1 sleep(0.05) - - counter += 1 break @@ -546,10 +561,10 @@ # cmd_set_disinfect_ui_screen() - collect_treatment_data() + # collect_treatment_data() # collect_hd_treatment() # test_hd_fans_alarms() - # test_dg_fans_alarms() + test_dg_fans_alarms() Index: tests/hd_blood_leak_data.py =================================================================== diff -u -r6286da1bcfac5f1d43659196fb1baf27af50d746 -r8841ca865ff616ea3de171bc4037c349aaac7934 --- tests/hd_blood_leak_data.py (.../hd_blood_leak_data.py) (revision 6286da1bcfac5f1d43659196fb1baf27af50d746) +++ tests/hd_blood_leak_data.py (.../hd_blood_leak_data.py) (revision 8841ca865ff616ea3de171bc4037c349aaac7934) @@ -43,9 +43,11 @@ sleep(1) - hd.blood_leak.cmd_blood_leak_zero_request() + #hd.blood_leak.cmd_blood_leak_zero_request() #sleep(2) + hd.blood_leak.cmd_blood_leak_data_broadcast_interval_override(50) + f = open("/home/fw/projects/dialin/tests/blood_leak.log", "w") try: @@ -56,7 +58,7 @@ print(var) f.write(var) - sleep(1) + sleep(0.05) except KeyboardInterrupt: f.close() Index: tests/peter/test_dg_records.py =================================================================== diff -u -r6286da1bcfac5f1d43659196fb1baf27af50d746 -r8841ca865ff616ea3de171bc4037c349aaac7934 --- tests/peter/test_dg_records.py (.../test_dg_records.py) (revision 6286da1bcfac5f1d43659196fb1baf27af50d746) +++ tests/peter/test_dg_records.py (.../test_dg_records.py) (revision 8841ca865ff616ea3de171bc4037c349aaac7934) @@ -258,13 +258,13 @@ #print(dg.calibration_record.dg_calibration_record) dg.calibration_record.cmd_reset_dg_calibration_record() - #sleep(0.25) + sleep(0.25) dg.system_record.cmd_reset_dg_system_record() sleep(0.25) print(dg.system_record.dg_system_record) - dg.service_record.cmd_reset_dg_service_record() - sleep(0.25) - print(dg.service_record.dg_service_record) + #dg.service_record.cmd_reset_dg_service_record() + #sleep(0.25) + #print(dg.service_record.dg_service_record) @@ -319,8 +319,8 @@ if __name__ == "__main__": - # test_dg_reset_record() - test_dg_sw_config_record() + test_dg_reset_record() + # test_dg_sw_config_record() #test_dg_calibration_record() # test_dg_service_record() #test_dg_system_record() Index: tests/test_hd_dg_fans.py =================================================================== diff -u -radae506afce35a0063c6c2baf7e8580986f3bee7 -r8841ca865ff616ea3de171bc4037c349aaac7934 --- tests/test_hd_dg_fans.py (.../test_hd_dg_fans.py) (revision adae506afce35a0063c6c2baf7e8580986f3bee7) +++ tests/test_hd_dg_fans.py (.../test_hd_dg_fans.py) (revision 8841ca865ff616ea3de171bc4037c349aaac7934) @@ -16,7 +16,7 @@ from dialin import HD, DG from dialin.hd.temperatures import HDTemperaturesNames -from dialin.hd.fans import FansNames +#from dialin.hd.fans import FansNames from dialin.hd.switches import HDSwitchesNames from time import sleep @@ -49,6 +49,7 @@ if hd.cmd_log_in_to_hd() == 0: #or dg.cmd_log_in_to_dg() == 0: exit(1) + """ #hd.fans.cmd_dg_fan_rpm_override(FansNames.FAN_INLET_1.value, 4000.0) #sleep(1) #hd.fans.cmd_dg_fan_rpm_override(FansNames.FAN_INLET_1.value, 4000, reset=1) @@ -69,3 +70,7 @@ test = hd.fans.get_fans_target_duty_cycle() print(test) + """ + while True: + print(get_fans_info()) + sleep(1)