Index: dialin/hd/hd_events.py =================================================================== diff -u -racd09d02879e8add4cf7f694f5db8e423a76c341 -r36a7662dc9d72a7aa3eba334b5194cb1415fcd81 --- dialin/hd/hd_events.py (.../hd_events.py) (revision acd09d02879e8add4cf7f694f5db8e423a76c341) +++ dialin/hd/hd_events.py (.../hd_events.py) (revision 36a7662dc9d72a7aa3eba334b5194cb1415fcd81) @@ -46,6 +46,7 @@ # Define the dictionaries self._hd_event_dictionary = dict() self._hd_event_data_type = dict() + self.hd_event_timestamp = 0.0 # Dictionary of the mode as key and the sub mode states enum class as the value self._hd_op_mode_2_sub_mode = {HDOpModes.MODE_FAUL.name: HDFaultStates, @@ -133,8 +134,8 @@ return list_of_events - @publish(['_hd_event_dictionary']) - def _handler_events_sync(self, message): + @publish(["hd_event_timestamp", '_hd_event_dictionary']) + def _handler_events_sync(self, message, timestamp=0.0): """ Handles published events message @@ -233,3 +234,4 @@ # Update event dictionary self._hd_event_dictionary[event_state_name].append(event_tuple) + self.hd_event_timestamp = timestamp Index: dialin/hd/post_treatment.py =================================================================== diff -u -r21cc5bfbf3079f194f7bad44e87146da5a986226 -r36a7662dc9d72a7aa3eba334b5194cb1415fcd81 --- dialin/hd/post_treatment.py (.../post_treatment.py) (revision 21cc5bfbf3079f194f7bad44e87146da5a986226) +++ dialin/hd/post_treatment.py (.../post_treatment.py) (revision 36a7662dc9d72a7aa3eba334b5194cb1415fcd81) @@ -51,7 +51,7 @@ self.can_interface.register_receiving_publication_function(DenaliChannels.hd_sync_broadcast_ch_id, MsgIds.MSG_ID_HD_POST_TREATMENT_STATE.value, self._handler_post_treatment_sub_mode_sync) - self.hd_post_treatment_state = 0.0 + self.hd_post_treatment_state_timestamp = 0.0 self.post_treatment_sub_mode = 0 self.post_treatment_drain_state = 0 @@ -61,7 +61,7 @@ """ return self.post_treatment_sub_mode - @publish(["hd_post_treatment_state","post_treatment_sub_mode", "post_treatment_drain_state"]) + @publish(["hd_post_treatment_state_timestamp","post_treatment_sub_mode", "post_treatment_drain_state"]) def _handler_post_treatment_sub_mode_sync(self, message, timestamp=0.0): """ Handles published post treatment sub mode data messages. Sub mode data is also captured for reference. @@ -75,5 +75,5 @@ index = MsgFieldPositions.START_POS_FIELD_1 self.post_treatment_sub_mode, index = bytearray_to_integer(payload, index, False) self.post_treatment_drain_state, index = bytearray_to_integer(payload, index, False) - self.hd_post_treatment_state = timestamp + self.hd_post_treatment_state_timestamp = timestamp Index: dialin/hd/pressure_occlusion.py =================================================================== diff -u -racd09d02879e8add4cf7f694f5db8e423a76c341 -r36a7662dc9d72a7aa3eba334b5194cb1415fcd81 --- dialin/hd/pressure_occlusion.py (.../pressure_occlusion.py) (revision acd09d02879e8add4cf7f694f5db8e423a76c341) +++ dialin/hd/pressure_occlusion.py (.../pressure_occlusion.py) (revision 36a7662dc9d72a7aa3eba334b5194cb1415fcd81) @@ -44,6 +44,7 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_pressure_occlusion_sync) + self.hd_pressure_occlusion_timestamp = 0.0 self.arterial_pressure = 0.0 self.venous_pressure = 0.0 self.blood_pump_occlusion = 0 @@ -72,13 +73,12 @@ return self.blood_pump_occlusion @publish([ + "hd_pressure_occlusion_timestamp", "arterial_pressure", "venous_pressure", "blood_pump_occlusion", - "dialysate_inlet_pump_occlusion", - "dialysate_outlet_pump_occlusion" ]) - def _handler_pressure_occlusion_sync(self, message): + def _handler_pressure_occlusion_sync(self, message, timestamp=0.0): """ Handles published pressure & occlusion data messages. Pressure data are captured for reference. @@ -101,8 +101,7 @@ self.arterial_pressure = art[0] self.venous_pressure = ven[0] self.blood_pump_occlusion = bp[0] - self.dialysate_inlet_pump_occlusion = dpi[0] - self.dialysate_outlet_pump_occlusion = dpo[0] + self.hd_pressure_occlusion_timestamp = timestamp def cmd_arterial_pressure_measured_override(self, pres: float, reset: int = NO_RESET) -> int: """ Index: dialin/hd/reservoirs.py =================================================================== diff -u -racd09d02879e8add4cf7f694f5db8e423a76c341 -r36a7662dc9d72a7aa3eba334b5194cb1415fcd81 --- dialin/hd/reservoirs.py (.../reservoirs.py) (revision acd09d02879e8add4cf7f694f5db8e423a76c341) +++ dialin/hd/reservoirs.py (.../reservoirs.py) (revision 36a7662dc9d72a7aa3eba334b5194cb1415fcd81) @@ -54,6 +54,7 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_reservoirs_sync) + self.hd_reservoirs_timestamp = 0.0 self.reservoir_state = 0 self.active_reservoir_uf_ml = 0.0 self.active_reservoir_spent_vol_ml = 0.0 @@ -64,9 +65,9 @@ self.temp_remove_fill_flow = 0.0 - @publish(['reservoir_state', 'active_reservoir_uf_ml', 'active_reservoir_spent_vol_ml', 'dilution_level_pct', + @publish(['hd_reservoirs_timestamp', 'reservoir_state', 'active_reservoir_uf_ml', 'active_reservoir_spent_vol_ml', 'dilution_level_pct', 'recirculation_level_pct', 'time_depletion', 'time_wait_to_fill', 'temp_remove_fill_flow']) - def _handler_reservoirs_sync(self, message): + def _handler_reservoirs_sync(self, message, timestamp=0.0): """ Handles published reservoir data messages. Reservoir data are captured for reference. @@ -94,3 +95,5 @@ self.temp_remove_fill_flow = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] + self.hd_reservoirs_timestamp = timestamp + Index: dialin/hd/rtc.py =================================================================== diff -u -r68418c949ee594c0f28b358c674a26f49eb244e6 -r36a7662dc9d72a7aa3eba334b5194cb1415fcd81 --- dialin/hd/rtc.py (.../rtc.py) (revision 68418c949ee594c0f28b358c674a26f49eb244e6) +++ dialin/hd/rtc.py (.../rtc.py) (revision 36a7662dc9d72a7aa3eba334b5194cb1415fcd81) @@ -48,6 +48,8 @@ channel_id = DenaliChannels.hd_sync_broadcast_ch_id msg_id = MsgIds.MSG_ID_RTC_EPOCH.value self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_rtc_epoch) + + self.hd_rtc_timestamp = 0.0 self.rtc_epoch = 0 def get_rtc_epoch(self): @@ -58,8 +60,8 @@ """ return self.rtc_epoch - @publish(["rtc_epoch"]) - def _handler_rtc_epoch(self, message): + @publish(["hd_rtc_timestamp","rtc_epoch"]) + def _handler_rtc_epoch(self, message, timestamp=0.0): """ Publishes the rtc time in epoch @@ -69,6 +71,7 @@ epoch = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] self.rtc_epoch = epoch + self.hd_rtc_timestamp = timestamp def cmd_stop_rtc(self): """