Add a settings console command
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
idf_component_register(
|
idf_component_register(
|
||||||
SRCS "settings.c"
|
SRCS "settings.c"
|
||||||
INCLUDE_DIRS "."
|
INCLUDE_DIRS "."
|
||||||
REQUIRES fatal nvs_flash
|
REQUIRES console_wrapper fatal nvs_flash
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
|
||||||
|
#include "console.h"
|
||||||
#include "fatal.h"
|
#include "fatal.h"
|
||||||
|
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
@@ -165,6 +166,34 @@ static void add_callback(ItemIndex item, SettingsCallback callback)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int command_func(int argc, char **argv)
|
||||||
|
{
|
||||||
|
if (argc == 2) {
|
||||||
|
for (unsigned i = 0; i < ITEM_COUNT; ++i) {
|
||||||
|
if (strcmp(state[i].id, argv[1]) != 0)
|
||||||
|
continue;
|
||||||
|
char buffer[SETTINGS_MAX_VALUE_SIZE];
|
||||||
|
(void)get(i, buffer, SETTINGS_MAX_VALUE_SIZE);
|
||||||
|
printf("%s\n", buffer);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
printf("Setting not found\n");
|
||||||
|
return 1;
|
||||||
|
} else if (argc == 3) {
|
||||||
|
for (unsigned i = 0; i < ITEM_COUNT; ++i) {
|
||||||
|
if (strcmp(state[i].id, argv[1]) != 0)
|
||||||
|
continue;
|
||||||
|
set(i, argv[2]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
printf("Setting not found\n");
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
printf("Invalid number of arguments\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void settings_init()
|
void settings_init()
|
||||||
{
|
{
|
||||||
esp_err_t error;
|
esp_err_t error;
|
||||||
@@ -187,6 +216,10 @@ void settings_init()
|
|||||||
save(item);
|
save(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console_register(
|
||||||
|
"settings", "Get or set a setting",
|
||||||
|
"settings <id> OR settings <id> <value>", command_func);
|
||||||
}
|
}
|
||||||
|
|
||||||
void settings_set_hostname(const char *hostname)
|
void settings_set_hostname(const char *hostname)
|
||||||
|
|||||||
Reference in New Issue
Block a user