diff --git a/config/obsw_config.py b/config/obsw_config.py index e9fbfc09cfcd9739d2cdc156a35309019c8e8713..e04f16a58a8c5e2855dcd1ca52a21cbce351fe73 100644 --- a/config/obsw_config.py +++ b/config/obsw_config.py @@ -27,6 +27,7 @@ class ModeList(enum.Enum): SoftwareTestMode = 4 BinaryUploadMode = 5 UnitTest = 6 + PromptMode = 32 class ComIF(enum.Enum): diff --git a/obsw_tmtc_client.py b/obsw_tmtc_client.py index 0faefe606d18573b35e9c5af0b7e05f45912422d..f3bbcd76686705f7ee813ba596aafb9c688cf5ac 100755 --- a/obsw_tmtc_client.py +++ b/obsw_tmtc_client.py @@ -177,11 +177,15 @@ class TmTcHandler: """ Command handling. """ + if self.mode == g.ModeList.PromptMode: + self.prompt_mode() + if self.mode == g.ModeList.ListenerMode: if self.tm_listener.event_reply_received.is_set(): LOGGER.info("TmTcHandler: Packets received.") self.tmtc_printer.print_telemetry_queue(self.tm_listener.retrieve_tm_packet_queue()) self.command_received = True + elif self.mode == g.ModeList.SingleCommandMode: pus_packet_tuple = command_preparation() sender_and_receiver = SingleCommandSenderReceiver( @@ -189,6 +193,8 @@ class TmTcHandler: tm_listener=self.tm_listener) LOGGER.info("Performing single command operation") sender_and_receiver.send_single_tc_and_receive_tm(pus_packet_tuple=pus_packet_tuple) + self.command_received = True + self.mode = g.ModeList.PromptMode elif self.mode == g.ModeList.ServiceTestMode: service_queue = deque() @@ -198,6 +204,8 @@ class TmTcHandler: com_interface=self.communication_interface, tmtc_printer=self.tmtc_printer, tm_listener=self.tm_listener, tc_queue=service_queue) sender_and_receiver.send_queue_tc_and_receive_tm_sequentially() + self.command_received = True + self.mode = g.ModeList.PromptMode elif self.mode == g.ModeList.SoftwareTestMode: all_tc_queue = create_total_tc_queue() @@ -214,7 +222,7 @@ class TmTcHandler: # mode perform_binary_upload() self.command_received = True - self.prompt_mode() + self.mode = g.ModeList.PromptMode elif self.mode == g.ModeList.UnitTest: # Set up test suite and run it with runner. Verbosity specifies detail level