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