param: enable reseting specific parameters from shell

Renaming previous "param reset" to "param reset_all".
This commit is contained in:
Matthias Grob
2020-08-26 16:05:56 +02:00
parent f70dda12a6
commit ce9954a919
6 changed files with 65 additions and 10 deletions
+10
View File
@@ -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!
+26 -1
View File
@@ -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