From 550f196faa4f7dd5e1fb009b90cee6f1d45d58fa Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" <robin.mueller.m@gmail.com> Date: Wed, 19 Aug 2020 21:59:40 +0200 Subject: [PATCH] improved state machine --- config/obsw_config.py | 1 + obsw_tmtc_client.py | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/config/obsw_config.py b/config/obsw_config.py index e9fbfc0..e04f16a 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 0faefe6..f3bbcd7 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 -- GitLab