diff options
Diffstat (limited to 'src/tangara/dev_console')
| -rw-r--r-- | src/tangara/dev_console/console.cpp | 16 | ||||
| -rw-r--r-- | src/tangara/dev_console/console.hpp | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/tangara/dev_console/console.cpp b/src/tangara/dev_console/console.cpp index cee68b49..a7f7a721 100644 --- a/src/tangara/dev_console/console.cpp +++ b/src/tangara/dev_console/console.cpp @@ -74,13 +74,29 @@ auto Console::RegisterCommonComponents() -> void { RegisterLogLevel(); } +static Console* sInstance; + +static auto prerun_cb() -> void { + if (sInstance) { + sInstance->PrerunCallback(); + } +} + +auto Console::PrerunCallback() -> void { + puts("\r\nPress any key to enter dev console.\r\n"); + setvbuf(stdin, NULL, _IONBF, 0); + fgetc(stdin); +} + auto Console::Launch() -> void { + sInstance = this; esp_console_repl_t* repl = nullptr; esp_console_repl_config_t repl_config = ESP_CONSOLE_REPL_CONFIG_DEFAULT(); repl_config.max_history_len = 16; repl_config.prompt = " →"; repl_config.max_cmdline_length = 256; repl_config.task_stack_size = 1024 * GetStackSizeKiB(); + repl_config.prerun_cb = prerun_cb; esp_console_dev_uart_config_t hw_config = ESP_CONSOLE_DEV_UART_CONFIG_DEFAULT(); diff --git a/src/tangara/dev_console/console.hpp b/src/tangara/dev_console/console.hpp index fedf3632..f29723e9 100644 --- a/src/tangara/dev_console/console.hpp +++ b/src/tangara/dev_console/console.hpp @@ -16,6 +16,7 @@ class Console { virtual ~Console(); auto Launch() -> void; + virtual auto PrerunCallback() -> void; protected: virtual auto GetStackSizeKiB() -> uint16_t { return 8; } |
