ardupilot/libraries
DrZiplok@gmail.com 1a2ce433e1 I never liked the plan that variable groups could only be statically scoped; it was much too fragile. These changes address that issue by splitting the global variable list into two lists, one for standalone variables (including groups), and one for variables that are members of a group.
Now a variable belonging to a group can safely be constructed before the group it belongs to, and the group can be destroyed before its member variables.  This greatly simplifies the AP_Var constructor(s).

Remove the lookup-by-index and lookup-by-key interfaces to AP_Var and replace them with first/next interfaces for all variables, and for variables belonging to a specific group.  Document their usage.  Add an accessor for the key associated with a variable so that search-by-key can be performed by a consumer.  Throw away the lookup cache implementation, as it's not required anymore.

Re-layout the EEPROM variable header and tweak the EEPROM space allocator so that it's more resistant to interruptions during variable save.

Fix the global constants so that they work.

Add an interface for erasing all variables in EEPROM (only writes one byte).

Fix unit tests so that they work with the changed interfaces.  Also tweak the unit test framework so that it doesn't inline all its code.  This is a WIP - many more tests need to be written still.


git-svn-id: https://arducopter.googlecode.com/svn/trunk@1531 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-01-23 06:52:59 +00:00
..
APM_BMP085 APM_BMP085 - added InitialiseWireLib parameter to Init function. This allows us to skip the Wire.begin which should only be called once. 2010-11-22 12:55:34 +00:00
APM_BinComm Recover 256 bytes of RAM by making the packet transmission code smarter. Now we emit the packet directly from the procedure parameters, rather than wasting time and space packing it into a temporary buffer. 2010-11-11 07:16:32 +00:00
APM_PerfMon modified APM_PerfMon to display results sorted by %cpu 2010-11-03 07:49:37 +00:00
APM_RC Deal more gracefully with the case where the incoming PPM stream has more than 8 channels encoded. 2011-01-15 19:32:04 +00:00
AP_ADC Corrected adc conversion. 2010-12-12 07:34:12 +00:00
AP_Common I never liked the plan that variable groups could only be statically scoped; it was much too fragile. These changes address that issue by splitting the global variable list into two lists, one for standalone variables (including groups), and one for variables that are members of a group. 2011-01-23 06:52:59 +00:00
AP_Compass use memset rather than explicit assignments to zero to zero an array, this saves code space. 2010-12-28 23:32:37 +00:00
AP_Controller Added AP_Controller library. 2010-12-31 06:20:28 +00:00
AP_DCM We should call imu.update() before asking for accel/gyro values so that we get timely, fresh numbers. 2010-12-30 07:52:35 +00:00
AP_EEPROMB Added basic EEPROM library back. 2010-12-23 23:29:59 +00:00
AP_EEProm Fixed casting issues with EEPROM Registry 2010-12-30 06:46:40 +00:00
AP_GPS Add back AP_GPS_IMU to provide Xplane functionality 2011-01-17 01:50:34 +00:00
AP_IMU Added getter functions to accels 2011-01-16 20:42:11 +00:00
AP_Math Back out the memset optimisation. It helps with code size but causes inexplicable link-time failures (undefined references to __cxa_pure_virtual). 2010-12-29 03:09:29 +00:00
AP_Navigation still unstable 2010-09-18 19:18:55 +00:00
AP_RC Mega328 version of APM_RC 2010-12-20 06:09:15 +00:00
AP_RangeFinder AP_RangeFinder_test.pde - corrected some inaccurate comments in the code 2011-01-09 14:20:26 +00:00
AP_RcChannel Updated AP_RcChannel for AP_Var. 2011-01-18 04:56:45 +00:00
DataFlash Some changes to fix compile errors when using ATmega2560. 2010-12-19 13:05:02 +00:00
FastSerial Extend the logic that preserves buffer sizing on re-begin by also avoiding freeing and re-allocating buffers when they don't change in size. 2011-01-10 08:17:31 +00:00
GCS_MAVLink Update to current MAVLink dev branch protocol version. This has NOT been tested yet. 2011-01-12 08:57:54 +00:00
GPS_IMU Some changes to fix compile errors when using ATmega2560. 2010-12-19 13:05:02 +00:00
GPS_MTK Some changes to fix compile errors when using ATmega2560. 2010-12-19 13:05:02 +00:00
GPS_NMEA Some changes to fix compile errors when using ATmega2560. 2010-12-19 13:05:02 +00:00
GPS_UBLOX Some changes to fix compile errors when using ATmega2560. 2010-12-19 13:05:02 +00:00
PID Reinstate Float loading and saving 2011-01-17 22:57:48 +00:00
RC_Channel Add initial values for scaling and dead zone to RC_Channel constructor 2011-01-17 04:05:48 +00:00
Waypoints still unstable 2010-09-18 19:18:55 +00:00
doc Checking these in makes the libraries too bulky. We need to host them somewhere. 2011-01-04 06:22:02 +00:00
.cproject Add Eclipse project metadata. 2010-12-29 20:35:16 +00:00
.project Add Eclipse project metadata. 2010-12-29 20:35:16 +00:00