From f5e682624973d1b6c1436d7786a25d02b616a0b9 Mon Sep 17 00:00:00 2001
From: "Robin.Mueller" <robin.mueller.m@gmail.com>
Date: Sun, 26 Apr 2020 19:37:21 +0200
Subject: [PATCH] sequential send/receive appears to work

---
 comIF/obsw_com_interface.py                   |  2 +-
 comIF/obsw_dummy_com_if.py                    |  4 +--
 comIF/obsw_serial_com_if.py                   |  1 -
 obsw_tmtc_client.py                           |  1 -
 .../obsw_sequential_sender_receiver.py        |  7 +++--
 sendreceive/obsw_tm_listener.py               |  1 +
 tc/obsw_pus_tc_packer.py                      |  9 +++---
 tm/obsw_pus_tm_base.py                        |  6 ++++
 utility/obsw_tmtc_printer.py                  | 28 +++++++++----------
 9 files changed, 33 insertions(+), 26 deletions(-)

diff --git a/comIF/obsw_com_interface.py b/comIF/obsw_com_interface.py
index cf4447b..dc51109 100644
--- a/comIF/obsw_com_interface.py
+++ b/comIF/obsw_com_interface.py
@@ -67,7 +67,7 @@ class CommunicationInterface:
     @abstractmethod
     def data_available(self, parameters: any) -> bool:
         """
-        Check whether _tm_data is available
+        Check whether TM data is available
         :param parameters:
         :return:
         """
diff --git a/comIF/obsw_dummy_com_if.py b/comIF/obsw_dummy_com_if.py
index 6730a5b..ac4acc3 100644
--- a/comIF/obsw_dummy_com_if.py
+++ b/comIF/obsw_dummy_com_if.py
@@ -10,9 +10,9 @@ from typing import Tuple
 from comIF.obsw_com_interface import CommunicationInterface
 from tc.obsw_pus_tc_base import PusTelecommand, PusTcInfoT, TcDictionaryKeys
 from tm.obsw_pus_tm_factory import PusTelemetryFactory
-from tm.obsw_pus_tm_creator import PusTelemetryCreator
 from tm.obsw_tm_service_1 import Service1TmPacked
 
+
 class DummyComIF(CommunicationInterface):
     def __init__(self, tmtc_printer):
         super().__init__(tmtc_printer)
@@ -31,7 +31,7 @@ class DummyComIF(CommunicationInterface):
         pass
 
     def receive_telemetry(self, parameters: any = 0):
-        if self.service_sent == 17 and self.reply_pending:
+        if self.service_sent == 17 or self.service_sent == 5 and self.reply_pending:
             tm_packer = Service1TmPacked(subservice=1, ssc=0)
             tm_packet_raw = tm_packer.pack()
             tm_packet = PusTelemetryFactory.create(tm_packet_raw)
diff --git a/comIF/obsw_serial_com_if.py b/comIF/obsw_serial_com_if.py
index 14617c5..29371c1 100644
--- a/comIF/obsw_serial_com_if.py
+++ b/comIF/obsw_serial_com_if.py
@@ -47,7 +47,6 @@ class SerialComIF(CommunicationInterface):
             sys.exit()
 
     def send_telecommand(self, tc_packet: bytearray, tc_packet_info: PusTcInfoT = None) -> None:
-        # self.tmtc_printer.print_telecommand(tc_packet, tc_packet_info)
         self.serial.write(tc_packet)
 
     def receive_telemetry(self, parameters: any = 0) -> PusTmListT:
diff --git a/obsw_tmtc_client.py b/obsw_tmtc_client.py
index 167165a..f497446 100644
--- a/obsw_tmtc_client.py
+++ b/obsw_tmtc_client.py
@@ -124,7 +124,6 @@ class TmTcHandler:
             logger.info("TMTC Client in idle mode")
             time.sleep(5)
 
-
     def handle_action(self):
         tmtc_printer = TmTcPrinter(g.G_DISPLAY_MODE, g.G_PRINT_TO_FILE, True)
         if self.mode == g.ModeList.GUIMode:
