From 4f19912f9124451cc56df8f9cd4ff087729d92db Mon Sep 17 00:00:00 2001
From: "Robin.Mueller" <robin.mueller.m@gmail.com>
Date: Sun, 26 Apr 2020 20:19:07 +0200
Subject: [PATCH] some more refactoring

---
 utility/obsw_logger.py       |  10 ++--
 utility/obsw_tmtc_printer.py | 109 +++++++++++++++++++----------------
 2 files changed, 64 insertions(+), 55 deletions(-)

diff --git a/utility/obsw_logger.py b/utility/obsw_logger.py
index d15de57..ffe2057 100644
--- a/utility/obsw_logger.py
+++ b/utility/obsw_logger.py
@@ -46,20 +46,20 @@ def set_tmtc_logger() -> logging.Logger:
     console_error_handler = logging.StreamHandler(stream=sys.stderr)
     console_error_handler.setLevel(logging.WARNING)
     try:
-        file_handler = logging.FileHandler(
+        error_file_handler = logging.FileHandler(
             filename="log/" + g.G_ERROR_LOG_FILE_NAME, encoding='utf-8', mode='w')
     except FileNotFoundError:
         os.mkdir("log")
-        file_handler = logging.FileHandler(
+        error_file_handler = logging.FileHandler(
             filename="log/" + g.G_ERROR_LOG_FILE_NAME, encoding='utf-8', mode='w')
 
-    file_handler.setLevel(level=logging.WARNING)
+    error_file_handler.setLevel(level=logging.WARNING)
 
-    file_handler.setFormatter(generic_format)
+    error_file_handler.setFormatter(generic_format)
     console_info_handler.setFormatter(generic_format)
     console_debug_handler.setFormatter(fault_format)
     console_error_handler.setFormatter(fault_format)
-    logger.addHandler(file_handler)
+    logger.addHandler(error_file_handler)
     logger.addHandler(console_info_handler)
     logger.addHandler(console_debug_handler)
     logger.addHandler(console_error_handler)
diff --git a/utility/obsw_tmtc_printer.py b/utility/obsw_tmtc_printer.py
index 4f69c89..9645c2f 100644
--- a/utility/obsw_tmtc_printer.py
+++ b/utility/obsw_tmtc_printer.py
@@ -32,19 +32,22 @@ class TmTcPrinter:
     def __init__(self, display_mode: DisplayMode.LONG, do_print_to_file: bool = True,
                  print_tc: bool = True):
         """
-        :param display_mode: "long" or "short" TODO: replace by enum
+        :param display_mode:
         :param do_print_to_file: if true, print to file
         :param print_tc: if true, print TCs
         """
         # TODO: we should implement a list of strings here. each service test string
         #       is written into a list entry. For the file output, the list entries are concatenated
         #       and put into the main log file.
-        self.print_buffer = ""
-        # global print buffer which will be useful to print something to file
-        self.file_buffer = ""
         self.display_mode = display_mode
         self.do_print_to_file = do_print_to_file
         self.print_tc = print_tc
+        self.__print_buffer = ""
+        # global print buffer which will be useful to print something to file
+        self.__file_buffer = ""
+        # List implementation to store
+        self.file_buffer_list = []
+
 
     def print_telemetry(self, packet: PusTelemetry):
         """
@@ -65,19 +68,19 @@ class TmTcPrinter:
                 (packet.get_subservice() == 10 or packet.get_subservice() == 12):
             self.__handle_hk_definition_print(packet)
         if g.G_PRINT_RAW_TM:
-            self.print_buffer = "TM Data:" + "\n" + self.return_data_string(packet.get_tm_data())
-            print(self.print_buffer)
+            self.__print_buffer = "TM Data:" + "\n" + self.return_data_string(packet.get_tm_data())
+            logger.info(self.__print_buffer)
             self.add_print_buffer_to_file_buffer()
 
     def __handle_short_print(self, tm_packet: PusTelemetry):
-        self.print_buffer = "Received TM[" + str(tm_packet.get_service()) + "," + str(
+        self.__print_buffer = "Received TM[" + str(tm_packet.get_service()) + "," + str(
             tm_packet.get_subservice()) + "]"
-        logger.info(self.print_buffer)
+        logger.info(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
 
     def __handle_long_print(self, tm_packet: PusTelemetry):
-        self.print_buffer = "Received Telemetry: " + tm_packet.print_info
-        logger.info(self.print_buffer)
+        self.__print_buffer = "Received Telemetry: " + tm_packet.print_info
+        logger.info(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
         self.__handle_column_header_print(tm_packet)
         self.__handle_tm_content_print(tm_packet)
@@ -85,8 +88,8 @@ class TmTcPrinter:
     def __handle_column_header_print(self, tm_packet: PusTelemetry):
         rec_pus = []
         tm_packet.append_telemetry_column_headers(rec_pus)
-        self.print_buffer = str(rec_pus)
-        logger.info(self.print_buffer)
+        self.__print_buffer = str(rec_pus)
+        logger.info(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
 
     def __handle_tm_content_print(self, tm_packet: PusTelemetry):
@@ -96,8 +99,8 @@ class TmTcPrinter:
         """
         rec_pus = []
         tm_packet.append_telemetry_content(rec_pus)
-        self.print_buffer = str(rec_pus)
-        logger.info(self.print_buffer)
+        self.__print_buffer = str(rec_pus)
+        logger.info(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
 
     def __handle_hk_print(self, tm_packet: Service3TM):
@@ -107,8 +110,8 @@ class TmTcPrinter:
         :return:
         """
         if g.G_PRINT_HK_DATA:
-            self.print_buffer = "HK Data from SID "
-            self.print_buffer = self.print_buffer + str(hex(tm_packet.sid)) + " :"
+            self.__print_buffer = "HK Data from SID "
+            self.__print_buffer = self.__print_buffer + str(hex(tm_packet.sid)) + " :"
             self.__print_hk(tm_packet)
             self.__print_validity_buffer(tm_packet)
 
@@ -118,8 +121,8 @@ class TmTcPrinter:
         :return:
         """
         if g.G_PRINT_HK_DATA:
-            self.print_buffer = "HK Definition from SID "
-            self.print_buffer = self.print_buffer + str(hex(tm_packet.sid)) + " :"
+            self.__print_buffer = "HK Definition from SID "
+            self.__print_buffer = self.__print_buffer + str(hex(tm_packet.sid)) + " :"
             self.__print_hk(tm_packet)
 
     def __print_hk(self, tm_packet: Service3TM):
@@ -127,13 +130,13 @@ class TmTcPrinter:
         :param tm_packet:
         :return:
         """
-        print(self.print_buffer)
+        print(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
-        self.print_buffer = str(tm_packet.hkHeader)
-        print(self.print_buffer)
+        self.__print_buffer = str(tm_packet.hkHeader)
+        print(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
-        self.print_buffer = str(tm_packet.hkContent)
-        print(self.print_buffer)
+        self.__print_buffer = str(tm_packet.hkContent)
+        print(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
 
     def __print_validity_buffer(self, tm_packet: Service3TM):
@@ -141,8 +144,8 @@ class TmTcPrinter:
         :param tm_packet:
         :return:
         """
-        self.print_buffer = "Valid: "
-        print(self.print_buffer)
+        self.__print_buffer = "Valid: "
+        print(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
         self.__handle_validity_buffer_print(tm_packet.validity_buffer, tm_packet.numberOfParameters)
 
@@ -152,21 +155,21 @@ class TmTcPrinter:
         :param number_of_parameters:
         :return:
         """
-        self.print_buffer = "["
+        self.__print_buffer = "["
         counter = 0
         for index, byte in enumerate(validity_buffer):
             for bit in range(1, 9):
                 if self.bit_extractor(byte, bit) == 1:
-                    self.print_buffer = self.print_buffer + "Yes"
+                    self.__print_buffer = self.__print_buffer + "Yes"
                 else:
-                    self.print_buffer = self.print_buffer + "No"
+                    self.__print_buffer = self.__print_buffer + "No"
                 counter += 1
                 if counter == number_of_parameters:
-                    self.print_buffer = self.print_buffer + "]"
+                    self.__print_buffer = self.__print_buffer + "]"
                     break
                 else:
-                    self.print_buffer = self.print_buffer + ", "
-        logger.info(self.print_buffer)
+                    self.__print_buffer = self.__print_buffer + ", "
+        logger.info(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
 
     def __handle_wiretapping_packet(self, wiretapping_packet: PusTelemetry):
@@ -176,11 +179,11 @@ class TmTcPrinter:
         """
         if wiretapping_packet.get_service() == 2 and (wiretapping_packet.get_subservice() == 131 or
                                                       wiretapping_packet.get_subservice() == 130):
-            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_source_data()
-            logger.info(self.print_buffer)
+            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_source_data()
+            logger.info(self.__print_buffer)
             self.add_print_buffer_to_file_buffer()
 
     def __handle_data_reply_packet(self, tm_packet: PusTelemetry):
@@ -190,9 +193,9 @@ class TmTcPrinter:
         :return:
         """
         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()
-            logger.info(self.print_buffer)
+            self.__print_buffer = "Service 8 Direct Command Reply TM[8,130] with TM data: " \
+                                  + tm_packet.return_source_data()
+            logger.info(self.__print_buffer)
 
     def print_data(self, byte_array: bytearray):
         """
@@ -223,8 +226,8 @@ class TmTcPrinter:
         :param string:
         :return:
         """
-        self.print_buffer = string
-        logger.info(self.print_buffer)
+        self.__print_buffer = string
+        logger.info(self.__print_buffer)
         if self.do_print_to_file:
             self.add_print_buffer_to_file_buffer()
 
@@ -233,7 +236,13 @@ class TmTcPrinter:
         :return:
         """
         if self.do_print_to_file:
-            self.file_buffer = self.file_buffer + self.print_buffer + "\n"
+            self.__file_buffer = self.__file_buffer + self.__print_buffer + "\r\n"
+
+    def store_file_buffer_into_buffer_list(self):
+        self.file_buffer_list.append(self.__file_buffer)
+
+    def clear_file_buffer(self):
+        self.__file_buffer = ""
 
     def print_to_file(self, log_name: str = "log/tmtc_log.txt", clear_file_buffer: bool = False):
         """
@@ -247,9 +256,9 @@ class TmTcPrinter:
             logger.info("Log directory does not exists, creating log folder.")
             os.mkdir('log')
             file = open(log_name, 'w')
-        file.write(self.file_buffer)
+        file.write(self.__file_buffer)
         if clear_file_buffer:
-            self.file_buffer = ""
+            self.__file_buffer = ""
         logger.info("Log file written to " + log_name)
         file.close()
 
@@ -289,10 +298,10 @@ class TmTcPrinter:
         :param tc_packet_info:
         :return:
         """
-        self.print_buffer = "Sent TC[" + str(tc_packet_info[TcDictionaryKeys.SERVICE]) + "," + \
-                            str(tc_packet_info[TcDictionaryKeys.SUBSERVICE]) + "] " + " with SSC " + \
-                            str(tc_packet_info[TcDictionaryKeys.SSC])
-        logger.info(self.print_buffer)
+        self.__print_buffer = "Sent TC[" + str(tc_packet_info[TcDictionaryKeys.SERVICE]) + "," + \
+                              str(tc_packet_info[TcDictionaryKeys.SUBSERVICE]) + "] " + " with SSC " + \
+                              str(tc_packet_info[TcDictionaryKeys.SSC])
+        logger.info(self.__print_buffer)
         self.add_print_buffer_to_file_buffer()
 
     def __handle_long_tc_print(self, tc_packet_info: PusTcInfoT):
@@ -302,13 +311,13 @@ class TmTcPrinter:
         :return:
         """
         try:
-            self.print_buffer = \
+            self.__print_buffer = \
                 "Telecommand TC[" + str(tc_packet_info[TcDictionaryKeys.SERVICE]) + "," + \
                 str(tc_packet_info[TcDictionaryKeys.SUBSERVICE]) + "] with SSC " + \
                 str(tc_packet_info[TcDictionaryKeys.SSC]) + " sent with data " + \
                 self.return_data_string(tc_packet_info[TcDictionaryKeys.DATA])
 
-            logger.info(self.print_buffer)
+            logger.info(self.__print_buffer)
             self.add_print_buffer_to_file_buffer()
         except TypeError as e:
             logger.error("TMTC Printer: Type Error! Traceback: " + str(e))
-- 
GitLab