diff --git a/include/cmd_lora.h b/include/cmd_lora.h index 5c6200b..b8531a4 100644 --- a/include/cmd_lora.h +++ b/include/cmd_lora.h @@ -7,6 +7,7 @@ extern "C" { void cmd_sf_register(); void cmd_cr_register(); +void cmd_preamble_register(); #ifdef __cplusplus } diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index b461349..ff7606e 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,4 +1,10 @@ -set(COMPONENT_SRCS "main.c console.c cmd_sf.c cmd_cr.c") +set(COMPONENT_SRCS "\ + main.c\ + console.c\ + cmd_sf.c\ + cmd_cr.c\ + cmd_preamble.c\ +") set(COMPONENT_ADD_INCLUDEDIRS ". ../include") register_component() diff --git a/main/cmd_preamble.c b/main/cmd_preamble.c new file mode 100644 index 0000000..e2dbd11 --- /dev/null +++ b/main/cmd_preamble.c @@ -0,0 +1,45 @@ +#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; +} preamble_args; + +int set_preamble(int argc, char **argv) { + int nerrors = arg_parse(argc, argv, (void **) &preamble_args); + + if (nerrors != 0) { + arg_print_errors(stderr, preamble_args.end, argv[0]); + + return 1; + } + + //lora32_set_preamble((lora32_cfg_t*)preamble_args.lora, preamble_args.codingrate->ival[0]); + + + return 0; +} + +void cmd_preamble_register(lora32_cfg_t *lora) { + preamble_args.codingrate = arg_int0(NULL, NULL, "", "Preamble"); + preamble_args.end = arg_end(1); + preamble_args.lora = lora; + + const esp_console_cmd_t preamble_cmd = { + .command = "preamble", + .help = "Set preamble", + .hint = NULL, + .func = &set_preamble, + .argtable = &preamble_args + }; + + ESP_ERROR_CHECK(esp_console_cmd_register(&preamble_cmd)); +} diff --git a/main/console.c b/main/console.c index 962c33e..03db0ec 100644 --- a/main/console.c +++ b/main/console.c @@ -50,6 +50,7 @@ void console_task(void *args) { cmd_sf_register(args); cmd_cr_register(args); + cmd_preamble_register(args); const char* prompt = LOG_COLOR_I "lorcomm> " LOG_RESET_COLOR; diff --git a/main/main.c b/main/main.c index 2a94189..27e829b 100644 --- a/main/main.c +++ b/main/main.c @@ -185,6 +185,8 @@ void app_main(void) { xTaskCreate(console_task, "console", 4048, &lora, tskIDLE_PRIORITY + 3, NULL); + printf("%d %f\n", portTICK_PERIOD_MS, (float)(1 / portTICK_PERIOD_MS)); + while(1) { vTaskDelay(100 / portTICK_PERIOD_MS); }