From da3ac1794e858d4430716a57962f38535dcd72b1 Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 14 Dec 2025 21:10:45 +0100 Subject: [PATCH] add telnet command `show gpio` --- src/core/console.cpp | 2 ++ src/core/locale_common.h | 3 ++- src/core/system.cpp | 16 ++++++++++++++++ src/core/system.h | 4 +++- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/core/console.cpp b/src/core/console.cpp index f7141baf0..59ab70403 100644 --- a/src/core/console.cpp +++ b/src/core/console.cpp @@ -100,6 +100,8 @@ static void setup_commands(std::shared_ptr const & commands) { EMSESP::show_sensor_values(shell); } else if (command == F_(mqtt)) { Mqtt::show_mqtt(shell); + } else if (command == F_(gpio)) { + EMSESP::system_.show_gpio(shell); } else { shell.printfln("Unknown show command"); } diff --git a/src/core/locale_common.h b/src/core/locale_common.h index 3705a9d6e..71f00e681 100644 --- a/src/core/locale_common.h +++ b/src/core/locale_common.h @@ -55,6 +55,7 @@ MAKE_WORD(ems) MAKE_WORD(devices) MAKE_WORD(shower) MAKE_WORD(mqtt) +MAKE_WORD(gpio) MAKE_WORD(modbus) MAKE_WORD(emsesp) MAKE_WORD(connected) @@ -158,7 +159,7 @@ MAKE_WORD_CUSTOM(deviceid_mandatory, "") MAKE_WORD_CUSTOM(device_type_optional, "[device]") MAKE_WORD_CUSTOM(invalid_log_level, "Invalid log level") MAKE_WORD_CUSTOM(log_level_optional, "[level]") -MAKE_WORD_CUSTOM(show_commands, "[system | users | devices | log | ems | values | mqtt | commands]") +MAKE_WORD_CUSTOM(show_commands, "[system | users | devices | log | ems | values | mqtt | commands | gpio]") MAKE_WORD_CUSTOM(name_mandatory, "") MAKE_WORD_CUSTOM(name_optional, "[name]") MAKE_WORD_CUSTOM(new_password_prompt1, "Enter new password: ") diff --git a/src/core/system.cpp b/src/core/system.cpp index 5fc3862cd..be231c9cf 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -1015,6 +1015,22 @@ void System::show_users(uuid::console::Shell & shell) { shell.println(); } +// print GPIO available and used pins to console +void System::show_gpio(uuid::console::Shell & shell) { + shell.printfln("GPIO:"); + shell.printf(" In use (%d):", used_gpios_.size()); + for (const auto & gpio : used_gpios_) { + shell.printf(" %d", gpio); + } + shell.println(); + auto available = available_gpios(); + shell.printf(" Available (%d):", available.size()); + for (const auto & gpio : available) { + shell.printf(" %d", gpio); + } + shell.println(); +} + // shell command 'show system' void System::show_system(uuid::console::Shell & shell) { refreshHeapMem(); // refresh free heap and max alloc heap diff --git a/src/core/system.h b/src/core/system.h index 968d404a8..5e6fbd779 100644 --- a/src/core/system.h +++ b/src/core/system.h @@ -300,8 +300,10 @@ class System { } void show_system(uuid::console::Shell & shell); - void wifi_reconnect(); void show_users(uuid::console::Shell & shell); + void show_gpio(uuid::console::Shell & shell); + + void wifi_reconnect(); static std::string languages_string();