mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-28 07:30:34 +08:00
implemented reset with excludes
This commit is contained in:
committed by
Lorenz Meier
parent
4b1ddba817
commit
7c63be7450
@@ -488,6 +488,31 @@ param_reset_all(void)
|
||||
param_notify_changes();
|
||||
}
|
||||
|
||||
void
|
||||
param_reset_excludes(const char* excludes[], int num_excludes)
|
||||
{
|
||||
param_lock();
|
||||
|
||||
param_t param;
|
||||
|
||||
for (param = 0; handle_in_range(param); param++) {
|
||||
const char* name = param_name(param);
|
||||
|
||||
for (int index = 0, len = strlen(excludes[index]); index < num_excludes; index ++) {
|
||||
if((excludes[index][len - 1] == '*'
|
||||
&& strncmp(name, excludes[index], strlen(excludes[index]))) == 0
|
||||
|| strcmp(name, excludes[index]) == 0) {
|
||||
|
||||
param_reset(param);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
param_unlock();
|
||||
|
||||
param_notify_changes();
|
||||
}
|
||||
|
||||
static const char *param_default_file = "/eeprom/parameters";
|
||||
static char *param_user_file = NULL;
|
||||
|
||||
|
||||
@@ -189,6 +189,18 @@ __EXPORT int param_reset(param_t param);
|
||||
*/
|
||||
__EXPORT void param_reset_all(void);
|
||||
|
||||
|
||||
/**
|
||||
* Reset all parameters to their default values except for excluded parameters.
|
||||
*
|
||||
* This function also releases the storage used by struct parameters.
|
||||
*
|
||||
* @param excludes Array of param names to exclude from resetting. Use a wildcard
|
||||
* at the end to exclude parameters with a certain prefix.
|
||||
* @param num_excludes The number of excludes provided.
|
||||
*/
|
||||
__EXPORT void param_reset_excludes(const char* excludes[], int num_excludes);
|
||||
|
||||
/**
|
||||
* Export changed parameters to a file.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user