diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-01 13:42:32 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-01 13:42:32 +0200 |
commit | d0b78aa8a09cd4259258ab10b77c98e907c3b460 (patch) | |
tree | 153799dc5c51d86a7e9cc92f62b14f77417d869e /src | |
parent | 29cd95ebad11380026c58343deeaf5bf334ad01c (diff) | |
download | px4-firmware-d0b78aa8a09cd4259258ab10b77c98e907c3b460.tar.gz px4-firmware-d0b78aa8a09cd4259258ab10b77c98e907c3b460.tar.bz2 px4-firmware-d0b78aa8a09cd4259258ab10b77c98e907c3b460.zip |
Add param command which does not reset the autostart params to not hamper auto-config
Diffstat (limited to 'src')
-rw-r--r-- | src/systemcmds/param/param.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/systemcmds/param/param.c b/src/systemcmds/param/param.c index 328205e29..f8bff2f6f 100644 --- a/src/systemcmds/param/param.c +++ b/src/systemcmds/param/param.c @@ -64,6 +64,7 @@ static void do_show_print(void *arg, param_t param); 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_reset(void); +static void do_reset_nostart(void); int param_main(int argc, char *argv[]) @@ -142,6 +143,10 @@ param_main(int argc, char *argv[]) if (!strcmp(argv[1], "reset")) { do_reset(); } + + if (!strcmp(argv[1], "reset_nostart")) { + do_reset_nostart(); + } } errx(1, "expected a command, try 'load', 'import', 'show', 'set', 'compare', 'select' or 'save'"); @@ -427,3 +432,26 @@ do_reset(void) exit(0); } } + +static void +do_reset_nostart(void) +{ + + int32_t autostart; + int32_t autoconfig; + + (void)param_get(param_find("SYS_AUTOSTART"), &autostart); + (void)param_get(param_find("SYS_AUTOCONFIG"), &autoconfig); + + param_reset_all(); + + (void)param_set(param_find("SYS_AUTOSTART"), &autostart); + (void)param_set(param_find("SYS_AUTOCONFIG"), &autoconfig); + + if (param_save_default()) { + warnx("Param export failed."); + exit(1); + } else { + exit(0); + } +} |