summaryrefslogtreecommitdiff
path: root/src/tangara/dev_console
diff options
context:
space:
mode:
Diffstat (limited to 'src/tangara/dev_console')
-rw-r--r--src/tangara/dev_console/console.cpp16
-rw-r--r--src/tangara/dev_console/console.hpp1
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; }