mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-07 17:35:22 +08:00
Param interface: Only mark as changed if value changed
This commit is contained in:
@@ -538,10 +538,12 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
|
||||
switch (param_type(param)) {
|
||||
|
||||
case PARAM_TYPE_INT32:
|
||||
params_changed = s->val.i != *(int32_t *)val;
|
||||
s->val.i = *(int32_t *)val;
|
||||
break;
|
||||
|
||||
case PARAM_TYPE_FLOAT:
|
||||
params_changed = fabsf(s->val.f - *(float *)val) > FLT_EPSILON;
|
||||
s->val.f = *(float *)val;
|
||||
break;
|
||||
|
||||
@@ -556,6 +558,7 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
|
||||
}
|
||||
|
||||
memcpy(s->val.p, val, param_size(param));
|
||||
params_changed = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -563,7 +566,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
|
||||
}
|
||||
|
||||
s->unsaved = !mark_saved;
|
||||
params_changed = true;
|
||||
result = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user