diff --git a/sendreceive/obsw_sequential_sender_receiver.py b/sendreceive/obsw_sequential_sender_receiver.py
index 952b54a..f0b044a 100644
--- a/sendreceive/obsw_sequential_sender_receiver.py
+++ b/sendreceive/obsw_sequential_sender_receiver.py
@@ -12,8 +12,11 @@ from sendreceive.obsw_command_sender_receiver import CommandSenderReceiver
 from sendreceive.obsw_tm_listener import TmListener
 from comIF.obsw_com_interface import CommunicationInterface
 from utility.obsw_tmtc_printer import TmTcPrinter
+from utility.obsw_logger import get_logger
 from tc.obsw_pus_tc_base import TcQueueT
 
+logger = get_logger()
+
 
 class SequentialCommandSenderReceiver(CommandSenderReceiver):
     """
@@ -61,9 +64,9 @@ class SequentialCommandSenderReceiver(CommandSenderReceiver):
             if not self.__mode_op_finished:
                 self._tm_listener.mode_op_finished.set()
                 self.__mode_op_finished = True
-        print("Sequential SenderReceiver: All replies received!")
+        logger.info("Sequential SenderReceiver: All replies received!")
         if g.G_PRINT_TO_FILE:
-            print("Sequential SenderReceiver: Exporting output to log file.")
+            logger.info("Sequential SenderReceiver: Exporting output to log file.")
             self._tmtc_printer.print_to_file("log/tmtc_log.txt", True)
 
     def __perform_next_tc_send(self):
diff --git a/sendreceive/obsw_tm_listener.py b/sendreceive/obsw_tm_listener.py
index 2020545..43ab5ec 100644
--- a/sendreceive/obsw_tm_listener.py
+++ b/sendreceive/obsw_tm_listener.py
@@ -123,6 +123,7 @@ class TmListener:
             self.__tm_packet_queue.append(self.com_interface.receive_telemetry())
             start_time = time.time()
             elapsed_time = 0
+            logger.info("TmListener: Listening for " + str(self.tm_timeout) + " seconds")
             while elapsed_time < self.tm_timeout:
                 tm_ready = self.com_interface.data_available(1.0)
                 if tm_ready:
diff --git a/tc/obsw_pus_tc_packer.py b/tc/obsw_pus_tc_packer.py
index 8a68bd7..81ea745 100644
--- a/tc/obsw_pus_tc_packer.py
+++ b/tc/obsw_pus_tc_packer.py
@@ -107,20 +107,19 @@ def pack_service9_test_into(tc_queue: TcQueueT) -> TcQueueT:
 
 
 def pack_service17_test_into(tc_queue: TcQueueT) -> TcQueueT:
-    tc_queue.appendleft(("print", "Testing Service 17"))
+    tc_queue.appendleft(("print", "Testing Service 17."))
     # ping test
-    tc_queue.appendleft(("print", "\n\rTesting Service 17: Ping Test"))
+    tc_queue.appendleft(("print", "Testing Service 17: Ping Test"))
     command = PusTelecommand(service=17, subservice=1, ssc=1700)
     tc_queue.appendleft(command.pack_command_tuple())
     # enable event
-    tc_queue.appendleft(("print", "\n\rTesting Service 17: Enable Event"))
+    tc_queue.appendleft(("print", "Testing Service 17: Enable Event"))
     command = PusTelecommand(service=5, subservice=5, ssc=52)
     tc_queue.appendleft(command.pack_command_tuple())
     # test event
-    tc_queue.appendleft(("print", "\n\rTesting Service 17: Trigger event"))
+    tc_queue.appendleft(("print", "Testing Service 17: Trigger event"))
     command = PusTelecommand(service=17, subservice=128, ssc=1701)
     tc_queue.appendleft(command.pack_command_tuple())
-    tc_queue.appendleft(("print", "\r"))
     tc_queue.appendleft(("export", "log/tmtc_log_service17.txt"))
     return tc_queue
 
diff --git a/tm/obsw_pus_tm_base.py b/tm/obsw_pus_tm_base.py
index 609b447..0a93bfd 100644
--- a/tm/obsw_pus_tm_base.py
+++ b/tm/obsw_pus_tm_base.py
@@ -189,6 +189,12 @@ class PusTelemetry:
         """
         logger.info(self.return_data_string(self._tm_data, len(self._tm_data)))
 
