Index: dialin/ui/hd_simulator.py =================================================================== diff -u -r0c506add6ec9f3d394780bb584a92090b5f34a7c -r1b10ed1c26b1c0f3758af1da0ad25895c18ee965 --- dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 0c506add6ec9f3d394780bb584a92090b5f34a7c) +++ dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 1b10ed1c26b1c0f3758af1da0ad25895c18ee965) @@ -484,7 +484,7 @@ ## TBD!! Is this needed to clear UI from presenting old data? self.cmd_set_treatment_saline_bolus_data(target=self.demo_treatment_params.data_int[ TreatmentParameters.TREATMENT_PARAM_SALINE_BOLUS_VOLUME_ML.value], - cumulative=0.0, delivered=0.0) + cumulative=0.0, delivered=0.0, dpi_2_bld_flush_volume=0.0) self.demoTimedIncValue = PreTreatmentDrySelfTestsStates.DRY_SELF_TESTS_START_STATE.value self.demoSelection = 9 # TBD setup event to change to test completions self.demoCount = 4 # 4 timer ticks each for 12-16 TBD?? @@ -1031,7 +1031,9 @@ venous_min_limit=venous_min_limit, venous_max_limit=venous_max_limit, arterial_long_filtered_pressure=self.arterial_pressure_mmHg, - venous_long_filtered_pressure=self.venous_pressure_mmHg ) + venous_long_filtered_pressure=self.venous_pressure_mmHg, + blood_pump_occlusion_long_filter=0.0, + partial_occlusion_base_line=0.0) # MSG_ID_RTC_EPOCH # tbd! @@ -1047,7 +1049,9 @@ rot_speed=0.0, mot_speed=0.0, mc_speed=0.0, mc_current=0.0, pwm=0.0, corr_offset=0.0, pump_calculated_rate=0.0, uf_calculated_rate=0.0, - rotor_hall=0,current_uf_rate= ( self.uf_rate_l_per_sec * 60 )) + rotor_hall=0, + current_uf_rate=(self.uf_rate_l_per_sec * 60), + dialysate_inlet_pump_state=0) # MSG_ID_LOAD_CELL_READINGS @@ -1294,7 +1298,9 @@ venous_min_limit= PressureRanges.VENOUS_PRESSURE_LIMIT_MIN_MMHG, venous_max_limit= PressureRanges.VENOUS_PRESSURE_LIMIT_MAX_MMHG, arterial_long_filtered_pressure=self.arterial_pressure_mmHg, - venous_long_filtered_pressure=self.venous_pressure_mmHg ) + venous_long_filtered_pressure=self.venous_pressure_mmHg, + blood_pump_occlusion_long_filter=0.0, + partial_occlusion_base_line=0.0) self.message_queue_mutex.release() self.message_queue_mutex.acquire() self.cmd_set_treatment_blood_flow_rate(flow_set_pt= self.blood_prime_set_point_blood_flow, @@ -2177,7 +2183,8 @@ rot_speed: float, mot_speed: float, mc_speed: float, mc_current: float, pwm: float, corr_offset: float, pump_calculated_rate: float, uf_calculated_rate: float, - rotor_hall: int, current_uf_rate ) -> None: + rotor_hall: int, current_uf_rate: float, + dialysate_inlet_pump_state: int) -> None: """ the Outlet Flow Data message setter/sender method @@ -2192,10 +2199,12 @@ @param mc_speed: (float) MC Speed @param mc_current: (float) MC Current @param pwm: (float) PWM - @param corr_offset: correction offset for calculated DPo flow rate. - @param pump_calculated_rate: calculated DPo flow rate. - @param uf_calculated_rate: calculated UF rate. - @param rotor_hall: rotor hall sensor state (1=home, 0=not home) + @param corr_offset: (float) correction offset for calculated DPo flow rate. + @param pump_calculated_rate: (float) calculated DPo flow rate. + @param uf_calculated_rate: (float) calculated UF rate. + @param rotor_hall: (int) rotor hall sensor state (1=home, 0=not home) + @param current_uf_rate: (float) current UF rate + @param dialysate_inlet_pump_state: (int) dialysate inlet pump state @return: none """ @@ -2211,6 +2220,7 @@ payload += float_to_bytearray(uf_calculated_rate) payload += integer_to_bytearray(rotor_hall) payload += float_to_bytearray(current_uf_rate) + payload += integer_to_bytearray(dialysate_inlet_pump_state) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_DIALYSATE_OUT_FLOW_DATA.value, @@ -2220,8 +2230,11 @@ def cmd_set_pressure_occlusion_data(self, arterial_prs: float, venous_prs: float, blood_pump_occlusion: int, pressure_limit_state: int, arterial_min_limt: int, arterial_max_limt: int, - venous_min_limit: int, venous_max_limit: int, arterial_long_filtered_pressure: float, - venous_long_filtered_pressure: float) -> None: + venous_min_limit: int, venous_max_limit: int, + arterial_long_filtered_pressure: float, + venous_long_filtered_pressure: float, + blood_pump_occlusion_long_filter: float, + partial_occlusion_base_line: float) -> None: """ the Pressure/Occlusion Data messages setter/sender method @@ -2239,6 +2252,8 @@ @param : (int) Current venous maximum pressure limit @param : (float) Latest long filtered arterial pressure @param : (float) Latest long filtered venous pressure + @param : (float) blood pump occlusion long filter + @param : (float) partial occlusion baseline @return: none """ @@ -2252,6 +2267,8 @@ payload += integer_to_bytearray(venous_max_limit) payload += float_to_bytearray(arterial_long_filtered_pressure) payload += float_to_bytearray(venous_long_filtered_pressure) + payload += float_to_bytearray(blood_pump_occlusion_long_filter) + payload += float_to_bytearray(partial_occlusion_base_line) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_PRESSURE_OCCLUSION_DATA.value, @@ -2349,7 +2366,8 @@ self.can_interface.send(message, 0) - def cmd_set_treatment_saline_bolus_data(self, target: int, cumulative: float, delivered: float) -> None: + def cmd_set_treatment_saline_bolus_data(self, target: int, cumulative: float, delivered: float, + dpi_2_bld_flush_volume: float) -> None: """ the Treatment Saline Bolus Data message sender method | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | #1:(U32) | #2:(F32) | #3:(F32) | @@ -2359,12 +2377,14 @@ @param target: (int) Saline Bolus Target Volume @param cumulative: (float) Saline Bolus Cumulative Volume @param delivered: (float) Saline Bolus Delivered Volume + @param dpi_2_bld_flush_volume: (float) dialysate inlet pump to blood leak flush volume @return: none """ payload = integer_to_bytearray(target) payload += float_to_bytearray(cumulative) payload += float_to_bytearray(delivered) + payload += float_to_bytearray(dpi_2_bld_flush_volume) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_SALINE_BOLUS_DATA.value, @@ -3356,35 +3376,28 @@ .format(ui_major, ui_minor, ui_micro, ui_build, ui_compatibility)) def cmd_send_hd_blood_leak_data(self, blood_leak_status: int, blood_leak_state: int, - blood_leak_zero_status_counter: int, blood_leak_counter: int, - blood_leak_zeroed_status: int, blood_leak_detect_set_point: int, - blood_leak_detect_level: int, blood_leak_st_count: int, - blood_leak_led_intensity: int, blood_leak_register_counter: int) -> None: + bloodLeakPersistentCounter: int, bloodLeakSerialCommState: int, + bloodLeakIntensity: int, bloodLeakDetect: int, + bloodLeakIntensityMovingAvg: float) -> None: """ A simulated HD broadcast message of blood leak data. @param blood_leak_status: (int) Blood leak status @param blood_leak_state: (int) Blood leak state - @param blood_leak_zero_status_counter: (int) Blood leak zero status counter - @param blood_leak_counter: (int) Blood leak counter - @param blood_leak_zeroed_status: (int) Blood leak zeroed status - @param blood_leak_detect_set_point: (int) Blood leak detect set point - @param blood_leak_detect_level: (int) Blood leak detect level - @param blood_leak_st_count: (int) Blood leak st count - @param blood_leak_led_intensity: (int) Blood leak LED intensity - @param blood_leak_register_counter: (int) Blood leak register counter + @param bloodLeakPersistentCounter: (int) Blood leak detect persistent counter + @param bloodLeakSerialCommState: (int) Blood leak serial communication state + @param bloodLeakIntensity: (int) Blood leak raw intensity + @param bloodLeakDetect: (int) Blood leak detect blood detect + @param bloodLeakIntensityMovingAvg: (float) Blood leak intensity moving average @return: None """ payload = unsigned_integer_to_bytearray(blood_leak_status) payload += unsigned_integer_to_bytearray(blood_leak_state) - payload += unsigned_integer_to_bytearray(blood_leak_zero_status_counter) - payload += unsigned_integer_to_bytearray(blood_leak_counter) - payload += unsigned_integer_to_bytearray(blood_leak_zeroed_status) - payload += unsigned_integer_to_bytearray(blood_leak_detect_set_point) - payload += unsigned_integer_to_bytearray(blood_leak_detect_level) - payload += unsigned_integer_to_bytearray(blood_leak_st_count) - payload += unsigned_integer_to_bytearray(blood_leak_led_intensity) - payload += unsigned_integer_to_bytearray(blood_leak_register_counter) + payload += unsigned_integer_to_bytearray(bloodLeakPersistentCounter) + payload += unsigned_integer_to_bytearray(bloodLeakSerialCommState) + payload += unsigned_integer_to_bytearray(bloodLeakIntensity) + payload += unsigned_integer_to_bytearray(bloodLeakDetect) + payload += float_to_bytearray(bloodLeakIntensityMovingAvg) message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_sync_broadcast_ch_id, message_id=MsgIds.MSG_ID_HD_BLOOD_LEAK_DATA.value,