forked from Archive/PX4-Autopilot
Let the param set command default to non-failing, because unknown params are in the script default init not a reason to give up on the complete boot
This commit is contained in:
parent
e5d28b2393
commit
c646a8ff1d
|
@ -61,7 +61,7 @@ static void do_load(const char* param_file_name);
|
||||||
static void do_import(const char* param_file_name);
|
static void do_import(const char* param_file_name);
|
||||||
static void do_show(const char* search_string);
|
static void do_show(const char* search_string);
|
||||||
static void do_show_print(void *arg, param_t param);
|
static void do_show_print(void *arg, param_t param);
|
||||||
static void do_set(const char* name, const char* val);
|
static void do_set(const char* name, const char* val, bool fail_on_not_found);
|
||||||
static void do_compare(const char* name, const char* vals[], unsigned comparisons);
|
static void do_compare(const char* name, const char* vals[], unsigned comparisons);
|
||||||
static void do_reset();
|
static void do_reset();
|
||||||
|
|
||||||
|
@ -117,10 +117,17 @@ param_main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(argv[1], "set")) {
|
if (!strcmp(argv[1], "set")) {
|
||||||
if (argc >= 4) {
|
if (argc >= 5) {
|
||||||
do_set(argv[2], argv[3]);
|
|
||||||
|
/* if the fail switch is provided, fails the command if not found */
|
||||||
|
bool fail = !strcmp(argv[4], "fail");
|
||||||
|
|
||||||
|
do_set(argv[2], argv[3], fail);
|
||||||
|
|
||||||
|
} else if (argc >= 4) {
|
||||||
|
do_set(argv[2], argv[3], false);
|
||||||
} else {
|
} else {
|
||||||
errx(1, "not enough arguments.\nTry 'param set PARAM_NAME 3'");
|
errx(1, "not enough arguments.\nTry 'param set PARAM_NAME 3 [fail]'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -282,7 +289,7 @@ do_show_print(void *arg, param_t param)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
do_set(const char* name, const char* val)
|
do_set(const char* name, const char* val, bool fail_on_not_found)
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i;
|
||||||
float f;
|
float f;
|
||||||
|
@ -290,8 +297,8 @@ do_set(const char* name, const char* val)
|
||||||
|
|
||||||
/* set nothing if parameter cannot be found */
|
/* set nothing if parameter cannot be found */
|
||||||
if (param == PARAM_INVALID) {
|
if (param == PARAM_INVALID) {
|
||||||
/* param not found */
|
/* param not found - fail silenty in scripts as it prevents booting */
|
||||||
errx(1, "Error: Parameter %s not found.", name);
|
errx(((fail_on_not_found) ? 1 : 0), "Error: Parameter %s not found.", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("%c %s: ",
|
printf("%c %s: ",
|
||||||
|
|
Loading…
Reference in New Issue