APM:Libraries
|
A system for managing and storing variables that are of general interest to the system. More...
#include <stddef.h>
#include <string.h>
#include <stdint.h>
#include <cmath>
#include <AP_HAL/AP_HAL.h>
#include <StorageManager/StorageManager.h>
#include "float.h"
Go to the source code of this file.
Classes | |
class | AP_Param |
struct | AP_Param::GroupInfo |
struct | AP_Param::Info |
struct | AP_Param::ConversionInfo |
struct | AP_Param::ParamToken |
struct | AP_Param::GroupNesting |
struct | AP_Param::EEPROM_header |
struct | AP_Param::Param_header |
struct | AP_Param::param_defaults_struct |
struct | AP_Param::param_override |
class | AP_ParamT< T, PT > |
class | AP_ParamV< T, PT > |
class | AP_ParamA< T, N, PT > |
Macros | |
#define | AP_MAX_NAME_SIZE 16 |
#define | AP_PARAM_KEY_DUMP 0 |
#define | AP_PARAM_MAX_EMBEDDED_PARAM 8192 |
#define | AP_PARAM_FLAG_NESTED_OFFSET (1<<0) |
#define | AP_PARAM_FLAG_POINTER (1<<1) |
#define | AP_PARAM_FLAG_ENABLE (1<<2) |
#define | AP_PARAM_NO_SHIFT (1<<3) |
#define | AP_PARAM_FLAG_INFO_POINTER (1<<4) |
#define | AP_PARAM_FLAG_IGNORE_ENABLE (1<<5) |
#define | AP_PARAM_FRAME_TYPE_SHIFT 6 |
#define | AP_PARAM_FRAME_COPTER (1<<0) |
#define | AP_PARAM_FRAME_ROVER (1<<1) |
#define | AP_PARAM_FRAME_PLANE (1<<2) |
#define | AP_PARAM_FRAME_SUB (1<<3) |
#define | AP_PARAM_FRAME_TRICOPTER (1<<4) |
#define | AP_PARAM_FRAME_HELI (1<<5) |
#define | AP_VAROFFSET(type, element) (((ptrdiff_t)(&((const type *)1)->element))-1) |
#define | AP_CLASSTYPE(clazz, element) ((uint8_t)(((const clazz *) 1)->element.vtype)) |
#define | AP_GROUPINFO_FLAGS(name, idx, clazz, element, def, flags) { AP_CLASSTYPE(clazz, element), idx, name, AP_VAROFFSET(clazz, element), {def_value : def}, flags } |
#define | AP_GROUPINFO_FRAME(name, idx, clazz, element, def, frame_flags) AP_GROUPINFO_FLAGS(name, idx, clazz, element, def, (frame_flags)<<AP_PARAM_FRAME_TYPE_SHIFT ) |
#define | AP_GROUPINFO_FLAGS_FRAME(name, idx, clazz, element, def, flags, frame_flags) AP_GROUPINFO_FLAGS(name, idx, clazz, element, def, flags|((frame_flags)<<AP_PARAM_FRAME_TYPE_SHIFT) ) |
#define | AP_GROUPINFO(name, idx, clazz, element, def) AP_GROUPINFO_FLAGS(name, idx, clazz, element, def, 0) |
#define | AP_NESTEDGROUPINFO(clazz, idx) { AP_PARAM_GROUP, idx, "", 0, { group_info : clazz::var_info }, 0 } |
#define | AP_SUBGROUPINFO(element, name, idx, thisclazz, elclazz) { AP_PARAM_GROUP, idx, name, AP_VAROFFSET(thisclazz, element), { group_info : elclazz::var_info }, AP_PARAM_FLAG_NESTED_OFFSET } |
#define | AP_SUBGROUPINFO_FLAGS(element, name, idx, thisclazz, elclazz, flags) { AP_PARAM_GROUP, idx, name, AP_VAROFFSET(thisclazz, element), { group_info : elclazz::var_info }, AP_PARAM_FLAG_NESTED_OFFSET | flags } |
#define | AP_SUBGROUPEXTENSION(name, idx, clazz, vinfo) { AP_PARAM_GROUP, idx, name, 0, { group_info : clazz::vinfo }, AP_PARAM_FLAG_NESTED_OFFSET } |
#define | AP_SUBGROUPPTR(element, name, idx, thisclazz, elclazz) { AP_PARAM_GROUP, idx, name, AP_VAROFFSET(thisclazz, element), { group_info : elclazz::var_info }, AP_PARAM_FLAG_POINTER } |
#define | AP_SUBGROUPVARPTR(element, name, idx, thisclazz, var_info) { AP_PARAM_GROUP, idx, name, AP_VAROFFSET(thisclazz, element), { group_info_ptr : &var_info }, AP_PARAM_FLAG_POINTER | AP_PARAM_FLAG_INFO_POINTER } |
#define | AP_GROUPEND { AP_PARAM_NONE, 0xFF, "", 0, { group_info : nullptr } } |
#define | AP_VAREND { AP_PARAM_NONE, "", 0, nullptr, { group_info : nullptr } } |
#define | AP_PARAMDEF(_t, _suffix, _pt) typedef AP_ParamT<_t, _pt> AP_ ## _suffix; |
#define | AP_PARAMDEFV(_t, _suffix, _pt) typedef AP_ParamV<_t, _pt> AP_ ## _suffix; |
Enumerations | |
enum | ap_var_type { AP_PARAM_NONE = 0, AP_PARAM_INT8, AP_PARAM_INT16, AP_PARAM_INT32, AP_PARAM_FLOAT, AP_PARAM_VECTOR3F, AP_PARAM_GROUP, AP_PARAM_NONE = 0, AP_PARAM_INT8, AP_PARAM_INT16, AP_PARAM_INT32, AP_PARAM_FLOAT, AP_PARAM_VECTOR3F, AP_PARAM_VECTOR6F, AP_PARAM_MATRIX3F, AP_PARAM_GROUP } |
Functions | |
AP_PARAMDEF (float, Float, AP_PARAM_FLOAT) | |
AP_PARAMDEF (int8_t, Int8, AP_PARAM_INT8) | |
AP_PARAMDEF (int16_t, Int16, AP_PARAM_INT16) | |
AP_PARAMDEF (int32_t, Int32, AP_PARAM_INT32) | |
A system for managing and storing variables that are of general interest to the system.
Definition in file AP_Param.h.
#define AP_CLASSTYPE | ( | clazz, | |
element | |||
) | ((uint8_t)(((const clazz *) 1)->element.vtype)) |
Definition at line 90 of file AP_Param.h.
#define AP_GROUPEND { AP_PARAM_NONE, 0xFF, "", 0, { group_info : nullptr } } |
Definition at line 121 of file AP_Param.h.
Referenced by NotchFilter< Vector3 >::apply(), loop(), and DataFlashTest_AllTypes::loop().
#define AP_GROUPINFO | ( | name, | |
idx, | |||
clazz, | |||
element, | |||
def | |||
) | AP_GROUPINFO_FLAGS(name, idx, clazz, element, def, 0) |
Definition at line 102 of file AP_Param.h.
Referenced by NotchFilter< Vector3 >::apply().
#define AP_GROUPINFO_FLAGS | ( | name, | |
idx, | |||
clazz, | |||
element, | |||
def, | |||
flags | |||
) | { AP_CLASSTYPE(clazz, element), idx, name, AP_VAROFFSET(clazz, element), {def_value : def}, flags } |
Definition at line 93 of file AP_Param.h.
Referenced by NotchFilter< Vector3 >::apply().
#define AP_GROUPINFO_FLAGS_FRAME | ( | name, | |
idx, | |||
clazz, | |||
element, | |||
def, | |||
flags, | |||
frame_flags | |||
) | AP_GROUPINFO_FLAGS(name, idx, clazz, element, def, flags|((frame_flags)<<AP_PARAM_FRAME_TYPE_SHIFT) ) |
Definition at line 99 of file AP_Param.h.
#define AP_GROUPINFO_FRAME | ( | name, | |
idx, | |||
clazz, | |||
element, | |||
def, | |||
frame_flags | |||
) | AP_GROUPINFO_FLAGS(name, idx, clazz, element, def, (frame_flags)<<AP_PARAM_FRAME_TYPE_SHIFT ) |
Definition at line 96 of file AP_Param.h.
#define AP_MAX_NAME_SIZE 16 |
Definition at line 32 of file AP_Param.h.
Referenced by AP_Param::find(), AP_Param::find_group(), GCS_MAVLINK::handle_param_request_read(), GCS_MAVLINK::handle_param_set(), AP_AutoTune::log_param_change(), AP_Param::notify(), GCS_MAVLINK::param_io_timer(), AP_Param::parse_param_line(), GCS_MAVLINK::queued_param_send(), AP_Param::save(), AP_Param::send_parameter(), and AP_Param::set_and_save_by_name().
#define AP_NESTEDGROUPINFO | ( | clazz, | |
idx | |||
) | { AP_PARAM_GROUP, idx, "", 0, { group_info : clazz::var_info }, 0 } |
Definition at line 105 of file AP_Param.h.
#define AP_PARAM_FLAG_ENABLE (1<<2) |
Definition at line 56 of file AP_Param.h.
Referenced by NotchFilter< Vector3 >::apply(), AP_Param::next_scalar(), and AP_Param::save().
#define AP_PARAM_FLAG_IGNORE_ENABLE (1<<5) |
Definition at line 66 of file AP_Param.h.
Referenced by AP_Param::next_scalar().
#define AP_PARAM_FLAG_INFO_POINTER (1<<4) |
Definition at line 63 of file AP_Param.h.
Referenced by AP_Param::get_group_info().
#define AP_PARAM_FLAG_NESTED_OFFSET (1<<0) |
Definition at line 49 of file AP_Param.h.
Referenced by AP_Param::adjust_group_offset().
#define AP_PARAM_FLAG_POINTER (1<<1) |
Definition at line 52 of file AP_Param.h.
Referenced by AP_Param::adjust_group_offset(), AP_Param::check_var_info(), AP_Param::find_key_by_pointer(), AP_Param::find_key_by_pointer_group(), and AP_Param::get_base().
#define AP_PARAM_FRAME_COPTER (1<<0) |
Definition at line 77 of file AP_Param.h.
#define AP_PARAM_FRAME_HELI (1<<5) |
Definition at line 82 of file AP_Param.h.
#define AP_PARAM_FRAME_PLANE (1<<2) |
Definition at line 79 of file AP_Param.h.
#define AP_PARAM_FRAME_ROVER (1<<1) |
Definition at line 78 of file AP_Param.h.
#define AP_PARAM_FRAME_SUB (1<<3) |
Definition at line 80 of file AP_Param.h.
#define AP_PARAM_FRAME_TRICOPTER (1<<4) |
Definition at line 81 of file AP_Param.h.
#define AP_PARAM_FRAME_TYPE_SHIFT 6 |
Definition at line 74 of file AP_Param.h.
Referenced by AP_Param::check_frame_type().
#define AP_PARAM_KEY_DUMP 0 |
Definition at line 35 of file AP_Param.h.
#define AP_PARAM_MAX_EMBEDDED_PARAM 8192 |
Definition at line 41 of file AP_Param.h.
#define AP_PARAM_NO_SHIFT (1<<3) |
Definition at line 60 of file AP_Param.h.
Referenced by AP_Param::group_id().
#define AP_PARAMDEF | ( | _t, | |
_suffix, | |||
_pt | |||
) | typedef AP_ParamT<_t, _pt> AP_ ## _suffix; |
Convenience macro for defining instances of the AP_ParamT template.
Definition at line 856 of file AP_Param.h.
#define AP_PARAMDEFV | ( | _t, | |
_suffix, | |||
_pt | |||
) | typedef AP_ParamV<_t, _pt> AP_ ## _suffix; |
Definition at line 867 of file AP_Param.h.
#define AP_SUBGROUPEXTENSION | ( | name, | |
idx, | |||
clazz, | |||
vinfo | |||
) | { AP_PARAM_GROUP, idx, name, 0, { group_info : clazz::vinfo }, AP_PARAM_FLAG_NESTED_OFFSET } |
Definition at line 113 of file AP_Param.h.
#define AP_SUBGROUPINFO | ( | element, | |
name, | |||
idx, | |||
thisclazz, | |||
elclazz | |||
) | { AP_PARAM_GROUP, idx, name, AP_VAROFFSET(thisclazz, element), { group_info : elclazz::var_info }, AP_PARAM_FLAG_NESTED_OFFSET } |
Definition at line 109 of file AP_Param.h.
#define AP_SUBGROUPINFO_FLAGS | ( | element, | |
name, | |||
idx, | |||
thisclazz, | |||
elclazz, | |||
flags | |||
) | { AP_PARAM_GROUP, idx, name, AP_VAROFFSET(thisclazz, element), { group_info : elclazz::var_info }, AP_PARAM_FLAG_NESTED_OFFSET | flags } |
Definition at line 110 of file AP_Param.h.
#define AP_SUBGROUPPTR | ( | element, | |
name, | |||
idx, | |||
thisclazz, | |||
elclazz | |||
) | { AP_PARAM_GROUP, idx, name, AP_VAROFFSET(thisclazz, element), { group_info : elclazz::var_info }, AP_PARAM_FLAG_POINTER } |
Definition at line 116 of file AP_Param.h.
#define AP_SUBGROUPVARPTR | ( | element, | |
name, | |||
idx, | |||
thisclazz, | |||
var_info | |||
) | { AP_PARAM_GROUP, idx, name, AP_VAROFFSET(thisclazz, element), { group_info_ptr : &var_info }, AP_PARAM_FLAG_POINTER | AP_PARAM_FLAG_INFO_POINTER } |
Definition at line 119 of file AP_Param.h.
#define AP_VAREND { AP_PARAM_NONE, "", 0, nullptr, { group_info : nullptr } } |
Definition at line 122 of file AP_Param.h.
#define AP_VAROFFSET | ( | type, | |
element | |||
) | (((ptrdiff_t)(&((const type *)1)->element))-1) |
Definition at line 87 of file AP_Param.h.
enum ap_var_type |
Definition at line 124 of file AP_Param.h.
AP_PARAMDEF | ( | float | , |
Float | , | ||
AP_PARAM_FLOAT | |||
) |
AP_PARAMDEF | ( | int8_t | , |
Int8 | , | ||
AP_PARAM_INT8 | |||
) |
AP_PARAMDEF | ( | int16_t | , |
Int16 | , | ||
AP_PARAM_INT16 | |||
) |
AP_PARAMDEF | ( | int32_t | , |
Int32 | , | ||
AP_PARAM_INT32 | |||
) |