diff --git a/utility/obsw_logger.py b/utility/obsw_logger.py index d15de57106b85a4ef71411df3a239d149d161eaa..ffe2057e26de9804ba6cbc1bc9db8a21a17f7975 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 4f69c89bd8e797551488d218311f2c246e7e117e..9645c2f5aa477aa6c12312e8f6634a132b0c832a 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))