mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-31 02:16:53 +08:00
param: enable reseting specific parameters from shell
Renaming previous "param reset" to "param reset_all".
This commit is contained in:
@@ -278,6 +278,16 @@ __EXPORT void param_reset_all(void);
|
||||
*/
|
||||
__EXPORT void param_reset_excludes(const char *excludes[], int num_excludes);
|
||||
|
||||
/**
|
||||
* Reset only specific parameters to their default values.
|
||||
*
|
||||
* This function also releases the storage used by struct parameters.
|
||||
*
|
||||
* @param resets Array of param names to reset. Use a wildcard at the end to reset parameters with a certain prefix.
|
||||
* @param num_resets The number of passed reset conditions in the resets array.
|
||||
*/
|
||||
__EXPORT void param_reset_specific(const char *resets[], int num_resets);
|
||||
|
||||
/**
|
||||
* Export changed parameters to a file.
|
||||
* Note: this method requires a large amount of stack size!
|
||||
|
||||
@@ -881,8 +881,33 @@ param_reset_excludes(const char *excludes[], int num_excludes)
|
||||
param_reset(param);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_param_notify_changes();
|
||||
void
|
||||
param_reset_specific(const char *resets[], int num_resets)
|
||||
{
|
||||
param_t param;
|
||||
|
||||
for (param = 0; handle_in_range(param); param++) {
|
||||
const char *name = param_name(param);
|
||||
bool reset = false;
|
||||
|
||||
for (int index = 0; index < num_resets; index++) {
|
||||
int len = strlen(resets[index]);
|
||||
|
||||
if ((resets[index][len - 1] == '*'
|
||||
&& strncmp(name, resets[index], len - 1) == 0)
|
||||
|| strcmp(name, resets[index]) == 0) {
|
||||
|
||||
reset = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (reset) {
|
||||
param_reset(param);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
|
||||
Reference in New Issue
Block a user