ardupilot/libraries
Lucas De Marchi caae933c28 AP_InertialSensor: Add support for auxiliary buses
Add an AuxiliaryBus class that can be derived for specific
implementations in inertial sensor backends. It's an abstract
implementation so other libraries can use the auxiliary bus exported. In
order for this to succeed the backend implementation must split the
initialization of the sensor from the actual sample collecting, like is
done in MPU6000.

When AP_InertialSensor::get_auxiliary_bus() is called it will execute
following steps:
	a) Force the backends to be detected if it's the first time it's
	   being called
	b) Find the backend identified by the id
	c) call get_auxiliary_bus() on the backend so other libraries can
	   that AuxiliaryBus to initialize a slave device

Slave devices can be used by calling AuxiliaryBus::request_next_slave()
and are owned by the caller until AuxiliaryBus::register_periodic_read()
is called. From that time on the AuxiliaryBus object takes its ownership.
This way it's possible to do the necessary cleanup later without
introducing refcounts, that we don't have support to.

Between these 2 functions the caller can configure the slave device by
doing its specific initializations by calling the passthrough_*
functions. After the initial configuration and register_periodic_read()
is called only read() can be called.
2015-08-28 12:39:08 +10:00
..
AC_AttitudeControl AC_AttitudeControl: standardize inclusion of libaries headers 2015-08-11 16:28:41 +10:00
AC_Fence AC_Fence: standardize inclusion of libaries headers 2015-08-11 16:28:41 +10:00
AC_PID AC_PID: standardize inclusion of libaries headers 2015-08-11 16:28:41 +10:00
AC_Sprayer AC_Sprayer: standardize inclusion of libaries headers 2015-08-11 16:28:41 +10:00
AC_WPNav AC_WPNav: remove unused get_wp_radius 2015-08-23 11:06:19 +09:00
AP_ADC AP_ADC: standardize inclusion of libaries headers 2015-08-11 16:28:41 +10:00
AP_ADC_AnalogSource AP_ADC_AnalogSource: standardize inclusion of libaries headers 2015-08-11 16:28:41 +10:00
AP_AHRS AHRS_NavEKF: integrate INS use_accel 2015-08-19 16:44:22 +09:00
AP_Airspeed AP_Airspeed: standardize inclusion of libaries headers 2015-08-11 16:28:42 +10:00
AP_Arming AP_Arming: update severities 2015-08-28 10:04:35 +10:00
AP_Baro AP_Baro - fix BARO_ALT_OFFSET param 2015-08-26 13:16:05 +10:00
AP_BattMonitor BattMonitor: fix parameter descriptions 2015-08-26 11:17:48 +09:00
AP_BoardConfig AP_BoardConfig: standardize inclusion of libaries headers 2015-08-11 16:28:42 +10:00
AP_Buffer AP_Buffer: change pop_front to return a bool if successful 2014-10-20 08:26:14 +11:00
AP_Camera AP_Camera: standardize inclusion of libaries headers 2015-08-11 16:28:42 +10:00
AP_Common AP_Common: standardize inclusion of libaries headers 2015-08-11 16:28:42 +10:00
AP_Compass AP_Compass: standardize inclusion of libaries headers 2015-08-18 17:12:51 +10:00
AP_Curve AP_Curve: standardize inclusion of libaries headers 2015-08-11 16:28:42 +10:00
AP_Declination AP_Declination: standardize inclusion of libaries headers 2015-08-11 16:28:42 +10:00
AP_EPM AP_EPM: standardize inclusion of libaries headers 2015-08-11 16:28:42 +10:00
AP_Frsky_Telem AP_Frsky_Telem: standardize inclusion of libaries headers 2015-08-11 16:28:43 +10:00
AP_GPS AP_GPS: config file for Ublox M8N 2015-08-27 09:54:22 +09:00
AP_HAL AP_HAL: start with the vehicle disarmed 2015-08-23 09:49:52 +10:00
AP_HAL_AVR AP_HAL_AVR: standardize inclusion of libaries headers 2015-08-18 17:12:52 +10:00
AP_HAL_Empty AP_HAL_Empty: standardize inclusion of libaries headers 2015-08-11 16:28:43 +10:00
AP_HAL_FLYMAPLE AP_HAL_FLYMAPLE: standardize inclusion of libaries headers 2015-08-11 16:28:43 +10:00
AP_HAL_Linux AP_HAL_Linux: standardize inclusion of libaries headers 2015-08-18 17:12:51 +10:00
AP_HAL_PX4 AP_HAL_PX4: remove unused var 2015-08-25 13:51:21 +09:00
AP_HAL_SITL AP_HAL_SITL: standardize inclusion of libaries headers 2015-08-18 17:12:52 +10:00
AP_HAL_VRBRAIN HAL_VRBrain: Rework of support for FLOW_CONTROL_AUTO from PX4 HAL 2015-08-19 15:21:19 +10:00
AP_InertialNav AP_HAL_InertialNav: standardize inclusion of libaries headers 2015-08-18 17:12:52 +10:00
AP_InertialSensor AP_InertialSensor: Add support for auxiliary buses 2015-08-28 12:39:08 +10:00
AP_L1_Control AP_L1_Control: standardize inclusion of libaries headers 2015-08-11 16:28:44 +10:00
AP_LandingGear AP_LandingGear: standardize inclusion of libaries headers 2015-08-11 16:28:44 +10:00
AP_Limits AP_Limits: standardize inclusion of libaries headers 2015-08-11 16:38:18 +10:00
AP_Math Math: maxf and minf functions 2015-08-19 16:44:34 +09:00
AP_Menu AP_Menu: standardize inclusion of libaries headers 2015-08-11 16:38:18 +10:00
AP_Mission Mission: sanity check location 2015-08-27 15:15:56 +09:00
AP_Motors Copter: increase default thrust expo to 0.65 2015-08-23 16:42:05 +09:00
AP_Mount Mount: fix for STORM32 serial ver 78e and higher 2015-08-25 13:45:33 +09:00
AP_NavEKF AP_NavEKF: Prevent false triggering of optical flow takeoff detection 2015-08-27 20:57:38 +09:00
AP_Navigation AP_Navigation: standardize inclusion of libaries headers 2015-08-11 16:38:20 +10:00
AP_Notify AP_HAL_Notify: standardize inclusion of libaries headers 2015-08-18 17:12:52 +10:00
AP_OpticalFlow AP_OpticalFlow: standardize inclusion of libaries headers 2015-08-11 16:38:21 +10:00
AP_Parachute AP_Parachute: standardize inclusion of libaries headers 2015-08-11 16:38:21 +10:00
AP_Param AP_Param: add missing header StorageManager.h 2015-08-18 17:19:14 +10:00
AP_PerfMon AP_PerfMon: standardize inclusion of libaries headers 2015-08-11 16:38:22 +10:00
AP_Progmem AP_Progmem: standardize inclusion of libaries headers 2015-08-11 16:38:22 +10:00
AP_Rally AP_Rally: standardize inclusion of libaries headers 2015-08-11 16:38:23 +10:00
AP_RangeFinder AP_RangeFinder: standardize inclusion of libaries headers 2015-08-11 16:38:23 +10:00
AP_RCMapper AP_RCMapper: standardize inclusion of libaries headers 2015-08-11 16:38:22 +10:00
AP_Relay AP_Relay: standardize inclusion of libaries headers 2015-08-11 16:38:23 +10:00
AP_RPM AP_RPM: fixed build error 2015-08-12 20:50:09 +10:00
AP_Scheduler AP_Scheduler: standardize inclusion of libaries headers 2015-08-11 16:38:23 +10:00
AP_SerialManager AP_SerialManager: standardize inclusion of libaries headers 2015-08-11 16:38:23 +10:00
AP_ServoRelayEvents AP_ServoRelayEvents: standardize inclusion of libaries headers 2015-08-11 16:38:23 +10:00
AP_SpdHgtControl AP_SpdHgtControl: standardize inclusion of libaries headers 2015-08-11 16:38:23 +10:00
AP_TECS AP_TECS: standardize inclusion of libaries headers 2015-08-11 16:38:24 +10:00
AP_Terrain AP_Terrain: standardize inclusion of libaries headers 2015-08-11 16:38:24 +10:00
AP_Vehicle AP_Vehicle: standardize inclusion of libaries headers 2015-08-11 16:38:24 +10:00
APM_Control APM_Control: standardize inclusion of libaries headers 2015-08-11 16:28:41 +10:00
APM_OBC APM_OBC: standardize inclusion of libaries headers 2015-08-11 16:28:41 +10:00
APM_PI APM_PI: standardize inclusion of libaries headers 2015-08-11 16:28:41 +10:00
DataFlash DataFlash: standardize inclusion of libaries headers 2015-08-18 17:12:52 +10:00
doc Checking these in makes the libraries too bulky. We need to host them somewhere. 2011-01-04 06:22:02 +00:00
Filter Filter: Template implementation for <Filter> 2015-08-23 11:17:02 +10:00
GCS_Console GCS_Console: update severities 2015-08-28 10:04:35 +10:00
GCS_MAVLink GCS_MAVLink: update severities and remove old enum 2015-08-28 10:04:35 +10:00
PID PID: standardize inclusion of libaries headers 2015-08-11 16:38:25 +10:00
RC_Channel RC_Channel: fixed example build 2015-08-11 17:00:13 +10:00
SITL SITL: added ignition control for gas heli 2015-08-18 13:07:19 +10:00
StorageManager StorageManager: standardize inclusion of libaries headers 2015-08-11 16:38:25 +10:00