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()