Index: dialin/dg/dialysate_fill.py =================================================================== diff -u -rcadb919bce9140638cae552306f374961833dafc -rb0e1d3a812ead0ab2666523486118bfa2de413e9 --- dialin/dg/dialysate_fill.py (.../dialysate_fill.py) (revision cadb919bce9140638cae552306f374961833dafc) +++ dialin/dg/dialysate_fill.py (.../dialysate_fill.py) (revision b0e1d3a812ead0ab2666523486118bfa2de413e9) @@ -7,8 +7,8 @@ # # @file dialysate_fill.py # -# @author (last) Dara Navaei -# @date (last) 02-Jan-2023 +# @author (last) Sean Nash +# @date (last) 20-Feb-2023 # @author (original) Hung Nguyen # @date (original) 10-Mar-2022 # Index: dialin/dg/flow_sensors.py =================================================================== diff -u -rceb2d67297d31ac7c816f01cd4f836f071c1d39a -rb0e1d3a812ead0ab2666523486118bfa2de413e9 --- dialin/dg/flow_sensors.py (.../flow_sensors.py) (revision ceb2d67297d31ac7c816f01cd4f836f071c1d39a) +++ dialin/dg/flow_sensors.py (.../flow_sensors.py) (revision b0e1d3a812ead0ab2666523486118bfa2de413e9) @@ -7,8 +7,8 @@ # # @file flow_sensors.py # -# @author (last) Dara Navaei -# @date (last) 30-Sep-2022 +# @author (last) Sean Nash +# @date (last) 07-Mar-2023 # @author (original) Dara Navaei # @date (original) 19-Sep-2022 # @@ -55,6 +55,8 @@ self.measured_dialysate_flow_LPM = 0.0 self.measured_ro_flow_with_cp_LPM = 0.0 self.dg_flow_sensors_timestamp = 0.0 + self.measured_raw_ro_flow_LPM = 0.0 + self.measured_raw_dialysate_flow_LPM = 0.0 if self.can_interface is not None: channel_id = DenaliChannels.dg_sync_broadcast_ch_id @@ -83,17 +85,40 @@ """ return self.measured_ro_flow_with_cp_LPM - @publish(["dg_flow_sensors_timestamp","measured_ro_flow_LPM", "measured_dialysate_flow_LPM", "measured_ro_flow_with_cp_LPM"]) - def _handler_flow_sensors_sync(self, message, timestamp=0.0): + def get_measured_raw_ro_flow(self): + """ + Gets the measured raw (uncalibrated) flow value from DG's ro pump (FMP) + @return: The raw RO flow rate in L/min + """ + return self.measured_raw_ro_flow_LPM + def get_measured_raw_dialysate_flow(self): + """ + Gets the measured raw (uncalibrated) flow value from DG's dialydate flow sensor (FMD) + @return: The raw dialysate flow rate in L/min + """ + return self.measured_raw_dialysate_flow_LPM + + @publish(["measured_ro_flow_LPM", "measured_dialysate_flow_LPM", "measured_ro_flow_with_cp_LPM", + "measured_raw_ro_flow_LPM", "measured_raw_dialysate_flow_LPM","dg_flow_sensors_timestamp"]) + def _handler_flow_sensors_sync(self, message, timestamp=0.0): + """ + Handles incoming DG flow sensor broadcast messages and records latest reported flow rates. + @return: none + """ self.measured_ro_flow_LPM = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] self.measured_ro_flow_with_cp_LPM = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] self.measured_dialysate_flow_LPM = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] + self.measured_raw_ro_flow_LPM = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] + self.measured_raw_dialysate_flow_LPM = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] self.dg_flow_sensors_timestamp = timestamp + def cmd_measured_flow_sensor_value_lpm_override(self, sensor_id: int, rate: float, reset: int = NO_RESET) -> int: """ Constructs and sends the flow sensor value override command Index: dialin/hd/blood_flow.py =================================================================== diff -u -rcadb919bce9140638cae552306f374961833dafc -rb0e1d3a812ead0ab2666523486118bfa2de413e9 --- dialin/hd/blood_flow.py (.../blood_flow.py) (revision cadb919bce9140638cae552306f374961833dafc) +++ dialin/hd/blood_flow.py (.../blood_flow.py) (revision b0e1d3a812ead0ab2666523486118bfa2de413e9) @@ -8,7 +8,7 @@ # @file blood_flow.py # # @author (last) Sean Nash -# @date (last) 22-Sep-2022 +# @date (last) 19-Feb-2023 # @author (original) Peter Lucia # @date (original) 02-Apr-2020 # Index: dialin/hd/dialysate_inlet_flow.py =================================================================== diff -u -rcadb919bce9140638cae552306f374961833dafc -rb0e1d3a812ead0ab2666523486118bfa2de413e9 --- dialin/hd/dialysate_inlet_flow.py (.../dialysate_inlet_flow.py) (revision cadb919bce9140638cae552306f374961833dafc) +++ dialin/hd/dialysate_inlet_flow.py (.../dialysate_inlet_flow.py) (revision b0e1d3a812ead0ab2666523486118bfa2de413e9) @@ -8,7 +8,7 @@ # @file dialysate_inlet_flow.py # # @author (last) Sean Nash -# @date (last) 27-Oct-2022 +# @date (last) 19-Feb-2023 # @author (original) Peter Lucia # @date (original) 02-Apr-2020 # Index: tools/Code_Report.csv =================================================================== diff -u -ra8e8b4a26cec5f32a443390f7e331965379b78be -rb0e1d3a812ead0ab2666523486118bfa2de413e9 --- tools/Code_Report.csv (.../Code_Report.csv) (revision a8e8b4a26cec5f32a443390f7e331965379b78be) +++ tools/Code_Report.csv (.../Code_Report.csv) (revision b0e1d3a812ead0ab2666523486118bfa2de413e9) @@ -97,11 +97,13 @@ ./dg/fans.py, Function, get_fan_inlet_1_rpm(self): ./dg/fans.py, Function, get_fan_inlet_2_rpm(self): ./dg/fans.py, Function, get_fan_inlet_3_rpm(self): +./dg/flow_sensors.py, Function, cmd_measured_flow_sensor_value_lpm_override(self, sensor_id: int, rate: float, reset: int = NO_RESET) -> int: ./dg/flow_sensors.py, Function, cmd_flow_sensor_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: ./dg/flow_sensors.py, Function, get_measured_dialysate_flow_rate(self): ./dg/flow_sensors.py, Function, get_measured_ro_flow(self): ./dg/flow_sensors.py, Function, get_measured_ro_flow_with_cp(self): -./dg/flow_sensors.py, Function, cmd_measured_flow_sensor_value_lpm_override(self, sensor_id: int, rate: float, reset: int = NO_RESET) -> int: +./dg/flow_sensors.py, Function, get_measured_raw_ro_flow(self): +./dg/flow_sensors.py, Function, get_measured_raw_dialysate_flow(self): ./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_state: int, reset: int = NO_RESET) -> int: @@ -783,6 +785,8 @@ dg/flow_sensors.py, Variable, measured_ro_flow_with_cp_LPM dg/flow_sensors.py, Variable, dg_flow_sensors_timestamp dg/fluid_leak.py, Variable, dg_fluid_leak_timestamp +dg/flow_sensors.py, Variable, measured_raw_ro_flow_LPM +dg/flow_sensors.py, Variable, measured_raw_dialysate_flow_LPM dg/fluid_leak.py, Variable, fluid_leak_state dg/flush.py, Variable, flush_state dg/flush.py, Variable, overall_elapsed_time