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