Index: dialin/hd/blood_leak.py =================================================================== diff -u -r8474f8e345f165187d4dde17840575ee4e98a9b4 -r3c2f6dc4e038ee3d7758dc481c3b4ce1de7f9a03 --- dialin/hd/blood_leak.py (.../blood_leak.py) (revision 8474f8e345f165187d4dde17840575ee4e98a9b4) +++ dialin/hd/blood_leak.py (.../blood_leak.py) (revision 3c2f6dc4e038ee3d7758dc481c3b4ce1de7f9a03) @@ -57,6 +57,14 @@ self.blood_leak_status = self.NO_BLOOD_LEAK_DETECTED self.blood_leak_state = self.BLOOD_LEAK_INIT_STATE + self.blood_leak_zeroed_status_counter = 0 + self.blood_leak_counter = 0 + self.blood_leak_zeroed_status = 0 + self.blood_leak_detect_set_point = 0 + self.blood_leak_detect_level = 0 + self.blood_leak_st_count = 0 + self.blood_leak_led_intensity = 0 + self.blood_leak_register_counter = 0 def get_blood_leak_status(self): """ @@ -74,6 +82,70 @@ """ return self.blood_leak_state + def get_blood_leak_zero_status_counter(self): + """ + Gets the current blood leak zero status counter + + @return: integer - blood leak zero status counter + """ + return self.blood_leak_zeroed_status_counter + + def get_blood_leak_counter(self): + """ + Gets the current blood leak counter + + @return: integer - blood leak counter + """ + return self.blood_leak_counter + + def get_blood_leak_zeroed_status(self): + """ + Gets the current blood leak zeroed status + + @return: integer - blood leak zeroed status + """ + return self.blood_leak_zeroed_status + + def get_blood_leak_detect_set_point(self): + """ + Gets the current blood leak detect set point + + @return: integer - blood leak detect set point + """ + return self.blood_leak_detect_set_point + + def get_blood_leak_detect_level(self): + """ + Gets the current blood leak detect level + + @return: integer - blood leak detect level + """ + return self.blood_leak_detect_level + + def get_blood_leak_st_count(self): + """ + Gets the current blood leak st count + + @return: integer - blood leak st count + """ + return self.blood_leak_st_count + + def get_blood_leak_led_intensity(self): + """ + Gets the current blood leak LED intensity + + @return: integer - blood leak LED intensity + """ + return self.blood_leak_led_intensity + + def get_blood_leak_register_counter(self): + """ + Gets the current blood leak register counter + + @return: integer - blood leak register counter + """ + return self.blood_leak_register_counter + @publish("blood_leak_status") def _handler_blood_leak_sync(self, message): """ @@ -84,14 +156,27 @@ @return: None """ - status = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1])) - state = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2])) + self.blood_leak_status = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] + self.blood_leak_state = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] + self.blood_leak_zeroed_status_counter = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] + self.blood_leak_counter = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] + self.blood_leak_zeroed_status = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] + self.blood_leak_detect_set_point = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] + self.blood_leak_detect_level = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] + self.blood_leak_st_count = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] + self.blood_leak_led_intensity = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] + self.blood_leak_register_counter = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] - self.blood_leak_status = status[0] - self.blood_leak_state = state[0] - def cmd_blood_leak_detector_override(self, detected, reset=NO_RESET): """ Constructs and sends the blood leak detector state override command @@ -132,7 +217,6 @@ @return: 1 if successful, zero otherwise """ - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, message_id=MsgIds.MSG_ID_HD_BLOOD_LEAK_ZERO_REQUEST.value) Index: tests/hd_blood_leak_data.py =================================================================== diff -u -r8474f8e345f165187d4dde17840575ee4e98a9b4 -r3c2f6dc4e038ee3d7758dc481c3b4ce1de7f9a03 --- tests/hd_blood_leak_data.py (.../hd_blood_leak_data.py) (revision 8474f8e345f165187d4dde17840575ee4e98a9b4) +++ tests/hd_blood_leak_data.py (.../hd_blood_leak_data.py) (revision 3c2f6dc4e038ee3d7758dc481c3b4ce1de7f9a03) @@ -18,14 +18,44 @@ sys.path.append("..") from dialin.hd.hemodialysis_device import HD from time import sleep +from datetime import datetime + +def get_blood_leak_info(): + info = ('Blood_leak_state, {}, Blood_leak_status, {}, Blood_leak_zero_status_counter, {}, Blood_leak_counter, {}, ' + 'Blood_leak_zeroed_status, {}, Blood_leak_detect_set_point, {}, Blood_leak_detect_level, {}, ' + 'Blood_leak_st_count, {}, Blood_leak_led_intensity, {}, Blood_leak_register_counter, {}, ' + .format(hd.blood_leak.get_blood_leak_state(), hd.blood_leak.get_blood_leak_status(), + hd.blood_leak.get_blood_leak_zero_status_counter(), hd.blood_leak.get_blood_leak_counter(), + hd.blood_leak.get_blood_leak_zeroed_status(), hd.blood_leak.get_blood_leak_detect_set_point(), + hd.blood_leak.get_blood_leak_detect_level(), hd.blood_leak.get_blood_leak_st_count(), + hd.blood_leak.get_blood_leak_led_intensity(), hd.blood_leak.get_blood_leak_register_counter())) + return info + + if __name__ == "__main__": # Create an HD object called hd hd = HD() sleep(2) hd.cmd_log_in_to_hd() sleep(1) + + f = open("/home/fw/projects/dialin/tests/blood_leak.log", "w") + + try: + while True: + hd_blood_leak = get_blood_leak_info() + + var = str(datetime.now()) + ', ' + hd_blood_leak + '\r' + + print(var) + f.write(var) + sleep(1) + except KeyboardInterrupt: + f.close() + + """ hd.blood_leak.cmd_blood_leak_data_broadcast_interval_override(100) # Zero + Self-test state @@ -38,3 +68,4 @@ status = "Blood" print("Status = " + status, " State = " + str(hd.blood_leak.blood_leak_state)) sleep(0.1) + """ Index: tests/peter/test_dg_records.py =================================================================== diff -u -rbe5fbabd50dc31e5e5a5e4b99893fb8b92d016bd -r3c2f6dc4e038ee3d7758dc481c3b4ce1de7f9a03 --- tests/peter/test_dg_records.py (.../test_dg_records.py) (revision be5fbabd50dc31e5e5a5e4b99893fb8b92d016bd) +++ tests/peter/test_dg_records.py (.../test_dg_records.py) (revision 3c2f6dc4e038ee3d7758dc481c3b4ce1de7f9a03) @@ -232,9 +232,9 @@ print(dg.calibration_record.dg_calibration_record) #dg.scheduled_runs_record.cmd_reset_dg_calibration_record() #sleep(0.25) - dg.system_record.cmd_reset_dg_system_record() - sleep(0.25) - dg.service_record.cmd_reset_dg_service_record() + #dg.system_record.cmd_reset_dg_system_record() + #sleep(0.25) + #dg.service_record.cmd_reset_dg_service_record() def test_dg_service_record():