diff --git a/include/cmd_lora.h b/include/cmd_lora.h index 520ea0c..fde5066 100644 --- a/include/cmd_lora.h +++ b/include/cmd_lora.h @@ -5,10 +5,12 @@ extern "C" { #endif -void cmd_sf_register(); +void cmd_bw_register(); void cmd_cr_register(); +void cmd_sf_register(); void cmd_preamble_register(); void cmd_send_register(); +void cmd_dump_register(); #ifdef __cplusplus } diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 089c0d3..7d31325 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,10 +1,14 @@ set(COMPONENT_SRCS "\ main.c\ + lorcomm.c\ + ble.c\ console.c\ - cmd_sf.c\ + cmd_bw.c\ cmd_cr.c\ + cmd_sf.c\ cmd_preamble.c\ cmd_send.c\ + cmd_dump.c\ ") set(COMPONENT_ADD_INCLUDEDIRS ". ../include") diff --git a/main/cmd_bw.c b/main/cmd_bw.c new file mode 100644 index 0000000..7bec117 --- /dev/null +++ b/main/cmd_bw.c @@ -0,0 +1,50 @@ +#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 *bandwidth; + struct arg_end *end; + lora32_cfg_t *lora; +} bw_args; + +int set_bw(int argc, char **argv) { + if(argc == 1) { + printf(" > %d\n", bw_args.lora->bandwidth); + + return 0; + } + + int nerrors = arg_parse(argc, argv, (void **) &bw_args); + + if (nerrors != 0) { + arg_print_errors(stderr, bw_args.end, argv[0]); + + return 1; + } + + lora32_set_bandwidth((lora32_cfg_t*)bw_args.lora, bw_args.bandwidth->ival[0]); + + return 0; +} + +void cmd_bw_register(lora32_cfg_t *lora) { + bw_args.bandwidth = arg_int0(NULL, NULL, "", "Bandwidth"); + bw_args.end = arg_end(1); + bw_args.lora = lora; + + const esp_console_cmd_t bw_cmd = { + .command = "bandwidth", + .help = "Set bandwidth", + .hint = NULL, + .func = &set_bw, + .argtable = &bw_args + }; + + ESP_ERROR_CHECK(esp_console_cmd_register(&bw_cmd)); +} diff --git a/main/cmd_dump.c b/main/cmd_dump.c new file mode 100644 index 0000000..dfb11c0 --- /dev/null +++ b/main/cmd_dump.c @@ -0,0 +1,33 @@ +#include +#include +#include "esp_log.h" +#include "esp_console.h" +#include "argtable3/argtable3.h" + +#include "esp32-lora.h" + +static struct { + struct arg_end *end; + lora32_cfg_t *lora; +} dump_args; + +int dump(int argc, char **argv) { + lora32_dump_regs((lora32_cfg_t*)dump_args.lora); + + return 0; +} + +void cmd_dump_register(lora32_cfg_t *lora) { + dump_args.end = arg_end(1); + dump_args.lora = lora; + + const esp_console_cmd_t dump_cmd = { + .command = "dump", + .help = "Dump SX127x registers", + .hint = NULL, + .func = &dump, + .argtable = &dump_args + }; + + ESP_ERROR_CHECK(esp_console_cmd_register(&dump_cmd)); +} diff --git a/main/cmd_settings.c b/main/cmd_settings.c new file mode 100644 index 0000000..b37bab5 --- /dev/null +++ b/main/cmd_settings.c @@ -0,0 +1,10 @@ +#include +#include "cmd_settings.h" + +static struct { + struct arg_end *end; +} settings_args; + +uint8_t init_settings_cmds() { + return 0; +}