Index: dialin/common/hd_defs.py =================================================================== diff -u -r8c1ae1a592e02562ad9bded9ea2bd199fa80f4bf -r4a30e790387316388d3b8a1603f5c6b4d46ac011 --- dialin/common/hd_defs.py (.../hd_defs.py) (revision 8c1ae1a592e02562ad9bded9ea2bd199fa80f4bf) +++ dialin/common/hd_defs.py (.../hd_defs.py) (revision 4a30e790387316388d3b8a1603f5c6b4d46ac011) @@ -127,6 +127,23 @@ @unique +class PreTreatmentWetSelfTesStates(DialinEnum): + WET_SELF_TESTS_START_STATE = 0 + WET_SELF_TESTS_SETUP_STATE = 1 + WET_SELF_TESTS_BUBBLES_STATE = 2 + WET_SELF_TESTS_PRIME_CHECK_STATE = 3 + WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE = 4 + WET_SELF_TESTS_FIRST_DISPLACEMENT_SETUP_STATE = 5 + WET_SELF_TESTS_FIRST_DISPLACEMENT_STATE = 6 + WET_SELF_TESTS_FIRST_DISPLACEMENT_VERIFY_STATE = 7 + WET_SELF_TESTS_SECOND_DISPLACEMENT_SETUP_STATE = 8 + WET_SELF_TESTS_SECOND_DISPLACEMENT_STATE = 9 + WET_SELF_TESTS_SECOND_DISPLACEMENT_VERIFY_STATE = 10 + WET_SELF_TESTS_STOPPED_STATE = 11 + WET_SELF_TESTS_COMPLETE_STATE = 12 + + +@unique class PreTreatmentPrimeStates(DialinEnum): HD_PRIME_START_STATE = 0 HD_PRIME_WAIT_FOR_USER_START_STATE = 1 Index: dialin/common/msg_ids.py =================================================================== diff -u -rd69bbb975b2a422eafc323038b48d2febbb72a66 -r4a30e790387316388d3b8a1603f5c6b4d46ac011 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision d69bbb975b2a422eafc323038b48d2febbb72a66) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision 4a30e790387316388d3b8a1603f5c6b4d46ac011) @@ -8,7 +8,7 @@ # @file msg_ids.py # # @author (last) Micahel Garthwaite -# @date (last) 22-Feb-2022 +# @date (last) 09-Mar-2022 # @author (original) Peter Lucia # @date (original) 06-Apr-2021 # @@ -193,6 +193,9 @@ MSG_ID_DG_CONCENTRATE_MIXING_RATIOS_DATA = 0xAA MSG_ID_DG_SCHEDULED_RUNS_DATA = 0xAB MSG_ID_DG_SCHEDULED_RUNS_INFO = 0xAC + MSG_ID_UI_INSTALLATION_CONFIRM_RESPONSE = 0xAD + MSG_ID_DG_FILL_MODE_DATA = 0xAE + MSG_ID_DG_BAD_FILL_SUB_STATE = 0xAF MSG_ID_CAN_ERROR_COUNT = 0x999 @@ -329,6 +332,7 @@ MSG_ID_LOAD_CELL_OVERRIDE = 0xA005 MSG_ID_PRESSURE_OVERRIDE = 0xA006 MSG_ID_PRESSURE_SEND_INTERVAL_OVERRIDE = 0xA007 + MSG_ID_DG_HD_COMMUNICATION_STATUS_OVERRIDE = 0xA008 MSG_ID_RO_MEASURED_FLOW_OVERRIDE = 0xA009 MSG_ID_RO_PUMP_SEND_INTERVAL_OVERRIDE = 0xA00A MSG_ID_DRAIN_PUMP_SET_RPM = 0xA00B @@ -397,7 +401,11 @@ MSG_ID_DG_SET_SW_CONFIG_RECORD = 0xA04B MSG_ID_DG_SEND_SW_CONFIG_RECORD = 0xA04C MSG_ID_DG_FANS_DUTY_CYCLE_OVERRIDE = 0xA04D - MSG_ID_DG_SET_FANS_RPM_ALARM_START_TIME_OFFSET = 0xA04E + MSG_ID_DG_USED_ACID_VOLUME_ML_OVERRIDE = 0xA04E + MSG_ID_DG_SET_FANS_RPM_ALARM_START_TIME_OFFSET = 0xA04F + MSG_ID_DG_USED_BICARB_VOLUME_ML_OVERRIDE = 0xA050 + MSG_ID_FILL_MODE_DATA_PUBLISH_INTERVAL_OVERRIDE = 0xA051 + MSG_ID_BAD_FILL_STATES_PUBLISH_INTERVAL_OVERRIDE = 0xA052 MSG_ID_HD_DEBUG_EVENT = 0xFFF1 MSG_ID_DG_DEBUG_EVENT = 0xFFF2 Index: tests/dg_tests.py =================================================================== diff -u -r7fda529ba6cd2ca3c64028735979c0b65b32b306 -r4a30e790387316388d3b8a1603f5c6b4d46ac011 --- tests/dg_tests.py (.../dg_tests.py) (revision 7fda529ba6cd2ca3c64028735979c0b65b32b306) +++ tests/dg_tests.py (.../dg_tests.py) (revision 4a30e790387316388d3b8a1603f5c6b4d46ac011) @@ -33,8 +33,10 @@ from dialin.common.hd_defs import HDEventList from dialin.hd.reservoirs import HDReservoirStates from dialin.dg.reservoirs import DGReservoirsNames +from dialin.common.dg_defs import DGGenIdleModeBadFillSubStates from dialin.common.alarm_defs import AlarmList from dialin.dg.fans import DGFansNames +from dialin.dg.conductivity_sensors import ConductivitySensorsEnum from time import sleep from datetime import datetime import sys @@ -106,6 +108,7 @@ dg.reservoirs.time_uf_decay, dg.reservoirs.temp_uf_fill, dg.reservoirs.temp_reservoir_use_actual, dg.reservoirs.temp_reservoir_end_fill, dg.reservoirs.temp_avg_fill, dg.reservoirs.temp_last_fill, dg.reservoirs.time_rsrvr_fill)) + return info @@ -158,11 +161,11 @@ def get_ro_info(): info = ('RO, {}, PPi, {:5.3f}, PPo, {:5.3f}, PWM, {:5.3f}, Flow, {:5.3f}, Tgt_flow, {:5.3f}, Dia_flow, {:5.3f}, ' - 'Feedback_PWM, {:5.3f}, Raw_flow, {:5.3f}, ' + 'Feedback_PWM, {:5.3f}, flow_with_conc_pumps, {:5.3f}, ' .format(dg.ro_pump.ro_pump_state, dg.pressures.ro_pump_inlet_pressure, dg.pressures.ro_pump_outlet_pressure, dg.ro_pump.pwm_duty_cycle_pct, dg.ro_pump.measured_flow_rate_lpm, dg.ro_pump.target_flow_lpm, dg.dialysate_flow_sensor.flow_rate, - dg.ro_pump.feedback_duty_cycle_pct, dg.ro_pump.measured_raw_flow_rate_mlp)) + dg.ro_pump.feedback_duty_cycle_pct, dg.ro_pump.measured_raw_flow_rate_with_conc_pumps_mlp)) return info @@ -272,6 +275,21 @@ return info +def get_dg_fill_info(): + info = ('Avg_acid_cond, {:5.3f}, Avg_bicarb_cond, {:5.3f}, Is_this_first_fill, {}, Diff_cond_pct, {:5.3f}, ' + 'Used_acid, {:5.3f}, Used_bicarb, {:5.3f}, Total_vol, {:5.3f}, ' + .format(dg.dialysate_fill.avg_acid, dg.dialysate_fill.avg_bicarb, dg.dialysate_fill.first_fill, + dg.dialysate_fill.pctDiffConduct, dg.dialysate_fill.used_acid, dg.dialysate_fill.used_acid, + dg.dialysate_fill.total_volume)) + return info + + +def get_dg_idle_bad_fill_info(): + info = ('Bad_fill_state, {}, ' + .format(DGGenIdleModeBadFillSubStates(dg.gen_idle.sub_state).name)) + return info + + def run_dg(): counter = 1 timer = 0.1 @@ -332,6 +350,13 @@ def collect_treatment_data(): f = open("/home/fw/projects/dialin/tests/treatment_run.log", "w") + dg.conductivity_sensors.cmd_conductivity_sensor_override(ConductivitySensorsEnum.CD2.value, 6900.00) + sleep(1) + dg.conductivity_sensors.cmd_conductivity_sensor_override(ConductivitySensorsEnum.CD1.value, 12100.00) + sleep(1) + + start = False + try: while True: hd_run = get_hd_run_info() @@ -348,10 +373,19 @@ conc_pumps = get_concentrate_pumps_info() blood_leak = get_blood_leak_info() hd_pumps = get_hd_pumps_info() + fill_info = get_dg_fill_info() + idle_bad_fill = get_dg_idle_bad_fill_info() - var = str(datetime.now()) + ', ' + hd_run + dg_run + hd_rsrvrs + dg_rsrvrs + load_cell + drain + ro + \ - temp + heaters + conc_pumps + dg_fans + valves + blood_leak + hd_pumps + '\r' + #var = str(datetime.now()) + ', ' + hd_run + dg_run + hd_rsrvrs + dg_rsrvrs + load_cell + drain + ro + \ + # temp + heaters + conc_pumps + dg_fans + valves + blood_leak + hd_pumps + '\r' + var = str(datetime.now()) + ', ' + hd_run + dg_run + load_cell + drain + ro + conc_pumps + valves + \ + idle_bad_fill + fill_info + '\r' + + if dg.dg_operation_mode == 6 and dg.dg_operation_sub_mode == 5 and start is False: + dg.conductivity_sensors.cmd_conductivity_sensor_override(ConductivitySensorsEnum.CD2.value, 12000.00) + start = True + print(var) f.write(var) sleep(1) @@ -570,19 +604,10 @@ # cmd_set_disinfect_ui_screen() - #collect_treatment_data() + collect_treatment_data() # collect_hd_treatment() - #dg.switches.cmd_dg_switch_status_override(0, 0) - #sleep(1) - #dg.switches.cmd_dg_switch_status_override(1, 0) + # test_hd_fans_alarms() - while True: - #print(dg.switches.get_switches_status()) - print(get_hd_fans_info()) - sleep(1) - - test_hd_fans_alarms() - # test_dg_fans_alarms()