mirror of https://github.com/ArduPilot/ardupilot
AP_OSD: use new param defualting method
This commit is contained in:
parent
dcfc6ae642
commit
82dabd1872
|
@ -72,11 +72,15 @@ public:
|
|||
AP_Int8 xpos;
|
||||
AP_Int8 ypos;
|
||||
|
||||
AP_OSD_Setting();
|
||||
AP_OSD_Setting(bool enabled, uint8_t x, uint8_t y);
|
||||
AP_OSD_Setting(bool enabled = 0, uint8_t x = 0, uint8_t y = 0);
|
||||
|
||||
// User settable parameters
|
||||
static const struct AP_Param::GroupInfo var_info[];
|
||||
|
||||
private:
|
||||
const float default_enabled;
|
||||
const float default_xpos;
|
||||
const float default_ypos;
|
||||
};
|
||||
|
||||
class AP_OSD;
|
||||
|
@ -384,6 +388,13 @@ public:
|
|||
static const struct AP_Param::GroupInfo var_info[];
|
||||
|
||||
private:
|
||||
float default_enabled;
|
||||
float default_ypos;
|
||||
float default_param_group;
|
||||
float default_param_idx;
|
||||
float default_param_key;
|
||||
float default_type;
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -35,7 +35,7 @@ const AP_Param::GroupInfo AP_OSD_ParamSetting::var_info[] = {
|
|||
// @Description: Enable setting
|
||||
// @Values: 0:Disabled,1:Enabled
|
||||
// @User: Standard
|
||||
AP_GROUPINFO("_EN", 1, AP_OSD_ParamSetting, enabled, 0),
|
||||
AP_GROUPINFO_FLAGS_DEFAULT_POINTER("_EN", 1, AP_OSD_ParamSetting, enabled, default_enabled),
|
||||
|
||||
// @Param: _X
|
||||
// @DisplayName: X position
|
||||
|
@ -49,7 +49,7 @@ const AP_Param::GroupInfo AP_OSD_ParamSetting::var_info[] = {
|
|||
// @Description: Vertical position on screen
|
||||
// @Range: 0 15
|
||||
// @User: Standard
|
||||
AP_GROUPINFO("_Y", 3, AP_OSD_ParamSetting, ypos, 0),
|
||||
AP_GROUPINFO_FLAGS_DEFAULT_POINTER("_Y", 3, AP_OSD_ParamSetting, ypos, default_ypos),
|
||||
|
||||
// Parameter access keys. These default to -1 too allow user overrides
|
||||
// to work properly
|
||||
|
@ -58,19 +58,19 @@ const AP_Param::GroupInfo AP_OSD_ParamSetting::var_info[] = {
|
|||
// @DisplayName: Parameter key
|
||||
// @Description: Key of the parameter to be displayed and modified
|
||||
// @User: Standard
|
||||
AP_GROUPINFO("_KEY", 4, AP_OSD_ParamSetting, _param_key, -1),
|
||||
AP_GROUPINFO_FLAGS_DEFAULT_POINTER("_KEY", 4, AP_OSD_ParamSetting, _param_key, default_param_key),
|
||||
|
||||
// @Param: _IDX
|
||||
// @DisplayName: Parameter index
|
||||
// @Description: Index of the parameter to be displayed and modified
|
||||
// @User: Standard
|
||||
AP_GROUPINFO("_IDX", 5, AP_OSD_ParamSetting, _param_idx, -1),
|
||||
AP_GROUPINFO_FLAGS_DEFAULT_POINTER("_IDX", 5, AP_OSD_ParamSetting, _param_idx, default_param_idx),
|
||||
|
||||
// @Param: _GRP
|
||||
// @DisplayName: Parameter group
|
||||
// @Description: Group of the parameter to be displayed and modified
|
||||
// @User: Standard
|
||||
AP_GROUPINFO("_GRP", 6, AP_OSD_ParamSetting, _param_group, -1),
|
||||
AP_GROUPINFO_FLAGS_DEFAULT_POINTER("_GRP", 6, AP_OSD_ParamSetting, _param_group, default_param_group),
|
||||
|
||||
// @Param: _MIN
|
||||
// @DisplayName: Parameter minimum
|
||||
|
@ -94,7 +94,7 @@ const AP_Param::GroupInfo AP_OSD_ParamSetting::var_info[] = {
|
|||
// @DisplayName: Parameter type
|
||||
// @Description: Type of the parameter to be displayed and modified
|
||||
// @User: Standard
|
||||
AP_GROUPINFO("_TYPE", 10, AP_OSD_ParamSetting, _type, 0),
|
||||
AP_GROUPINFO_FLAGS_DEFAULT_POINTER("_TYPE", 10, AP_OSD_ParamSetting, _type, default_type),
|
||||
|
||||
AP_GROUPEND
|
||||
};
|
||||
|
@ -237,26 +237,27 @@ const AP_OSD_ParamSetting::ParamMetadata AP_OSD_ParamSetting::_param_metadata[OS
|
|||
extern const AP_HAL::HAL& hal;
|
||||
|
||||
// default constructor that just sets some sensible defaults that exist on all platforms
|
||||
AP_OSD_ParamSetting::AP_OSD_ParamSetting(uint8_t param_number)
|
||||
: _param_number(param_number)
|
||||
AP_OSD_ParamSetting::AP_OSD_ParamSetting(uint8_t param_number) :
|
||||
_param_number(param_number),
|
||||
default_ypos(param_number + 1),
|
||||
default_param_group(-1),
|
||||
default_param_idx(-1),
|
||||
default_param_key(-1)
|
||||
{
|
||||
AP_Param::setup_object_defaults(this, var_info);
|
||||
|
||||
ypos.set(param_number + 1);
|
||||
}
|
||||
|
||||
// construct a setting from a compact static initializer structure
|
||||
AP_OSD_ParamSetting::AP_OSD_ParamSetting(const Initializer& initializer)
|
||||
: _param_number(initializer.index)
|
||||
AP_OSD_ParamSetting::AP_OSD_ParamSetting(const Initializer& initializer) :
|
||||
_param_number(initializer.index),
|
||||
default_enabled(true),
|
||||
default_ypos(initializer.index + 1),
|
||||
default_param_group(initializer.token.group_element),
|
||||
default_param_idx(initializer.token.idx),
|
||||
default_param_key(initializer.token.key),
|
||||
default_type(initializer.type)
|
||||
{
|
||||
AP_Param::setup_object_defaults(this, var_info);
|
||||
|
||||
enabled.set(true);
|
||||
ypos.set(initializer.index + 1);
|
||||
_param_group.set(initializer.token.group_element);
|
||||
_param_idx.set(initializer.token.idx);
|
||||
_param_key.set(initializer.token.key);
|
||||
_type.set(initializer.type);
|
||||
}
|
||||
|
||||
// update the contained parameter
|
||||
|
|
|
@ -29,36 +29,30 @@ const AP_Param::GroupInfo AP_OSD_Setting::var_info[] = {
|
|||
// @Description: Enable setting
|
||||
// @Values: 0:Disabled,1:Enabled
|
||||
// @User: Standard
|
||||
AP_GROUPINFO("_EN", 1, AP_OSD_Setting, enabled, 0),
|
||||
AP_GROUPINFO_FLAGS_DEFAULT_POINTER("_EN", 1, AP_OSD_Setting, enabled, default_enabled),
|
||||
|
||||
// @Param: _X
|
||||
// @DisplayName: X position
|
||||
// @Description: Horizontal position on screen
|
||||
// @Range: 0 29
|
||||
// @User: Standard
|
||||
AP_GROUPINFO("_X", 2, AP_OSD_Setting, xpos, 0),
|
||||
AP_GROUPINFO_FLAGS_DEFAULT_POINTER("_X", 2, AP_OSD_Setting, xpos, default_xpos),
|
||||
|
||||
// @Param: _Y
|
||||
// @DisplayName: Y position
|
||||
// @Description: Vertical position on screen
|
||||
// @Range: 0 15
|
||||
// @User: Standard
|
||||
AP_GROUPINFO("_Y", 3, AP_OSD_Setting, ypos, 0),
|
||||
AP_GROUPINFO_FLAGS_DEFAULT_POINTER("_Y", 3, AP_OSD_Setting, ypos, default_ypos),
|
||||
|
||||
AP_GROUPEND
|
||||
};
|
||||
|
||||
// constructors
|
||||
AP_OSD_Setting::AP_OSD_Setting()
|
||||
// constructor
|
||||
AP_OSD_Setting::AP_OSD_Setting(bool _enabled, uint8_t x, uint8_t y) :
|
||||
default_enabled(_enabled),
|
||||
default_xpos(x),
|
||||
default_ypos(y)
|
||||
{
|
||||
AP_Param::setup_object_defaults(this, var_info);
|
||||
}
|
||||
|
||||
|
||||
AP_OSD_Setting::AP_OSD_Setting(bool _enabled, uint8_t x, uint8_t y) :
|
||||
AP_OSD_Setting()
|
||||
{
|
||||
enabled.set(_enabled);
|
||||
xpos.set(x);
|
||||
ypos.set(y);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue