From 3f1f16d5b24c0ffae1c5d85e8b2fee1c11c6d6ea Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" <robin.mueller.m@gmail.com> Date: Sat, 25 Apr 2020 22:34:28 +0200 Subject: [PATCH] print functions part of sender/receiver now --- comIF/obsw_ethernet_com_if.py | 12 ++--- comIF/obsw_serial_com_if.py | 48 +++++++++---------- sendreceive/obsw_command_sender_receiver.py | 5 ++ .../obsw_multiple_commands_sender_receiver.py | 4 +- .../obsw_single_command_sender_receiver.py | 3 +- sendreceive/obsw_tm_listener.py | 23 ++++----- tm/obsw_pus_tm_base.py | 22 ++++----- 7 files changed, 62 insertions(+), 55 deletions(-) diff --git a/comIF/obsw_ethernet_com_if.py b/comIF/obsw_ethernet_com_if.py index 343c912..35e14d0 100644 --- a/comIF/obsw_ethernet_com_if.py +++ b/comIF/obsw_ethernet_com_if.py @@ -75,21 +75,21 @@ class EthernetComIF(CommunicationInterface): tm_info_queue.append(packet_info) return tm_info_queue - def receive_telemetry_and_store_tm(self, tmQueue: PusTmQueueT) -> Union[None, PusTmQueueT]: + def receive_telemetry_and_store_tm(self, tm_queue: PusTmQueueT) -> Union[None, PusTmQueueT]: packets = self.receive_telemetry() for packet in packets: - tmQueue.append(packet) - return tmQueue + tm_queue.append(packet) + return tm_queue - def receive_telemetry_and_store_tuple(self, tmTupleQueue): + def receive_telemetry_and_store_tuple(self, tm_tuple_queue): packet_list = self.receive_telemetry() for packet in packet_list: packet_info = packet.pack_tm_information() tm_tuple = (packet_info, packet) if g.G_PRINT_TM: self.tmtc_printer.print_telemetry(packet) - tmTupleQueue.append(tm_tuple) - return tmTupleQueue + tm_tuple_queue.append(tm_tuple) + return tm_tuple_queue def set_up_socket(self): """ diff --git a/comIF/obsw_serial_com_if.py b/comIF/obsw_serial_com_if.py index 0bfafb7..9b59cb1 100644 --- a/comIF/obsw_serial_com_if.py +++ b/comIF/obsw_serial_com_if.py @@ -118,27 +118,27 @@ class SerialComIF(CommunicationInterface): self.number_of_packets = self.number_of_packets + 1 return end_index - def receive_telemetry_and_store_tm(self, tm_queue: PusTmQueueT) -> Union[None, PusTmQueueT]: - (packet_received, pus_packets) = self.poll_interface() - if packet_received: - for packet in pus_packets: - tm_queue.append(packet) - return tm_queue - - def receive_telemetry_and_store_info(self, tm_info_queue: PusTmInfoQueueT) -> \ - Union[None, PusTmInfoQueueT]: - (packet_received, pus_packets) = self.poll_interface() - if packet_received: - for packet in pus_packets: - tm_info = packet.pack_tm_information() - tm_info_queue.append(tm_info) - return tm_info_queue - - def receive_telemetry_and_store_tuple(self, tm_tuple_queue: PusTmTupleQueueT) -> \ - Union[None, PusTmTupleQueueT]: - (packet_received, pus_packets) = self.poll_interface() - if packet_received: - for packet in pus_packets: - tm_info = packet.pack_tm_information() - tm_tuple_queue.append((tm_info, packet)) - return tm_tuple_queue + # def receive_telemetry_and_store_tm(self, tm_queue: PusTmQueueT) -> Union[None, PusTmQueueT]: + # (packet_received, pus_packets) = self.poll_interface() + # if packet_received: + # for packet in pus_packets: + # tm_queue.append(packet) + # return tm_queue + # + # def receive_telemetry_and_store_info(self, tm_info_queue: PusTmInfoQueueT) -> \ + # Union[None, PusTmInfoQueueT]: + # (packet_received, pus_packets) = self.poll_interface() + # if packet_received: + # for packet in pus_packets: + # tm_info = packet.pack_tm_information() + # tm_info_queue.append(tm_info) + # return tm_info_queue + # + # def receive_telemetry_and_store_tuple(self, tm_tuple_queue: PusTmTupleQueueT) -> \ + # Union[None, PusTmTupleQueueT]: + # (packet_received, pus_packets) = self.poll_interface() + # if packet_received: + # for packet in pus_packets: + # tm_info = packet.pack_tm_information() + # tm_tuple_queue.append((tm_info, packet)) + # return tm_tuple_queue diff --git a/sendreceive/obsw_command_sender_receiver.py b/sendreceive/obsw_command_sender_receiver.py index f6ddc2d..70448a0 100644 --- a/sendreceive/obsw_command_sender_receiver.py +++ b/sendreceive/obsw_command_sender_receiver.py @@ -19,6 +19,7 @@ from comIF.obsw_com_interface import CommunicationInterface from utility.obsw_tmtc_printer import TmTcPrinter from sendreceive.obsw_tm_listener import TmListener from tc.obsw_pus_tc_base import TcQueueEntryT +from tm.obsw_pus_tm_factory import PusTmQueueT # pylint: disable=too-many-instance-attributes @@ -134,3 +135,7 @@ class CommandSenderReceiver: self._timeout_counter = self._timeout_counter + 1 self._start_time = time.time() time.sleep(0.5) + + def print_tm_queue(self, tm_queue: PusTmQueueT): + for tm_packet in tm_queue: + self._tmtc_printer.print_telemetry(tm_packet) diff --git a/sendreceive/obsw_multiple_commands_sender_receiver.py b/sendreceive/obsw_multiple_commands_sender_receiver.py index 8765d8e..aee4dab 100644 --- a/sendreceive/obsw_multiple_commands_sender_receiver.py +++ b/sendreceive/obsw_multiple_commands_sender_receiver.py @@ -95,13 +95,13 @@ class MultipleCommandSenderReceiver(SequentialCommandSenderReceiver): def __retrieve_listener_tm_tuple(self): if self._tm_listener.replyEvent.is_set(): - return self._tm_listener.tm_info_queue + return self._tm_listener.__tm_info_queue else: print("Multiple Command SenderReceiver: Configuration error," " reply event not set in TM listener") def __clear_listener_tm_info_queue(self): - self._tm_listener.tm_info_queue.clear() + self._tm_listener.__tm_info_queue.clear() @staticmethod def wait_for_last_replies_listening(wait_time: float): diff --git a/sendreceive/obsw_single_command_sender_receiver.py b/sendreceive/obsw_single_command_sender_receiver.py index 8c3fc16..d3e7fc2 100644 --- a/sendreceive/obsw_single_command_sender_receiver.py +++ b/sendreceive/obsw_single_command_sender_receiver.py @@ -51,6 +51,7 @@ class SingleCommandSenderReceiver(CommandSenderReceiver): # wait until reply is received super()._check_for_first_reply() if self._reply_received: - print("Single Command SenderReceiver: Reply received") self._tm_listener.mode_op_finished.set() + self.print_tm_queue(self._tm_listener.retrieve_tm_packet_queue()) + print("Single Command SenderReceiver: Reply received") print("Listening for packages ...") diff --git a/sendreceive/obsw_tm_listener.py b/sendreceive/obsw_tm_listener.py index 3131fa2..8501f4e 100644 --- a/sendreceive/obsw_tm_listener.py +++ b/sendreceive/obsw_tm_listener.py @@ -55,8 +55,8 @@ class TmListener: # if a reply has been received self.replyEvent = threading.Event() # Will be filled for the Unit Test - self.tm_info_queue = deque() - self.tm_packet_queue = deque() + self.__tm_info_queue = deque() + self.__tm_packet_queue = deque() def start(self): self.listener_thread.start() @@ -104,7 +104,7 @@ class TmListener: print("TM Listener: Reply sequence received!") self.replyEvent.set() elif self.mode_id == g.ModeList.UnitTest: - self.tm_info_queue = self.com_interface.receive_telemetry_and_store_info(self.tm_info_queue) + self.__tm_info_queue = self.com_interface.receive_telemetry_and_store_info(self.__tm_info_queue) self.replyEvent.set() def check_for_one_telemetry_sequence(self) -> bool: @@ -117,13 +117,13 @@ class TmListener: if tm_ready is False: return False else: - self.tm_packet_queue.append(self.com_interface.receive_telemetry()) + self.__tm_packet_queue.append(self.com_interface.receive_telemetry()) start_time = time.time() elapsed_time = 0 while elapsed_time < self.tm_timeout: tm_ready = self.com_interface.data_available(1.0) if tm_ready: - self.tm_packet_queue.append(self.com_interface.receive_telemetry()) + self.__tm_packet_queue.append(self.com_interface.receive_telemetry()) elapsed_time = time.time() - start_time # the timeout value can be set by special TC queue entries if wiretapping_packet handling # takes longer, but it is reset here to the global value @@ -132,14 +132,15 @@ class TmListener: return True def retrieve_tm_packet_queue(self): - return self.tm_packet_queue.copy() + return self.__tm_packet_queue.copy() @staticmethod - def retrieve_tm_info_queue(tm_info_queue_to_fill: PusTmInfoQueueT, tm_queue: PusTmQueueT): - while tm_queue.__len__() != 0: - tm_packet = tm_queue.pop() - tm_info_queue_to_fill.append(tm_packet.pack_tm_information()) + def retrieve_info_queue_from_packet_queue(tm_queue: PusTmQueueT, pus_info_queue_to_fill: PusTmInfoQueueT): + tm_queue_copy = tm_queue.copy() + while tm_queue_copy.__len__() != 0: + pus_packet = tm_queue_copy.pop() + pus_info_queue_to_fill.append(pus_packet.pack_tm_information()) def clear_tm_packet_queue(self): - self.tm_packet_queue.clear() + self.__tm_packet_queue.clear() diff --git a/tm/obsw_pus_tm_base.py b/tm/obsw_pus_tm_base.py index 5a1f2ba..fc5ea03 100644 --- a/tm/obsw_pus_tm_base.py +++ b/tm/obsw_pus_tm_base.py @@ -216,12 +216,12 @@ class PusPacketHeader: class ObswPusPacketDataFieldHeader: - def __init__(self, bytesArray): - self.pus_version_and_ack_byte = (bytesArray[0] & 0x70) >> 4 - self.service_type = bytesArray[1] - self.service_subtype = bytesArray[2] - self.subcounter = bytesArray[3] - self.time = ObswTimestamp(bytesArray[4:13]) + def __init__(self, bytes_array): + self.pus_version_and_ack_byte = (bytes_array[0] & 0x70) >> 4 + self.service_type = bytes_array[1] + self.service_subtype = bytes_array[2] + self.subcounter = bytes_array[3] + self.time = ObswTimestamp(bytes_array[4:13]) def append_data_field_header(self, content_list: list): """ @@ -250,13 +250,13 @@ class ObswTimestamp: """ Unpacks the time datafield of the TM wiretapping_packet. """ - def __init__(self, byteArray): + def __init__(self, byte_array): # pField = byte_array[0] - byteArray = byteArray[1:] - self.days = ((byteArray[0] << 8) | (byteArray[1])) - 4383 + byte_array = byte_array[1:] + self.days = ((byte_array[0] << 8) | (byte_array[1])) - 4383 self.seconds = self.days * (24 * 60 * 60) - s_day = ((byteArray[2] << 24) | (byteArray[3] << 16) | - (byteArray[4]) << 8 | byteArray[5]) / 1000 + s_day = ((byte_array[2] << 24) | (byte_array[3] << 16) | + (byte_array[4]) << 8 | byte_array[5]) / 1000 self.seconds += s_day self.time = self.seconds self.datetime = str(datetime.datetime. -- GitLab