From 253b98c8f014e4fa91a129eaba3a986f91ac5b12 Mon Sep 17 00:00:00 2001 From: ESurge Date: Fri, 22 Jul 2022 20:35:14 -0700 Subject: [PATCH] Added condition to cli "log" command to end if serial terminal is disconnected. (#1425) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added condition to cli "log" command. If USB is disconnected while "log" command is running, it will end the command. * Reverted change on cli_commands.c Added condition in cli.c for cli_cmd_interrupt_received function to react appropriately when serial terminal is disconnected. Added condition in subghz_cli.c for subghz chat cmd to exit gracefully when serial terminal is disconnected. * Formatting Co-authored-by: あく --- applications/cli/cli.c | 24 +++++++++++++----------- applications/subghz/subghz_cli.c | 5 +++++ 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/applications/cli/cli.c b/applications/cli/cli.c index a0b239d3..7d0f8dab 100644 --- a/applications/cli/cli.c +++ b/applications/cli/cli.c @@ -69,17 +69,6 @@ size_t cli_read_timeout(Cli* cli, uint8_t* buffer, size_t size, uint32_t timeout } } -bool cli_cmd_interrupt_received(Cli* cli) { - furi_assert(cli); - char c = '\0'; - if(cli->session != NULL) { - if(cli->session->rx((uint8_t*)&c, 1, 0) == 1) { - return c == CliSymbolAsciiETX; - } - } - return false; -} - bool cli_is_connected(Cli* cli) { furi_assert(cli); if(cli->session != NULL) { @@ -88,6 +77,19 @@ bool cli_is_connected(Cli* cli) { return false; } +bool cli_cmd_interrupt_received(Cli* cli) { + furi_assert(cli); + char c = '\0'; + if(cli_is_connected(cli)) { + if(cli->session->rx((uint8_t*)&c, 1, 0) == 1) { + return c == CliSymbolAsciiETX; + } + } else { + return true; + } + return false; +} + void cli_print_usage(const char* cmd, const char* usage, const char* arg) { furi_assert(cmd); furi_assert(arg); diff --git a/applications/subghz/subghz_cli.c b/applications/subghz/subghz_cli.c index 541b5c50..3944fc5b 100644 --- a/applications/subghz/subghz_cli.c +++ b/applications/subghz/subghz_cli.c @@ -676,6 +676,11 @@ static void subghz_cli_command_chat(Cli* cli, string_t args) { break; } } + if(cli_is_connected(cli)) { + printf("\r\n"); + chat_event.event = SubGhzChatEventUserExit; + subghz_chat_worker_put_event_chat(subghz_chat, &chat_event); + } } string_clear(input);