Andrew Tridgell
f1a389fe19
AP_Param: ensure we can't have duplicate keys in Parameters.h
...
this is O(n^2), but only at startup, and takes less than 1ms to run.
It catches a very nasty coding error
2012-03-02 15:48:28 +11:00
Pat Hickey
8fa559930f
AP_Param: nested group recursion into next_group disableable by macro
...
* c.f. 0251932c81fe7eb, e5515bb6ef82
2012-02-29 19:48:43 -08:00
Pat Hickey
8b3d013294
AP_Param: One more nexted group recursion disableable by macro
...
* c.f. e5515bb6ef82
2012-02-29 18:48:54 -08:00
Pat Hickey
42078f2794
AP_Param: Make nested group recursion disableable by macro
...
* Eliminates recursive calls inside AP_Param.
This is important to Pat @ Galois, but not the project in general.
Recursion depth on these functions is bounded structurally using
existing nested group constructors (can't create loops in finite space)
and checked at init time
2012-02-28 16:28:27 -08:00
Andrew Tridgell
701da6c30f
AP_Param: fixed v.load() on a sub-element of a AP_Vector3f
...
this isn't actually used at the moment in APM, but we should get it
right in case someone does try to load a single element of a vector
2012-02-28 09:43:49 +11:00
Andrew Tridgell
ac44b73951
AP_Param: fixed setting of CAM_P_G in ArduCopter
...
the variable CAM_P_G has the same prefix as the CAM_P group. We want
to allow for parameters having a common prefix with a group, so we
need to keep searching after we've found a group that matches the
prefix
2012-02-27 10:54:33 +11:00
Andrew Tridgell
051bd78b37
AP_Param: added some comments on AP_Vector3f handling
2012-02-25 11:37:20 +11:00
Andrew Tridgell
007a6b8958
AP_Param: added special handling for Vector3f
...
We would like to be able to use Vector3f as a parameter while exposing
the individual elements of the vector as MAVLink parameters. This
change to AP_Param makes that possible, by giving AP_Vector3f a dual
personality
2012-02-25 11:37:20 +11:00
Andrew Tridgell
f30c721886
AP_Param: added ParamToken type for variable list traversal
2012-02-19 17:05:28 +11:00
Andrew Tridgell
2b8f0c3a48
AP_Param: moved AP_Vector3f and AP_Matrix3f declarations to AP_Math.h
...
this avoids us needing AP_Math.h in every utility sketch and example
2012-02-18 10:51:57 +11:00
Andrew Tridgell
6f080742b8
AP_Param: added an initialised() method
...
this will be used by the compass code
2012-02-18 10:51:57 +11:00
Andrew Tridgell
6c20ff9492
AP_Param: allow dumping of AP_Vector3f
...
this means the 'show' command in the CLI shows the compass offsets now
2012-02-14 08:34:50 +11:00
Andrew Tridgell
16a5b5c3ee
added AP_Param::show_all()
...
this moves the logic into common code
2012-02-13 16:22:52 +11:00
Andrew Tridgell
ee2cb32a44
change back to 256 max variables in _var_info[]
...
this keeps the header to 24 bits, and allows the token to be 16
bits. If we need more variables we can put them in a nested group.
2012-02-13 16:22:52 +11:00
Andrew Tridgell
7621b96a52
AP_Param: added group idx, and change packing of header elements
...
adding a idx element to the GroupInfo will make it less likely that a
developer will change the IDs of group elements, and make it easier to
see that these IDs are important for identifying a variable in EEPROM
The header packing has changed to make it 24 bits on all platforms,
which allows us to lower the EEPROM variable max size to 1024 bytes
again
2012-02-13 16:22:52 +11:00
Andrew Tridgell
711cee9dfa
fixed support for AP_PARAM_SPARE
...
spare group elements are needed if we remove a group parameter
2012-02-13 16:22:52 +11:00
Andrew Tridgell
db8a58f994
fixed build on arduino 1.0
2012-02-13 16:22:52 +11:00
Andrew Tridgell
244d2055ff
AP_Param: fixed desktop build
2012-02-13 16:22:51 +11:00
Andrew Tridgell
34bc88eab5
AP_Param: added generic cast_to_float
2012-02-13 16:22:51 +11:00
Andrew Tridgell
a1057fe738
AP_Param: disable debug ready for production
2012-02-13 16:22:51 +11:00
Andrew Tridgell
7ffb9b462d
AP_Param: make ptype in first() and next() optional
2012-02-13 16:22:51 +11:00
Andrew Tridgell
b6ee5ca982
added nested group support and validation
2012-02-13 16:22:51 +11:00
Andrew Tridgell
30c76664ce
added size of Vector6f
2012-02-13 16:22:51 +11:00
Andrew Tridgell
937f8a4741
new AP_Param subsystem
2012-02-13 16:22:50 +11:00