Add Network Tools And Nested Command Completion

This commit is contained in:
2026-08-23 15:47:28 +02:00
parent c5f3595173
commit f9d3e9ece5
12 changed files with 1141 additions and 94 deletions
+54 -59
View File
@@ -1575,6 +1575,57 @@ DEFINE_OWNED_COMMAND(uart_suite)
DEFINE_OWNED_COMMAND(cts_flow_test)
DEFINE_OWNED_COMMAND(rts_flow_test)
static void print_debug_usage(void)
{
printf("Usage:\n");
printf(" debug transceiver <enable|disable>\n");
printf(" debug drivers <TX 0|1> <DTR 0|1> <RTS 0|1>\n");
printf(" debug loopback-a|loopback-b|valid-test\n");
printf(" debug uart-loopback <baud> [format] [bytes]\n");
printf(" debug uart-suite|cts-flow-test|rts-flow-test\n");
}
static int command_debug(int argc, char **argv)
{
if (argc < 2) {
print_debug_usage();
return argc == 1 ? 0 : 1;
}
/* Existing handlers expect their own command name in argv[0]. */
if (strcmp(argv[1], "transceiver") == 0) {
return command_transceiver(argc - 1, argv + 1);
}
if (strcmp(argv[1], "drivers") == 0) {
return command_drivers(argc - 1, argv + 1);
}
if (strcmp(argv[1], "loopback-a") == 0) {
return command_loopback_a(argc - 1, argv + 1);
}
if (strcmp(argv[1], "loopback-b") == 0) {
return command_loopback_b(argc - 1, argv + 1);
}
if (strcmp(argv[1], "valid-test") == 0) {
return command_valid_test(argc - 1, argv + 1);
}
if (strcmp(argv[1], "uart-loopback") == 0) {
return command_uart_loopback(argc - 1, argv + 1);
}
if (strcmp(argv[1], "uart-suite") == 0) {
return command_uart_suite(argc - 1, argv + 1);
}
if (strcmp(argv[1], "cts-flow-test") == 0) {
return command_cts_flow_test(argc - 1, argv + 1);
}
if (strcmp(argv[1], "rts-flow-test") == 0) {
return command_rts_flow_test(argc - 1, argv + 1);
}
printf("Unknown debug command '%s'.\n", argv[1]);
print_debug_usage();
return 1;
}
esp_err_t rs232_hw_test_init(void)
{
s_transceiver_enabled = true;
@@ -1598,66 +1649,10 @@ esp_err_t rs232_hw_test_register_console_commands(void)
.argtable = NULL,
},
{
.command = "transceiver",
.help = "Control active-low OFF: transceiver <enable|disable>",
.command = "debug",
.help = "Low-level RS-232 hardware diagnostics; run 'debug' for subcommands",
.hint = NULL,
.func = &command_transceiver,
.argtable = NULL,
},
{
.command = "drivers",
.help = "Set static logic levels: drivers <TX 0|1> <DTR 0|1> <RTS 0|1>",
.hint = NULL,
.func = &command_drivers,
.argtable = NULL,
},
{
.command = "loopback-a",
.help = "Test TX->RX, DTR->DSR, RTS->CTS for all eight patterns",
.hint = NULL,
.func = &command_loopback_a,
.argtable = NULL,
},
{
.command = "loopback-b",
.help = "Test TX->DCD, DTR->RI, RTS->RX for all eight patterns",
.hint = NULL,
.func = &command_loopback_b,
.argtable = NULL,
},
{
.command = "valid-test",
.help = "Verify VLD while enabled, shut down, and re-enabled",
.hint = NULL,
.func = &command_valid_test,
.argtable = NULL,
},
{
.command = "uart-loopback",
.help = "Run one UART1 test: uart-loopback <baud> [format] [bytes]",
.hint = NULL,
.func = &command_uart_loopback,
.argtable = NULL,
},
{
.command = "uart-suite",
.help = "Run the predefined baud-rate and frame-format loopback suite",
.hint = NULL,
.func = &command_uart_suite,
.argtable = NULL,
},
{
.command = "cts-flow-test",
.help = "Verify that UART1 CTS blocks and resumes an exact transmission",
.hint = NULL,
.func = &command_cts_flow_test,
.argtable = NULL,
},
{
.command = "rts-flow-test",
.help = "Verify automatic UART1 RTS backpressure with a UART2 generator",
.hint = NULL,
.func = &command_rts_flow_test,
.func = &command_debug,
.argtable = NULL,
},
};