diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-05-08 20:20:29 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-05-08 20:21:02 +0200 |
commit | e4c0a224af5a2835e08786a2d3ed3e641cfcb22d (patch) | |
tree | 9451c5a8ffe6d77370213b4e4fa777b1fec7937c /src/systemcmds | |
parent | 45be38c33363921b00ff764da7f87aaf8ec591c5 (diff) | |
download | px4-firmware-e4c0a224af5a2835e08786a2d3ed3e641cfcb22d.tar.gz px4-firmware-e4c0a224af5a2835e08786a2d3ed3e641cfcb22d.tar.bz2 px4-firmware-e4c0a224af5a2835e08786a2d3ed3e641cfcb22d.zip |
Fix a param save issue where a state variable might preven the parameters from being saved (identified and fixed by ultrasystem)
Diffstat (limited to 'src/systemcmds')
-rw-r--r-- | src/systemcmds/param/param.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/systemcmds/param/param.c b/src/systemcmds/param/param.c index 0cbba0a37..984d19bd9 100644 --- a/src/systemcmds/param/param.c +++ b/src/systemcmds/param/param.c @@ -63,6 +63,7 @@ static void do_show(const char* search_string); static void do_show_print(void *arg, param_t param); static void do_set(const char* name, const char* val); static void do_compare(const char* name, const char* vals[], unsigned comparisons); +static void do_reset(); int param_main(int argc, char *argv[]) @@ -130,6 +131,10 @@ param_main(int argc, char *argv[]) errx(1, "not enough arguments.\nTry 'param compare PARAM_NAME 3'"); } } + + if (!strcmp(argv[1], "reset")) { + do_reset(); + } } errx(1, "expected a command, try 'load', 'import', 'show', 'set', 'compare', 'select' or 'save'"); @@ -402,3 +407,16 @@ do_compare(const char* name, const char* vals[], unsigned comparisons) exit(ret); } + +static void +do_reset() +{ + param_reset_all(); + + if (param_save_default()) { + warnx("Param export failed."); + exit(1); + } else { + exit(0); + } +} |