+    def return_source_data(self):
+        """
+        Returns the source data string
+        """
+        return self.return_data_string(self._tm_data, len(self._tm_data))
+
     @staticmethod
     def return_data_string(byte_array: bytearray, length: int) -> str:
         """
diff --git a/utility/obsw_tmtc_printer.py b/utility/obsw_tmtc_printer.py
index 7b0117e..4f69c89 100644
--- a/utility/obsw_tmtc_printer.py
+++ b/utility/obsw_tmtc_printer.py
@@ -72,7 +72,7 @@ class TmTcPrinter:
     def __handle_short_print(self, tm_packet: PusTelemetry):
         self.print_buffer = "Received TM[" + str(tm_packet.get_service()) + "," + str(
             tm_packet.get_subservice()) + "]"
-        print(self.print_buffer)
+        logger.info(self.print_buffer)
         self.add_print_buffer_to_file_buffer()
 
     def __handle_long_print(self, tm_packet: PusTelemetry):
@@ -166,7 +166,7 @@ class TmTcPrinter:
                     break
                 else:
                     self.print_buffer = self.print_buffer + ", "
-        print(self.print_buffer)
+        logger.info(self.print_buffer)
         self.add_print_buffer_to_file_buffer()
 
     def __handle_wiretapping_packet(self, wiretapping_packet: PusTelemetry):
@@ -179,8 +179,8 @@ class TmTcPrinter:
             self.print_buffer = "Wiretapping Packet or Raw Reply from TM [" + \
                                 str(wiretapping_packet.get_service()) + "," + \
                                 str(wiretapping_packet.get_subservice()) + "]: "
-            self.print_buffer = self.print_buffer + wiretapping_packet.return_data_string()
-            print(self.print_buffer)
+            self.print_buffer = self.print_buffer + wiretapping_packet.return_source_data()
+            logger.info(self.print_buffer)
             self.add_print_buffer_to_file_buffer()
 
     def __handle_data_reply_packet(self, tm_packet: PusTelemetry):
@@ -192,7 +192,7 @@ class TmTcPrinter:
         if tm_packet.get_service() == 8 and tm_packet.get_subservice() == 130:
             self.print_buffer = "Service 8 Direct Command Reply TM[8,130] with TM data: " \
                                 + tm_packet.return_data_string()
-            print(self.print_buffer)
+            logger.info(self.print_buffer)
 
     def print_data(self, byte_array: bytearray):
         """
@@ -200,7 +200,7 @@ class TmTcPrinter:
         :return: None
         """
         string = self.return_data_string(byte_array)
-        print(string)
+        logger.info(string)
 
     @staticmethod
     def return_data_string(byte_array: bytearray) -> str:
@@ -224,7 +224,7 @@ class TmTcPrinter:
         :return:
         """
         self.print_buffer = string
-        print(self.print_buffer)
+        logger.info(self.print_buffer)
         if self.do_print_to_file:
             self.add_print_buffer_to_file_buffer()
 
@@ -244,13 +244,13 @@ class TmTcPrinter:
         try:
             file = open(log_name, 'w')
         except FileNotFoundError:
-            print("Log directory does not exists, creating log folder.")
+            logger.info("Log directory does not exists, creating log folder.")
             os.mkdir('log')
             file = open(log_name, 'w')
         file.write(self.file_buffer)
         if clear_file_buffer:
             self.file_buffer = ""
-        print("Log file written to " + log_name)
+        logger.info("Log file written to " + log_name)
         file.close()
 
     @staticmethod
@@ -273,10 +273,10 @@ class TmTcPrinter:
         """
         if self.print_tc:
             if len(tc_packet) == 0:
-                print("TMTC Printer: Empty packet was sent, configuration error")
-                sys.exit()
+                logger.error("TMTC Printer: Empty packet was sent, configuration error")
+                return
             if tc_packet_info is None:
-                print("TMTC Printer: No packet info supplied to print")
+                logger.error("TMTC Printer: No packet info supplied to print")
                 return
             if self.display_mode == DisplayMode.SHORT:
                 self.__handle_short_tc_print(tc_packet_info)
@@ -310,5 +310,5 @@ class TmTcPrinter:
 
             logger.info(self.print_buffer)
             self.add_print_buffer_to_file_buffer()
-        except TypeError:
-            print("TMTC Printer: Type Error !")
+        except TypeError as e:
+            logger.error("TMTC Printer: Type Error! Traceback: " + str(e))
-- 
GitLab