Index: dialin/hd/blood_leak.py =================================================================== diff -u -r03e99e83ed0ce0938576d9339ac67c228673190e -rfaf6efcc6770d7fa36ef0cbaeae7bb6bd664691c --- dialin/hd/blood_leak.py (.../blood_leak.py) (revision 03e99e83ed0ce0938576d9339ac67c228673190e) +++ dialin/hd/blood_leak.py (.../blood_leak.py) (revision faf6efcc6770d7fa36ef0cbaeae7bb6bd664691c) @@ -96,6 +96,8 @@ self.blood_leak_intensity = 0 self.blood_leak_blood_detect = 0 self.blood_leak_intensity_moving_average = 0.0 + self.blood_leak_in_range_drift_status = 0 + self.blood_leak_upper_range_drift_status = 0 self.blood_leak_time_elapsed_since_last_drift_zero_ms = 0 for cmd in EmbModeCommands.__members__: @@ -136,7 +138,9 @@ @publish(['hd_blood_leak_status_timestamp', 'blood_leak_status', 'blood_leak_state', 'blood_leak_error_persistent_ctr', 'blood_leak_serial_comm_state', 'blood_leak_intensity', 'blood_leak_blood_detect', 'blood_leak_intensity_moving_average', 'blood_leak_time_since_last_zero_ms', - 'blood_leak_time_since_last_upper_zero_ms']) + 'blood_leak_time_since_last_upper_zero_ms', + 'blood_leak_in_range_drift_status', + 'blood_leak_upper_range_drift_status']) def _handler_blood_leak_sync(self, message, timestamp=0.0): """ Handles published blood leak status messages. Blood leak status is captured @@ -161,6 +165,10 @@ message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] self.blood_leak_time_elapsed_since_last_drift_zero_ms = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] + self.blood_leak_in_range_drift_status = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] + self.blood_leak_upper_range_drift_status = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] self.hd_blood_leak_status_timestamp = timestamp def cmd_blood_leak_detector_override(self, detected: int, reset=NO_RESET): Index: dialin/hd/treatment.py =================================================================== diff -u -r5cd84d5bb23f6205a61c7a931ee43f40aa3d4a44 -rfaf6efcc6770d7fa36ef0cbaeae7bb6bd664691c --- dialin/hd/treatment.py (.../treatment.py) (revision 5cd84d5bb23f6205a61c7a931ee43f40aa3d4a44) +++ dialin/hd/treatment.py (.../treatment.py) (revision faf6efcc6770d7fa36ef0cbaeae7bb6bd664691c) @@ -154,6 +154,7 @@ self.saline_bolus_bol_vol = 0.0 self.dialysate_inlet_pump_2_bld_flush_vol_ml = 0.0 self.reservoir_2_dialysate_inlet_pump_flush_vol_ml = 0.0 + self.has_blood_leak_after_rsrvr_switch_been_rqstd = 0 # blood prime status self.blood_prime_tgt_vol = 0.0 self.blood_prime_cum_vol = 0.0 @@ -606,7 +607,8 @@ "saline_bolus_cum_vol", "saline_bolus_bol_vol", "dialysate_inlet_pump_2_bld_flush_vol_ml", - "reservoir_2_dialysate_inlet_pump_flush_vol_ml" + "reservoir_2_dialysate_inlet_pump_flush_vol_ml", + "has_blood_leak_after_rsrvr_switch_been_rqstd" ]) def _handler_saline_bolus_data_sync(self, message, timestamp=0.0): """ @@ -627,12 +629,15 @@ message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4])) rsvr_dpi_vol = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4])) + rsrvr_switch = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5])) self.saline_bolus_max_vol = mxm[0] self.saline_bolus_cum_vol = cum[0] self.saline_bolus_bol_vol = bol[0] self.dialysate_inlet_pump_2_bld_flush_vol_ml = vol[0] self.reservoir_2_dialysate_inlet_pump_flush_vol_ml = rsvr_dpi_vol[0] + self.has_blood_leak_after_rsrvr_switch_been_rqstd = rsrvr_switch[0] self.hd_saline_bolus_timestamp = timestamp @publish([