From b9c865eaed36c6da6f7975f943aaf2879bb9a8fb Mon Sep 17 00:00:00 2001 From: "Morgan 'ARR\\!' Allen" Date: Sat, 29 Feb 2020 11:56:40 -0800 Subject: [PATCH] move commands to own files --- include/cmd_lora.h | 3 ++- main/CMakeLists.txt | 2 +- main/cmd_cr.c | 44 +++++++++++++++++++++++++++++++++++ main/{cmd_lora.c => cmd_sf.c} | 2 +- main/console.c | 3 ++- 5 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 main/cmd_cr.c rename main/{cmd_lora.c => cmd_sf.c} (95%) diff --git a/include/cmd_lora.h b/include/cmd_lora.h index 914d829..5c6200b 100644 --- a/include/cmd_lora.h +++ b/include/cmd_lora.h @@ -5,7 +5,8 @@ extern "C" { #endif -void cmd_lora_register(); +void cmd_sf_register(); +void cmd_cr_register(); #ifdef __cplusplus } diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 6065c0a..b461349 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,4 +1,4 @@ -set(COMPONENT_SRCS "main.c console.c cmd_lora.c") +set(COMPONENT_SRCS "main.c console.c cmd_sf.c cmd_cr.c") set(COMPONENT_ADD_INCLUDEDIRS ". ../include") register_component() diff --git a/main/cmd_cr.c b/main/cmd_cr.c new file mode 100644 index 0000000..3391e1e --- /dev/null +++ b/main/cmd_cr.c @@ -0,0 +1,44 @@ +#include +#include +#include "esp_log.h" +#include "esp_console.h" +#include "argtable3/argtable3.h" + +#include "cmd_lora.h" +#include "esp32-lora.h" + +static struct { + struct arg_int *codingrate; + struct arg_end *end; + lora32_cfg_t *lora; +} cr_args; + +int set_cr(int argc, char **argv) { + int nerrors = arg_parse(argc, argv, (void **) &cr_args); + + if (nerrors != 0) { + arg_print_errors(stderr, cr_args.end, argv[0]); + + return 1; + } + + lora32_set_coding_rate((lora32_cfg_t*)cr_args.lora, cr_args.codingrate->ival[0]); + + return 0; +} + +void cmd_cr_register(lora32_cfg_t *lora) { + cr_args.codingrate = arg_int0(NULL, NULL, "", "Coding Rate"); + cr_args.end = arg_end(1); + cr_args.lora = lora; + + const esp_console_cmd_t cr_cmd = { + .command = "codingrate", + .help = "Set codingrate", + .hint = NULL, + .func = &set_cr, + .argtable = &cr_args + }; + + ESP_ERROR_CHECK(esp_console_cmd_register(&cr_cmd)); +} diff --git a/main/cmd_lora.c b/main/cmd_sf.c similarity index 95% rename from main/cmd_lora.c rename to main/cmd_sf.c index e45e28d..91563e1 100644 --- a/main/cmd_lora.c +++ b/main/cmd_sf.c @@ -26,7 +26,7 @@ int set_sf(int argc, char **argv) { return 0; } -void cmd_lora_register(lora32_cfg_t *lora) { +void cmd_sf_register(lora32_cfg_t *lora) { sf_args.spreadfactor = arg_int0(NULL, NULL, "", "Spreadfactor"); sf_args.end = arg_end(1); sf_args.lora = lora; diff --git a/main/console.c b/main/console.c index 55858d9..962c33e 100644 --- a/main/console.c +++ b/main/console.c @@ -48,7 +48,8 @@ void console_task(void *args) { linenoiseSetHintsCallback((linenoiseHintsCallback*) &esp_console_get_hint); linenoiseHistorySetMaxLen(100); - cmd_lora_register(args); + cmd_sf_register(args); + cmd_cr_register(args); const char* prompt = LOG_COLOR_I "lorcomm> " LOG_RESET_COLOR;