Index: dialin/common/hd_defs.py =================================================================== diff -u -r8f494693c531d46dce1c7e496bb91d84940f4d6c -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/common/hd_defs.py (.../hd_defs.py) (revision 8f494693c531d46dce1c7e496bb91d84940f4d6c) +++ dialin/common/hd_defs.py (.../hd_defs.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,14 +1,14 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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 hd_defs.py # -# @author (last) Behrouz NematiPour -# @date (last) 25-Oct-2022 +# @author (last) Dara Navaei +# @date (last) 11-Jan-2023 # @author (original) Peter Lucia # @date (original) 04-Dec-2020 # @@ -49,32 +49,31 @@ @unique class HDInitStates(DialinEnum): - POST_STATE_START = 0 # Start initialize & POST mode state - POST_STATE_FW_INTEGRITY = 1 # Run firmware integrity test state - POST_STATE_AC = 2 # Check HD has AC power - power off if not - POST_STATE_WATCHDOG = 3 # Run watchdog test state - POST_STATE_SAFETY_SHUTDOWN = 4 # Run safety shutdown test state - POST_STATE_RTC = 5 # Run RTC test state - POST_STATE_NVDATAMGMT = 6 # Run NV Data Mgmt. test state - POST_STATE_BLOOD_FLOW = 7 # Run blood flow test state - POST_STATE_DIALYSATE_INLET_FLOW = 8 # Run dialysate inlet flow test state - POST_STATE_DIALYSATE_OUTLET_FLOW = 9 # Run dialysate outlet flow test state - POST_STATE_BLOOD_LEAK = 10 # Run blood leak sensor test state - POST_STATE_VALVES = 11 # Run valves test state - POST_STATE_SYRINGE_PUMP = 12 # Run syringe pump test state - POST_STATE_PRES_OCCL = 13 # Run pressure occlusion state - POST_STATE_ALARM_AUDIO = 14 # Run alarm audio test state - POST_STATE_ALARM_LAMP = 15 # Run alarm lamp test state - POST_STATE_ACCELEROMETER = 16 # Run Accelerometer test state - POST_STATE_TEMPERATURES = 17 # Run temperatures POST state - POST_STATE_FANS = 18 # Run fans POST state - POST_STATE_STUCK_BUTTON = 19 # Run stuck button test state - POST_STATE_UI_POST = 20 # Check whether UI passed its POST tests - POST_STATE_FW_COMPATIBILITY = 21 # Run firmware compatibility test state - POST_STATE_FPGA = 22 # Run FPGA test state - POST_STATE_COMPLETED = 23 # POST self-tests completed state - POST_STATE_FAILED = 24 # POST self-tests failed state - NUM_OF_POST_STATES = 25 # Number of initialize & POST mode states + POST_STATE_START = 0 # Start initialize & POST mode state + POST_STATE_FW_INTEGRITY = 1 # Run firmware integrity test state + POST_STATE_RTC = 2 # Run RTC test state + POST_STATE_NVDATAMGMT = 3 # Run NV Data Mgmt. test state + POST_STATE_WATCHDOG = 4 # Run watchdog test state + POST_STATE_SAFETY_SHUTDOWN = 5 # Run safety shutdown test state + POST_STATE_BLOOD_FLOW = 6 # Run blood flow test state + POST_STATE_DIALYSATE_INLET_FLOW = 7 # Run dialysate inlet flow test state + POST_STATE_DIALYSATE_OUTLET_FLOW = 8 # Run dialysate outlet flow test state + POST_STATE_BLOOD_LEAK = 9 # Run blood leak sensor test state + POST_STATE_VALVES = 10 # Run valves test state + POST_STATE_SYRINGE_PUMP = 11 # Run syringe pump test state + POST_STATE_PRES_OCCL = 12 # Run pressure occlusion state + POST_STATE_ALARM_AUDIO = 13 # Run alarm audio test state + POST_STATE_ALARM_LAMP = 14 # Run alarm lamp test state + POST_STATE_ACCELEROMETER = 15 # Run Accelerometer test state + POST_STATE_TEMPERATURES = 16 # Run temperatures POST state + POST_STATE_FANS = 17 # Run fans POST state + POST_STATE_STUCK_BUTTON = 18 # Run stuck button test state + POST_STATE_UI_POST = 19 # Check whether UI passed its POST tests + POST_STATE_FW_COMPATIBILITY = 20 # Run firmware compatibility test state + POST_STATE_FPGA = 21 # Run FPGA test state + POST_STATE_COMPLETED = 22 # POST self-tests completed state + POST_STATE_FAILED = 23 # POST self-tests failed state + NUM_OF_POST_STATES = 24 # Number of initialize & POST mode states @unique class PreTreatmentSubModes(DialinEnum): @@ -221,6 +220,7 @@ DRY_SELF_TESTS_COMPLETE_STATE = 15 # Dry self-test complete state NUM_OF_DRY_SELF_TESTS_STATES = 16 # Number of dry self-tests states + @unique class PreTreatmentPrimeStates(DialinEnum): HD_PRIME_START_STATE = 0 # Prime start state @@ -333,7 +333,22 @@ HD_EVENT_STARTUP = 0 # HD startup event HD_EVENT_OP_MODE_CHANGE = 1 # HD Op mode change event HD_EVENT_SUB_MODE_CHANGE = 2 # HD Op sub-mode change event - NUM_OF_EVENT_IDS = 3 # Total number of HD events + HD_EVENT_DRY_SELF_TEST_CARTRIDGE_RESULT = 3 # HD dry self test cartridge result + HD_EVENT_DRY_SELF_TEST_PRESSURE_RESULT = 4 # HD dry self test pressure result + HD_EVENT_WET_SELF_TEST_DISPLACEMENT_RESULT = 5 # HD wet self test displacement result + HD_EVENT_CPU_RAM_ERROR_STATUS = 6 # HD CPU RAM error status + HD_EVENT_CAL_RECORD_UPDATE = 7 # HD new calibration record updated + HD_EVENT_SYSTEM_RECORD_UPDATE = 8 # HD new system record has been updated + HD_EVENT_SERVICE_UPDATE = 9 # HD new service record has been updated + HD_EVENT_USAGE_INFO_UPDATE = 10 # HD new usage information has been updated + HD_EVENT_SW_CONFIG_UPDATE = 11 # HD new software configuration has been updated + HD_EVENT_BUTTON = 12 # HD button pressed/released + HD_EVENT_SAFETY_LINE = 13 # HD safety line pulled/released + HD_EVENT_RSRVR_1_LOAD_CELL_START_VALUES = 14 # HD reservoir 1 load cells start values + HD_EVENT_RSRVR_1_LOAD_CELL_END_VALUES = 15 # HD reservoir 2 load cells end values + HD_EVENT_RSRVR_2_LOAD_CELL_START_VALUES = 16 # HD reservoir 2 load cells start values + HD_EVENT_RSRVR_2_LOAD_CELL_END_VALUES = 17 # HD reservoir 2 load cells end values + NUM_OF_EVENT_IDS = 18 # Total number of HD events @unique Index: dialin/dg/chemical_disinfect.py =================================================================== diff -u -rb380516aac6b6b68f3d1532cba02b54facb23020 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/dg/chemical_disinfect.py (.../chemical_disinfect.py) (revision b380516aac6b6b68f3d1532cba02b54facb23020) +++ dialin/dg/chemical_disinfect.py (.../chemical_disinfect.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2021-2023 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. @@ -48,8 +48,6 @@ self.cancellation_mode = 0 self.r1_level = 0 self.r2_level = 0 - self.target_post_rinse_count = 0 - self.current_post_rinse_count = 0 self.chemical_disinfect_ui_state = 0 if self.can_interface is not None: @@ -78,8 +76,6 @@ self.cancellation_mode = 0 self.r1_level = 0 self.r2_level = 0 - self.target_post_rinse_count = 0 - self.current_post_rinse_count = 0 self.chemical_disinfect_ui_state = 0 @publish(["chemical_disinfect_elapsed_time", "chemical_disinfect_target_time"]) @@ -100,8 +96,7 @@ self.chemical_disinfect_elapsed_time = int(disinfect_elapsed_time / 1000) @publish(["chemical_disinfect_state", "overall_elapsed_time", "state_elapsed_time", "cancellation_mode", - "r1_level", "r2_level", "target_post_rinse_count", "current_post_rinse_count", - "chemical_disinfect_ui_state"]) + "r1_level", "r2_level", "chemical_disinfect_ui_state"]) def _handler_chemical_disinfect_sync(self, message): """ Handles published chemical disinfect message @@ -128,8 +123,6 @@ self.cancellation_mode = cancellation_mode self.r1_level = r1 self.r2_level = r2 - self.target_post_rinse_count = target_post_rinse_cnt - self.current_post_rinse_count = current_post_rinse_cnt self.chemical_disinfect_ui_state = chem_ui_state def get_chem_disinfect_target_time(self) -> int: Index: dialin/dg/dialysate_generator.py =================================================================== diff -u -r74da0b9125ce91e76ce824e4f8e520eb32ee8d84 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision 74da0b9125ce91e76ce824e4f8e520eb32ee8d84) +++ dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,14 +1,14 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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 dialysate_generator.py # # @author (last) Dara Navaei -# @date (last) 22-Dec-2022 +# @date (last) 03-Jan-2023 # @author (original) Peter Lucia # @date (original) 02-Apr-2020 # @@ -367,6 +367,7 @@ Constraints: Must be logged into DG. Transition from current to requested op mode must be legal. + For transitioning to POST again, you can only be in Standby Mode or Solo Mode @param new_mode: ID of operation mode to transition to (see DGOpModes enum for options) Index: dialin/dg/drain_pump.py =================================================================== diff -u -re27520166a6ec9b88423c6a0deeb75ea2ba0d61d -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/dg/drain_pump.py (.../drain_pump.py) (revision e27520166a6ec9b88423c6a0deeb75ea2ba0d61d) +++ dialin/dg/drain_pump.py (.../drain_pump.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,14 +1,14 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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 drain_pump.py # # @author (last) Dara Navaei -# @date (last) 28-Oct-2022 +# @date (last) 11-Jan-2023 # @author (original) Sean # @date (original) 14-Apr-2020 # @@ -57,7 +57,7 @@ self.dac_value = 0 self.drain_pump_state = 0 self.current_drain_pump_rpm = 0 - self.target_drain_pump_outlet_pressure = 0.0 + self.target_drain_pump_outlet_flow_lpm = 0.0 self.drain_pump_current_A = 0.0 self.drain_pump_direction = 0 @@ -94,7 +94,7 @@ return self.current_drain_pump_rpm @publish(["target_drain_pump_rpm", "dac_value", "drain_pump_state", "current_drain_pump_rpm", - "drain_pump_current_A", "drain_pump_direction"]) + "drain_pump_current_A", "drain_pump_direction", "target_drain_pump_outlet_flow_lpm"]) def _handler_drain_pump_sync(self, message): """ Handles published drain pump data messages. Drain pump data are captured @@ -111,7 +111,7 @@ message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] self.current_drain_pump_rpm = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - self.target_drain_pump_outlet_pressure = struct.unpack('f', bytearray( + 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] Index: dialin/dg/heat_disinfect.py =================================================================== diff -u -r74da0b9125ce91e76ce824e4f8e520eb32ee8d84 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/dg/heat_disinfect.py (.../heat_disinfect.py) (revision 74da0b9125ce91e76ce824e4f8e520eb32ee8d84) +++ dialin/dg/heat_disinfect.py (.../heat_disinfect.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2021-2023 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. Index: dialin/dg/temperatures.py =================================================================== diff -u -rb380516aac6b6b68f3d1532cba02b54facb23020 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/dg/temperatures.py (.../temperatures.py) (revision b380516aac6b6b68f3d1532cba02b54facb23020) +++ dialin/dg/temperatures.py (.../temperatures.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2021-2023 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. Index: dialin/hd/alarms.py =================================================================== diff -u -r74da0b9125ce91e76ce824e4f8e520eb32ee8d84 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/hd/alarms.py (.../alarms.py) (revision 74da0b9125ce91e76ce824e4f8e520eb32ee8d84) +++ dialin/hd/alarms.py (.../alarms.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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. Index: dialin/hd/battery.py =================================================================== diff -u -r5fad1b021480de4d9708932bf3f68e27095c658f -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/hd/battery.py (.../battery.py) (revision 5fad1b021480de4d9708932bf3f68e27095c658f) +++ dialin/hd/battery.py (.../battery.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2022-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2022-2023 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. Index: dialin/hd/fans.py =================================================================== diff -u -r45f70ed84010200e8582a25ccd8792100f4f4fc4 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/hd/fans.py (.../fans.py) (revision 45f70ed84010200e8582a25ccd8792100f4f4fc4) +++ dialin/hd/fans.py (.../fans.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2021-2023 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. Index: dialin/hd/hemodialysis_device.py =================================================================== diff -u -r5fad1b021480de4d9708932bf3f68e27095c658f -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/hd/hemodialysis_device.py (.../hemodialysis_device.py) (revision 5fad1b021480de4d9708932bf3f68e27095c658f) +++ dialin/hd/hemodialysis_device.py (.../hemodialysis_device.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,14 +1,14 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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 hemodialysis_device.py # # @author (last) Dara Navaei -# @date (last) 08-Dec-2022 +# @date (last) 03-Jan-2023 # @author (original) Peter Lucia # @date (original) 02-Apr-2020 # @@ -346,6 +346,7 @@ Constraints: Must be logged into HD. Transition from current to requested op mode must be legal. + NOTE: for POST the HD device shall be in Standby Mode @param new_mode: ID of operation mode to transition to HD_OP_MODE_FAULT = 0 Index: dialin/hd/pretreatment.py =================================================================== diff -u -r45f70ed84010200e8582a25ccd8792100f4f4fc4 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/hd/pretreatment.py (.../pretreatment.py) (revision 45f70ed84010200e8582a25ccd8792100f4f4fc4) +++ dialin/hd/pretreatment.py (.../pretreatment.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2021-2023 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. Index: dialin/hd/rtc.py =================================================================== diff -u -re193e10da7d6c16158592c1aae7ebe1221dd0cde -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/hd/rtc.py (.../rtc.py) (revision e193e10da7d6c16158592c1aae7ebe1221dd0cde) +++ dialin/hd/rtc.py (.../rtc.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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. Index: dialin/hd/treatment.py =================================================================== diff -u -r1ceb44f1f6d97ce295db7c3233043df9cca35746 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/hd/treatment.py (.../treatment.py) (revision 1ceb44f1f6d97ce295db7c3233043df9cca35746) +++ dialin/hd/treatment.py (.../treatment.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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. Index: dialin/hd/ui_proxy.py =================================================================== diff -u -r74da0b9125ce91e76ce824e4f8e520eb32ee8d84 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 74da0b9125ce91e76ce824e4f8e520eb32ee8d84) +++ dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,14 +1,14 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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 ui_proxy.py # # @author (last) Dara Navaei -# @date (last) 08-Dec-2022 +# @date (last) 03-Jan-2023 # @author (original) Sean # @date (original) 15-Apr-2020 # Index: dialin/ui/dg_simulator.py =================================================================== diff -u -r5f109951b1eec291a8da38aba01470d3aa5a95b5 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/ui/dg_simulator.py (.../dg_simulator.py) (revision 5f109951b1eec291a8da38aba01470d3aa5a95b5) +++ dialin/ui/dg_simulator.py (.../dg_simulator.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2021-2023 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. Index: dialin/ui/hd_simulator.py =================================================================== diff -u -raf8db2686fbbf566d677c38dfdf367f7c49b7764 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision af8db2686fbbf566d677c38dfdf367f7c49b7764) +++ dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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. Index: dialin/version.py =================================================================== diff -u -rdc34d36bd96f68c2ec1976cd505f97d5d3ff2309 -r32001abdfb62770761771b563eb6ff517152fc76 --- dialin/version.py (.../version.py) (revision dc34d36bd96f68c2ec1976cd505f97d5d3ff2309) +++ dialin/version.py (.../version.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2020-2023 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. Index: tests/dg_tests.py =================================================================== diff -u -re27520166a6ec9b88423c6a0deeb75ea2ba0d61d -r32001abdfb62770761771b563eb6ff517152fc76 --- tests/dg_tests.py (.../dg_tests.py) (revision e27520166a6ec9b88423c6a0deeb75ea2ba0d61d) +++ tests/dg_tests.py (.../dg_tests.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,14 +1,14 @@ ########################################################################### # -# Copyright (c) 2022-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2022-2023 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 dg_tests.py # # @author (last) Dara Navaei -# @date (last) 21-Dec-2022 +# @date (last) 11-Jan-2023 # @author (original) Dara Navaei # @date (original) 16-Jan-2022 # @@ -56,29 +56,53 @@ def get_chemical_disinfect_mode_info(): + state = 0 + state_elapsed_time = 0 + overall_elapsed_time = 0 + if dg.dg_operation_mode == 10: + state = DGChemicalDisinfectStates(dg.chemical_disinfect.chemical_disinfect_state).name + overall_elapsed_time = dg.chemical_disinfect.overall_elapsed_time + state_elapsed_time = dg.chemical_disinfect.state_elapsed_time + elif dg.dg_operation_mode == 11: + state = DGChemDisinfectFlushStates(dg.chemical_disinfect_flush.flush_state).name + overall_elapsed_time = dg.chemical_disinfect_flush.overall_elapsed_time + state_elapsed_time = dg.chemical_disinfect_flush.state_elapsed_time + info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, Disinfect_elapsed_time, {}, ' 'Cancellation_mode, {}, R1_level, {:5.3f}, R2_level, {:5.3f}, Current_rinse_count, {}, ' 'Total_rinse_count, {}, UI_state, {}, Top_alarm, {}, ' - .format(DGChemicalDisinfectStates(dg.chemical_disinfect.chemical_disinfect_state).name, - dg.chemical_disinfect.overall_elapsed_time, dg.chemical_disinfect.state_elapsed_time, + .format(state, overall_elapsed_time, state_elapsed_time, dg.chemical_disinfect.chemical_disinfect_elapsed_time, ChemCancellationModes(dg.chemical_disinfect.cancellation_mode).name, dg.chemical_disinfect.r1_level, - dg.chemical_disinfect.r2_level, dg.chemical_disinfect.current_post_rinse_count, - dg.chemical_disinfect.target_post_rinse_count, + dg.chemical_disinfect.r2_level, dg.chemical_disinfect_flush.rinse_count, 0, + #dg.chemical_disinfect_flush.target_rinse_count, DGChemDisinfectUIStates(dg.chemical_disinfect.chemical_disinfect_ui_state).name, hd.alarms.alarm_top)) return info + def get_chemical_disinfect_flush_mode_info(): + state = 0 + state_elapsed_time = 0 + overall_elapsed_time = 0 + if dg.dg_operation_mode == 10: + state = DGChemDisinfectFlushStates(dg.chemical_disinfect_flush.flush_state).name + overall_elapsed_time = dg.chemical_disinfect.overall_elapsed_time + state_elapsed_time = dg.chemical_disinfect.state_elapsed_time + elif dg.dg_operation_mode == 11: + state = DGHeatDisinfectActiveCoolStates(dg.heat_disinfect_active_cool.heat_disinfect_active_cool_state).name + overall_elapsed_time = dg.heat_disinfect_active_cool.overall_elapsed_time + state_elapsed_time = dg.heat_disinfect_active_cool.state_elapsed_time + info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, r1, {:5.1f}, r2, {:5.1f}, ' - 'Target_rinse_count, {}, Rinse_count, {}, Top_alarm, {}, UI_state, {},' - .format(DGChemDisinfectFlushStates(dg.chemical_disinfect_flush.flush_state).name, - dg.chemical_disinfect_flush.overall_elapsed_time, dg.chemical_disinfect_flush.state_elapsed_time, + 'Target_rinse_count, {}, Rinse_count, {}, Top_alarm, {}, UI_state, {},' + .format(state, overall_elapsed_time, state_elapsed_time, dg.chemical_disinfect_flush.r1, dg.chemical_disinfect_flush.r2, dg.chemical_disinfect_flush.target_rinse_count, dg.chemical_disinfect_flush.rinse_count, hd.alarms.alarm_top, dg.chemical_disinfect_flush.flush_UI_state)) return info + def get_heat_disinfect_mode_info(): state = 0 state_elapsed_time = 0 @@ -107,6 +131,7 @@ dg.flush.flush_drain_line_volume_l, hd.alarms.alarm_top)) return info + def get_hd_run_info(): info = ('HD_op_mode, {}, HD_sub_mode, {}, Top_alarm, {}, Target_UF_ml, {:5.3f}, Meas_UF_ml, {:5.3f}, ' 'Wet_test_state, {}, Post_tx_state, {}, Post_tx_drain_state, {}, Prime_state, {}, Pre_Tx_rsrvr_state, {}, ' @@ -182,12 +207,12 @@ 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, {}, ' + 'Drain_curr_A, {:5.3f}, Drain_dir, {}, Target_flow_lpm, {:5.3f}, ' .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.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.drain_pump_direction, dg.drain_pump.target_drain_pump_outlet_flow_lpm)) return info @@ -533,7 +558,8 @@ def run_chemical_disinfect(): complete_counter = 1 f = open("/home/fw/projects/dialin/tests/chemical_disinfect.log", "w") - dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect() + #dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect() + dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect_flush() try: while True: @@ -568,8 +594,10 @@ except KeyboardInterrupt: dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect(start=False) + dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect_flush(start=False) f.close() + def run_chem_disinfect_flush_mode(): complete_counter = 1 f = open("/home/fw/projects/dialin/tests/chem_disinfect_flush_mode.log", "w") @@ -586,7 +614,7 @@ conc = get_concentrate_pumps_info() valves = get_dg_valves_states() - var = flush + load_cell + drain + ro + + temp + conc + valves + '\r' + var = flush + load_cell + drain + ro + temp + conc + valves + '\r' print(var) f.write(var) @@ -701,7 +729,7 @@ hd.cmd_log_in_to_hd() sleep(1) - run_heat_disinfect() + #run_heat_disinfect() #run_flush_mode() @@ -718,7 +746,7 @@ #collect_hd_treatment() #while True: - #print(get_hd_fans_info(), get_dg_fans_info(), get_temperature_sensors_info()) + # print(get_hd_fans_info(), get_dg_fans_info(), get_temperature_sensors_info()) # print(get_dg_valves_states()) # sleep(1) @@ -743,4 +771,10 @@ #hd.ui.cmd_ui_set_dg_service_time() + #dg.heaters.cmd_heater_duty_cycle_override(1, 10, reset=1) + #hd.cmd_hd_software_reset_request() + + #dg.cmd_dg_set_operation_mode(2) + hd.cmd_hd_set_operation_mode(2) + Index: tests/hd_nvm_scripts.py =================================================================== diff -u -r74da0b9125ce91e76ce824e4f8e520eb32ee8d84 -r32001abdfb62770761771b563eb6ff517152fc76 --- tests/hd_nvm_scripts.py (.../hd_nvm_scripts.py) (revision 74da0b9125ce91e76ce824e4f8e520eb32ee8d84) +++ tests/hd_nvm_scripts.py (.../hd_nvm_scripts.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2022-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2022-2023 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. Index: tests/peter/test_dg_records.py =================================================================== diff -u -rab95fd4d07280a6af9a18956a4e55ac9d62823e2 -r32001abdfb62770761771b563eb6ff517152fc76 --- tests/peter/test_dg_records.py (.../test_dg_records.py) (revision ab95fd4d07280a6af9a18956a4e55ac9d62823e2) +++ tests/peter/test_dg_records.py (.../test_dg_records.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2021-2023 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. Index: tests/test_flush.py =================================================================== diff -u -r17704a8e40bbc201bbf46712891b99fffb798e7c -r32001abdfb62770761771b563eb6ff517152fc76 --- tests/test_flush.py (.../test_flush.py) (revision 17704a8e40bbc201bbf46712891b99fffb798e7c) +++ tests/test_flush.py (.../test_flush.py) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -1,6 +1,6 @@ ########################################################################### # -# Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. +# Copyright (c) 2021-2023 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. Index: tools/Code_Report.csv =================================================================== diff -u -rcb4bb2804ddf85b31701714fd004b9dca6f9735e -r32001abdfb62770761771b563eb6ff517152fc76 --- tools/Code_Report.csv (.../Code_Report.csv) (revision cb4bb2804ddf85b31701714fd004b9dca6f9735e) +++ tools/Code_Report.csv (.../Code_Report.csv) (revision 32001abdfb62770761771b563eb6ff517152fc76) @@ -53,7 +53,11 @@ ./dg/cpld.py, Function, get_cpld_clean_led(self) -> 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: +<<<<<<< HEAD ./dg/dialysate_fill.py, Function, cmd_dialysate_fill_total_volume_override(self, volume: float, reset: int = NO_RESET) -> int: +======= +./dg/dialysate_fill.py, Function, cmd_dialysate_fill_integrated_volume_override(self, volume: float, reset: int = NO_RESET) -> int: +>>>>>>> DEN-14559-dg_hd_dev-hd_dg_dvt-update-part-8 ./dg/dialysate_fill.py, Function, get_fill_mode_data(self): ./dg/dialysate_fill.py, Function, cmd_used_acid_volume_override(self, volume: float) -> int: ./dg/dialysate_generator.py, Function, get_version(self): @@ -104,7 +108,7 @@ ./dg/flow_sensors.py, Function, cmd_measured_flow_sensor_value_lpm_override(self, sensor_id: int, rate: float, reset: int = NO_RESET) -> int: ./dg/fluid_leak.py, Function, cmd_fluid_leak_state_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: ./dg/fluid_leak.py, Function, get_fluid_leak_state(self): -./dg/fluid_leak.py, Function, cmd_fluid_leak_detector_override(self, detected: int, reset: int = NO_RESET) -> int: +./dg/fluid_leak.py, Function, cmd_fluid_leak_detector_override(self, detected_state: int, reset: int = NO_RESET) -> int: ./dg/flush.py, Function, clear_flush_info(self) -> None: ./dg/gen_idle.py, Function, cmd_bad_fill_substates_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: ./dg/gen_idle.py, Function, get_bad_fill_sub_state(self): @@ -372,7 +376,7 @@ ./hd/fans.py, Function, get_fans_time_left_to_rpm_alarm(self): ./hd/fluid_leak.py, Function, cmd_fluid_leak_state_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: ./hd/fluid_leak.py, Function, get_fluid_leak_state(self): -./hd/fluid_leak.py, Function, cmd_fluid_leak_detector_override(self, detected: int, reset: int = NO_RESET) -> int: +./hd/fluid_leak.py, Function, cmd_fluid_leak_detector_override(self, detected_state: int, reset: int = NO_RESET) -> int: ./hd/hd_events.py, Function, clear_hd_event_list(self): ./hd/hd_events.py, Function, get_hd_events(self, event_id, number_of_events=1): ./hd/hd_events.py, Function, get_hd_nth_event(self, event_id, event_number=0): @@ -742,7 +746,7 @@ dg/drain_pump.py, Variable, dac_value dg/drain_pump.py, Variable, drain_pump_state dg/drain_pump.py, Variable, current_drain_pump_rpm -dg/drain_pump.py, Variable, target_drain_pump_outlet_pressure +dg/drain_pump.py, Variable, target_drain_pump_outlet_flow_lpm dg/drain_pump.py, Variable, drain_pump_current_A dg/drain_pump.py, Variable, drain_pump_direction dg/fans.py, Variable, dg_fans_duty_cycle @@ -1656,6 +1660,16 @@ common/dg_defs.py, Enum, DGEventList, DG_EVENT_STARTUP common/dg_defs.py, Enum, DGEventList, DG_EVENT_OP_MODE_CHANGE common/dg_defs.py, Enum, DGEventList, DG_EVENT_SUB_MODE_CHANGE +common/dg_defs.py, Enum, DGEventList, DG_EVENT_CONCENTRATE_CAP_SWITCH_CHANGE +common/dg_defs.py, Enum, DGEventList, DG_EVENT_DIALYSATE_CAP_SWITCH_CHANGE +common/dg_defs.py, Enum, DGEventList, DG_EVENT_CPU_RAM_ERROR_STATUS +common/dg_defs.py, Enum, DGEventList, DG_EVENT_CAL_RECORD_UPDATE +common/dg_defs.py, Enum, DGEventList, DG_EVENT_SYSTEM_RECORD_UPDATE +common/dg_defs.py, Enum, DGEventList, DG_EVENT_SERVICE_UPDATE +common/dg_defs.py, Enum, DGEventList, DG_EVENT_USAGE_INFO_UPDATE +common/dg_defs.py, Enum, DGEventList, DG_EVENT_SW_CONFIG_UPDATE +common/dg_defs.py, Enum, DGEventList, DG_EVENT_SCHEDULED_RUNS_UPDATE +common/dg_defs.py, Enum, DGEventList, DG_EVENT_HEATERS_INFO_UPDATE common/dg_defs.py, Enum, DGEventList, NUM_OF_DG_EVENT_IDS common/dg_defs.py, Enum, DGEventDataType, DGEventDataType common/dg_defs.py, Enum, DGEventDataType, EVENT_DATA_TYPE_NONE @@ -1695,11 +1709,10 @@ common/hd_defs.py, Enum, HDInitStates, HDInitStates common/hd_defs.py, Enum, HDInitStates, POST_STATE_START common/hd_defs.py, Enum, HDInitStates, POST_STATE_FW_INTEGRITY -common/hd_defs.py, Enum, HDInitStates, POST_STATE_AC -common/hd_defs.py, Enum, HDInitStates, POST_STATE_WATCHDOG -common/hd_defs.py, Enum, HDInitStates, POST_STATE_SAFETY_SHUTDOWN common/hd_defs.py, Enum, HDInitStates, POST_STATE_RTC common/hd_defs.py, Enum, HDInitStates, POST_STATE_NVDATAMGMT +common/hd_defs.py, Enum, HDInitStates, POST_STATE_WATCHDOG +common/hd_defs.py, Enum, HDInitStates, POST_STATE_SAFETY_SHUTDOWN common/hd_defs.py, Enum, HDInitStates, POST_STATE_BLOOD_FLOW common/hd_defs.py, Enum, HDInitStates, POST_STATE_DIALYSATE_INLET_FLOW common/hd_defs.py, Enum, HDInitStates, POST_STATE_DIALYSATE_OUTLET_FLOW @@ -1899,6 +1912,21 @@ common/hd_defs.py, Enum, HDEventList, HD_EVENT_STARTUP common/hd_defs.py, Enum, HDEventList, HD_EVENT_OP_MODE_CHANGE common/hd_defs.py, Enum, HDEventList, HD_EVENT_SUB_MODE_CHANGE +common/hd_defs.py, Enum, HDEventList, HD_EVENT_DRY_SELF_TEST_CARTRIDGE_RESULT +common/hd_defs.py, Enum, HDEventList, HD_EVENT_DRY_SELF_TEST_PRESSURE_RESULT +common/hd_defs.py, Enum, HDEventList, HD_EVENT_WET_SELF_TEST_DISPLACEMENT_RESULT +common/hd_defs.py, Enum, HDEventList, HD_EVENT_CPU_RAM_ERROR_STATUS +common/hd_defs.py, Enum, HDEventList, HD_EVENT_CAL_RECORD_UPDATE +common/hd_defs.py, Enum, HDEventList, HD_EVENT_SYSTEM_RECORD_UPDATE +common/hd_defs.py, Enum, HDEventList, HD_EVENT_SERVICE_UPDATE +common/hd_defs.py, Enum, HDEventList, HD_EVENT_USAGE_INFO_UPDATE +common/hd_defs.py, Enum, HDEventList, HD_EVENT_SW_CONFIG_UPDATE +common/hd_defs.py, Enum, HDEventList, HD_EVENT_BUTTON +common/hd_defs.py, Enum, HDEventList, HD_EVENT_SAFETY_LINE +common/hd_defs.py, Enum, HDEventList, HD_EVENT_RSRVR_1_LOAD_CELL_START_VALUES +common/hd_defs.py, Enum, HDEventList, HD_EVENT_RSRVR_1_LOAD_CELL_END_VALUES +common/hd_defs.py, Enum, HDEventList, HD_EVENT_RSRVR_2_LOAD_CELL_START_VALUES +common/hd_defs.py, Enum, HDEventList, HD_EVENT_RSRVR_2_LOAD_CELL_END_VALUES common/hd_defs.py, Enum, HDEventList, NUM_OF_EVENT_IDS common/hd_defs.py, Enum, HDEventDataType, HDEventDataType common/hd_defs.py, Enum, HDEventDataType, EVENT_DATA_TYPE_NONE