mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-23 14:47:44 +08:00
parameters: add new param_get_default_value()
This commit is contained in:
@@ -215,6 +215,16 @@ __EXPORT size_t param_size(param_t param);
|
||||
*/
|
||||
__EXPORT int param_get(param_t param, void *val);
|
||||
|
||||
/**
|
||||
* Copy the default value of a parameter.
|
||||
*
|
||||
* @param param A handle returned by param_find or passed by param_foreach.
|
||||
* @param val Where to return the value, assumed to point to suitable storage for the parameter type.
|
||||
* For structures, a bitwise copy of the structure is performed to this address.
|
||||
* @return Zero if the parameter's deafult value could be returned, nonzero otherwise.
|
||||
*/
|
||||
__EXPORT int param_get_default_value(param_t param, void *val);
|
||||
|
||||
/**
|
||||
* Set the value of a parameter.
|
||||
*
|
||||
|
||||
@@ -581,6 +581,24 @@ param_get(param_t param, void *val)
|
||||
return result;
|
||||
}
|
||||
|
||||
int
|
||||
param_get_default_value(param_t param, void *default_val)
|
||||
{
|
||||
if (default_val && handle_in_range(param)) {
|
||||
switch (param_type(param)) {
|
||||
case PARAM_TYPE_INT32:
|
||||
memcpy(default_val, ¶m_info_base[param].val.i, param_size(param));
|
||||
return 0;
|
||||
|
||||
case PARAM_TYPE_FLOAT:
|
||||
memcpy(default_val, ¶m_info_base[param].val.f, param_size(param));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* worker callback method to save the parameters
|
||||
* @param arg unused
|
||||
|
||||
Reference in New Issue
Block a user