Commit Graph

12764 Commits

Author SHA1 Message Date
Andrew Tridgell ece0a8721f AP_HAL: added standalone test program for dsm
useful for debugging
2016-10-16 19:05:19 +11:00
Andrew Tridgell 03f9496549 HAL_Linux: lock onto a single decoder on the 115200 port 2016-10-16 19:05:19 +11:00
Andrew Tridgell 513156a4cc HAL_Linux: make 115200 R/C decoders return a bool 2016-10-16 19:05:19 +11:00
Andrew Tridgell 710d08da6d HAL_Linux: support SRXL R/C input 2016-10-16 19:05:19 +11:00
Andrew Tridgell 7b3d0234d1 AP_HAL: added an SRXL protocol decoder
SRXL ports are commonly found on newer spektrum receivers like the AR7700
2016-10-16 19:05:18 +11:00
murata bb1a787852 AP_Scheduler: To add a comment to _loop_rate_hz variable. 2016-10-16 00:02:40 -07:00
Andrew Tridgell f9dd31b6e5 RC_Channel: support automatic servo trimming 2016-10-16 15:20:47 +11:00
Lucas De Marchi e6d5bac527 AP_Param: don't used reserved word in macros
`class` is a reserved word and should not be used as macro arguments.
It's very common in C++ to use "clazz" instead in these cases.
2016-10-15 15:19:17 -03:00
Andrew Tridgell 792f3b8a15 GCS_MAVLink: added handle_rc_bind() 2016-10-15 21:42:38 +11:00
murata ba60cce0c1 AP_HAL: simplify the processing of milliseconds from the time 2016-10-15 18:33:54 +09:00
Andrew Tridgell f01f711ff6 GCS_MAVLink: added accept_packet() hook
this will allow vehicles to control whether packets are accepted by
GCS sysid or not
2016-10-15 17:11:01 +11:00
Andrew Tridgell 992bf2368e RC_Channel: cope with SERVO_RNG_ENABLE changing while booted
this prevents a one second throttle up on scaled ESCs when
enabling/disabling the servo output mapping
2016-10-15 16:59:37 +11:00
Andrew Tridgell 4a9ddf52e0 RC_Channel: constrain output to servo range
don't allow servos past configured range in any mode
2016-10-15 16:59:36 +11:00
Andrew Tridgell 2ceddddd3b RC_Channel: don't call output() in SRV_Channel
we may need to run another mixer
2016-10-15 16:59:36 +11:00
Andrew Tridgell 78ef3b77c6 RC_Channel: added disable_passthrough() method 2016-10-15 16:59:36 +11:00
Andrew Tridgell 2ec439d7e3 RC_Channel: added set_esc_scaling() to SRV_Channels 2016-10-15 16:59:36 +11:00
Andrew Tridgell 73b9123495 RC_Channel: added set_trim() API to SRV_Channels object 2016-10-15 16:59:35 +11:00
Andrew Tridgell c7f8b255e7 RC_Channel: added SRV_Channels object for remapping output channels
this allows for decoupling RC input ranges from servo output ranges
2016-10-15 16:59:35 +11:00
Andrew Tridgell fea7903aa8 RC_Channel: added get_radio_out_normalised() 2016-10-15 16:59:35 +11:00
Andrew Tridgell 96c7d9dde8 RC_Channel: make output_trim() go via _radio_out
this ensures that _radio_out always contains the value that would be
output to the channel. This will be used by the SRV_Channels object
2016-10-15 16:59:35 +11:00
Leonard Hall bead957a78 AP_MotorsMulticopter: limit hover throttle 2016-10-15 11:27:53 +09:00
Peter Barker e71c71fcac AP_HAL: correct casting of get_system_clock_ms 2016-10-14 18:41:56 +11:00
Jonathan Challinger 8df4add729 AC_PrecLand: trust initial velocity less 2016-10-14 10:46:22 +09:00
Jonathan Challinger ec73f563ad AC_PrecLand: do not fuse EKF velocity 2016-10-14 10:46:16 +09:00
Jonathan Challinger 7405f82d61 AC_PrecLand: add ekf to estimate vehicle-relative target velocity 2016-10-14 10:46:05 +09:00
Jonathan Challinger 5a8db4f271 AC_PosControl: add interface to override horizontal velocity process variable 2016-10-14 10:46:01 +09:00
Jonathan Challinger 25a14fe0dc AP_AHRS: add interface to retrieve corrected delta velocities in NED frame 2016-10-14 10:45:58 +09:00
Andrew Tridgell c1bf23e090 GCS_MAVLink: fixed comment 2016-10-14 11:40:36 +11:00
Randy Mackay 4808664fb6 AC_Avoidance: allow use of AP_Proximity 2016-10-13 20:21:07 +09:00
Randy Mackay c3087edbe8 AP_Proximity: add library and SF40C driver 2016-10-13 20:21:07 +09:00
Randy Mackay cc0bfcddcb AP_SerialManager: add Lidar360 to protocol list
This is used for the proximity sensor
2016-10-13 20:21:07 +09:00
Andrew Tridgell 53260969bb GCS_MAVLink: removed deprecated RC_CHANNELS_RAW and use RC_CHANNELS only 2016-10-13 21:23:39 +11:00
Andrew Tridgell e78651e8f2 HAL_PX4: fixed DSM bind on Pixracer 2016-10-13 19:58:00 +11:00
Andrew Tridgell 5e829e7720 GCS_MAVLink: most users don't have signing keys
prevent noise on startup
2016-10-13 19:58:00 +11:00
Randy Mackay 9722c3a1c3 DataFlash: fix logging of ekf core 2016-10-13 15:22:59 +09:00
John Hsu fc13efa673 SITL: update SIM_Gazebo SITL interface servo packet to have 16 floats, matching sitl_input struct. 2016-10-13 12:03:20 +11:00
John Hsu a8cf38b366 SITL: implement Gazebo SITL for IRLock tracking. 2016-10-13 12:03:20 +11:00
Jonathan Challinger e20687fbce AP_AHRS: cache trim rotation 2016-10-13 10:02:14 +11:00
Jonathan Challinger 80d9092993 AP_Math: remove rotateXY and rotateXYinv 2016-10-13 10:02:14 +11:00
Jonathan Challinger dac59cb5da AP_NavEKF2: use exact matrix for trim rotation 2016-10-13 10:02:14 +11:00
Jonathan Challinger 3eba985afd AP_NavEKF: use exact matrix for trim rotation 2016-10-13 10:02:13 +11:00
Jonathan Challinger 5ff78b8e47 AP_AHRS: fix rotation of acceleration into earth frame 2016-10-13 10:02:13 +11:00
Jonathan Challinger a03fa2d3cf AP_AHRS: use exact matrix for trim rotations 2016-10-13 10:02:13 +11:00
Andrew Tridgell 7f09d20e3b HAL_Linux: implement cork and push for remaining RCOutput backends 2016-10-13 10:00:04 +11:00
Andrew Tridgell c8179a0887 HAL_Linux: implement cork/push for RCOutput_AioPRU 2016-10-13 10:00:04 +11:00
Andrew Tridgell e356797888 AP_HAL: make cork() mandatory in RCOutput 2016-10-13 10:00:04 +11:00
Andrew Tridgell 0640b6539c HAL_Linux: implement cork()/push() for Raspilot 2016-10-13 10:00:04 +11:00
Andrew Tridgell 1d6e4673da HAL_Empty: add cork() and push() for RCOutput 2016-10-13 10:00:04 +11:00
Andrew Tridgell 7ea75aaf95 HAL_QURT: implement cork() and push() for RCOutput 2016-10-13 10:00:04 +11:00
Andrew Tridgell 5530e3782d HAL_VRBrain: fixed cork() for RCOutput 2016-10-13 10:00:04 +11:00
Andrew Tridgell c493ba81e4 HAL_PX4: fixed cork() for RCOutput 2016-10-13 10:00:04 +11:00
Andrew Tridgell a80eea5de4 HAL_Linux: implement cork()/push() for HAL_Linux RCOutput_Sysfs 2016-10-13 10:00:04 +11:00
Andrew Tridgell 97d0553938 HAL_SITL: implement cork() on RCOutput 2016-10-13 10:00:04 +11:00
Andrew Tridgell 7cd7f03d56 AP_Motors: fixed use of trim on heli servos
this was broken by the servo range 0 to 1 changes
2016-10-13 09:34:48 +11:00
Andrew Tridgell 0cd3054a4c HAL_Linux: document the Disco PWM pinout 2016-10-12 21:41:49 +11:00
Andrew Tridgell c64a020384 GCS_MAVLink: default to MAVLink2 enabled
this changes the default to enable MAVLink2 on USB and the primary
telemetry port. Note that unless signing is enabled it won't send a
MAVLink2 packet until the GCS sends a MAVLink2 packet
2016-10-12 11:35:50 +11:00
ShingoMatsuura 8432c5fb4a AP_RangeFinder: remove number_detections member variable and add number_detections reference argument to parse_response 2016-10-11 07:56:37 -03:00
ShingoMatsuura 43f2482abd AP_RangeFinder: modify spelling and change C type cast to static_cast 2016-10-11 07:56:37 -03:00
ShingoMatsuura 6123fad124 AP_RangeFinder: change error and ok status defines to LeddarOne_Status enum 2016-10-11 07:56:37 -03:00
Jonathan Challinger 77dbf99cee AC_PosControl: fix bug related to ekfNavVelGainScaler 2016-10-11 15:25:59 +09:00
Lucas De Marchi ae53920e5b build: don't build examples with old build system
We currently check examples are buildable with waf which doesn't need
the libraries to be specified in a make.inc file.  Having the makefiles
there is misleading since people try to build and realize the build is
broken.
2016-10-11 13:03:08 +11:00
Gustavo Jose de Sousa 06c3102701 SITL: SIM_Calibration: bring angular velocity controller back
And fix header documentation.
2016-10-11 12:58:37 +11:00
Andrew Tridgell 9caf44b494 AP_GPS: update drivers for changed inject_data() API
need 16 bit length
2016-10-11 11:00:35 +11:00
Andrew Tridgell 500df1edf2 AP_GPS: support GPS_RTCM_DATA fragmented MAVLink message
support re-assembly of RTCM data packets
2016-10-11 11:00:35 +11:00
Michael du Breuil cf5e79f80e AP_GPS: ublox support user controlled rate updates
Also corrects accepting bad nav rates as configured, and fixes a incorrect
index as to which GPS is being updated
2016-10-11 10:44:51 +11:00
Michael du Breuil 86c2b1d84a AP_GPS: u-blox Remove 5Hz warning
The warnings test case is better covered by the rest of the driver
while it is performing the normal settings audit.
2016-10-11 10:44:51 +11:00
Michael du Breuil 3e3f539a6a AP_GPS: Raise target baud of u-blox devices
A knockon effect is that we need less config strings as raw logging
on u-blox will use the same baud rates
2016-10-11 10:44:50 +11:00
floaledm 49e47fd679 AP_Frsky_Telem: airspeed scaling factor fix 2016-10-10 15:29:49 -07:00
Leonard Hall 0a56d69d54 AP_MotorsMulticopter: Use same throttle value used by motors 2016-10-10 16:40:08 +09:00
priseborough 5d09c78f34 AP_NavEKF2: Always perform optical flow takeoff check when receiving data
A specialised takeoff check is now always performed when we receive new flow data as the default behaviour is to try and use flow data whenever it is received, rather than limit its use to a use to a flow-only mode of operation that had to be selected via user parameter.
2016-10-10 14:49:48 +09:00
priseborough a75a383ef2 AP_NavEKF2: Update protection for out of focus flow data 2016-10-10 14:49:41 +09:00
priseborough 635826c056 AP_NavEKF2: Fix reporting of terrain estimator innovations
Terrain height is relevant whenever optical flow data is present
2016-10-10 14:49:35 +09:00
priseborough b0072b587c AP_NavEKF2: fix reporting of optical flow use status 2016-10-10 14:49:24 +09:00
priseborough ed9ecb28fb AP_NavEKF2: Enable entry into relative position mode on start-up 2016-10-10 14:49:21 +09:00
priseborough e0b8c54194 AP_NavEKF: Update GPS type parameter description 2016-10-10 14:49:18 +09:00
priseborough f9018fcc1b AP_NavEKF2: Enable simultaneous optical flow and GPS use
Enables simultaneous use of GPS and optical flow data with automatic fallback to relative position mode if GPS is lost and automatic switch-up to absolute position status if GPS gained/re-gained.
2016-10-10 14:49:02 +09:00
priseborough ab55991b33 AP_NavEKF2: Report position jumps due to lane switches
Also moves code required to update reset data due to lane switches into separate functionscto improve readability.
2016-10-10 11:56:14 +09:00
murata 36b5d43efb AC_Avoid: delete variable that is only used once in a simple calculation 2016-10-05 16:25:57 +09:00
Andrew Tridgell 2fab15dcd5 AP_TECS: added use_synthetic_airspeed() API
used by quadplane during transitions
2016-10-05 11:52:34 +11:00
Andy Little 0d113b265c Examples: fix examples for px4
The change to use AP_BoardConfig messed up the examples. Here are some
updated but there are plenty more to do.
2016-10-04 12:50:47 -03:00
Murilo Belluzzo 0b86532b5c Global: Remove '\r' character from all source code files 2016-10-03 22:13:27 -03:00
Julien Beraud 714c8fd318 AP_InertialSensor_MPU6000: Add support for fsync bit for Bebop
Already present on Disco
2016-10-03 12:20:03 -03:00
Andy Little 4b2eedac05 AP_HAL: Split the AP_HAL_Boards.h header into per board sub headers for legibility 2016-09-29 08:26:50 -03:00
Tom Pittenger 3adf8c3e51 AC_AttitudeControl: comment odd math in get_att_target_euler_cd
degree(100) = 1 float multiplicaiton
vector3f * degree(100.0f)  = 4 float multiplications
degree(vector3f) * 100.0f  = 6 float multiplications and needs new degree(vector3f) function
degree(vector3f * 100.0f)  = 6 float multiplications and needs new degree(vector3f) function

These all come to the same conclusion but the one that is faster appears to be a bug but is mathematically correct.
2016-09-27 17:04:53 -07:00
floaledm 602b81a4d7 AP_Frsky_Telem: add ekf_status check 2016-09-27 09:20:32 -07:00
floaledm 27e977289a AP_AHRS: add the get_variances method found in AP_AHRS_NavEKF to AP_AHRS 2016-09-27 09:20:32 -07:00
Peter Barker a10cde35f5 DataFlash: stop logging before filling SD card on PX4
Filling the SD card causes NuttX to have conniptions, including
data loss and failure to boot
2016-09-26 14:02:58 -07:00
Jonathan Challinger 25bee93fcc DataFlash: fix EKF5 message 2016-09-26 13:42:00 -07:00
Tom Pittenger 99d48d8bbd AP_FrSky_Telem: cleanup, non-functional change 2016-09-26 13:12:42 -07:00
floaledm fcfaa98bb6 AP_Frsky_Telem: reworked _statustext_queue.empty() check 2016-09-26 13:07:18 -07:00
Tom Pittenger 8001cc403b AP_Frsky_Telem: fix is_flying assignment 2016-09-26 13:00:33 -07:00
floaledm 5e022bf631 AP_Frsky_Telem: fix *_ap.value issue for Plane
set_is_flying does operations on a nullptr, plus we loose the ability to
update ap_status accordingly for Plane
2016-09-26 12:35:47 -05:00
Francisco Ferreira 42cd8e9721 AP_NavEKF2: Handle yaw jumps due to core switches
Based on work from Paul Riseborough (priseborough)
2016-09-25 18:24:11 -07:00
Francisco Ferreira 8da22e441b Revert 3 commits about yaw reset core switch
Revert "AP_NavEKF2: Fix bug in published yaw reset value found during code review"
commit 175faf1e41.

Revert "AP_NavEKF2: use a struct for all yaw step class variables"
commit 77fad065d1.

Partially revert "AP_NavEKF2: Handle yaw jumps due to core switches"
commit 885bfd1b4e.
2016-09-25 18:24:11 -07:00
floaledm ff0d0b1aa5 AP_Frsky_Telem: use ringbuffer for Frsky message queueing 2016-09-25 18:11:45 -07:00
murata d58c193c90 AP_RangeFinder: To define the OK status to LEDDARONE status. 2016-09-25 17:46:22 -07:00
Tom Pittenger b3d5375aa0 AP_Frsky_Telem: simplify init by assuming everything is nullptr
- also always queue the firmware message regardless of protocol type
2016-09-25 10:42:02 -07:00
Tom Pittenger 6991ca53b3 AP_Frsky_Telem: allow default arguments in init() to set things to nullptr 2016-09-25 10:42:02 -07:00
floaledm 94aa6c4cfb AP_Frsky_Telem: consolidate into a single frsky.init() 2016-09-25 10:42:02 -07:00
Michael du Breuil 9c4b3ec1e1 AP_GPS: Fix incorrect incrementing of last_baud rate
This is a revert of 7c3b8dceb which tried to start at index 0 of the
array of baudrates, however because of the way last_baud is used
this lead to a GPS always being reported as being 1 index off which
lead to users getting reports of baud rates that their GPS wasn't
configured for

Also renames last_baud to be current_baud as that is how it's
actuallly used and should reduce future confusion

And fixed some tabs/vs space issues around where the last_baud rate
was incremented.
2016-09-25 08:50:47 -07:00
Andrew Tridgell 36ea946cf5 AP_Compass: use board defined compass ofs max in calibrator 2016-09-23 10:53:00 +10:00
Andrew Tridgell e7656fb7ac AP_HAL: raise compass offset max again for Disco
values of 1600 happen on Z axis
2016-09-23 10:52:55 +10:00
Jonathan Challinger 17fb7dc88f AP_Compass: initialize offset before beginning sphere fit 2016-09-23 10:52:51 +10:00
Jonathan Challinger 419f1bc00e AP_Compass: change fixed point format for more range 2016-09-23 10:52:46 +10:00
Jonathan Challinger 0652d71a72 AP_Compass: correct wrapping behavior in conversion to fixed point 2016-09-23 10:52:44 +10:00
murata 3a1cd20f11 AP_RangeFinder: To move to the place that use the variable definition for the first time. 2016-09-22 08:41:21 +09:00
Tom Pittenger 8eb7a062c7 AP_Frsky_Telem: tiny text change in statusText 2016-09-21 16:11:04 -07:00
floaledm 9e0cfc81ea AP_Frsky_Telem: updated sensor_status messages according to what is found in Mission Planner
added "NO RC Receiver" and "Bad Logging"
2016-09-21 15:51:04 -07:00
floaledm 5125846ac0 AP_Frsky_Telem: Plane support 2016-09-21 12:12:37 -07:00
floaledm b2b6c88edf AP_Frsky_Telem: renamed vars and funcs for consistency/clarity 2016-09-21 11:32:21 -07:00
Andrew Tridgell 3eb8b5e99f HAL_Linux: added RCInput_Multi
this allows for multiple RCInput methods on one board. On Disco it
combines RCInput_115200 with RCInput_SBUS
2016-09-21 10:33:15 -03:00
Andrew Tridgell 5909552f67 HAL_Linux: added RCInput_115200
this is a RCInput module for multiple R/C uart protocols running at
115200 baud 8-bit. We can decode multiple protocols in parallel with
this module, relying on frame timing and CRCs to get the right
protocol
2016-09-21 10:33:15 -03:00
Andrew Tridgell 2edd914634 AP_HAL: added st24 R/C protocol decoder
with thanks to the PX4 project
2016-09-21 10:33:15 -03:00
Andrew Tridgell 9a7af89b30 AP_HAL: added sumd decoder
with thanks to the PX4 project
2016-09-21 10:33:15 -03:00
Andrew Tridgell e913b9a8f7 HAL_Linux: fixed incorrect include 2016-09-21 10:33:15 -03:00
Randy Mackay 2ebb81b02f AP_NavEKF2: switching compass message to GCS downgraded to INFO 2016-09-21 21:42:44 +09:00
Andrew Tridgell 79ed5c7091 AP_BattMonitor: fixed typo 2016-09-21 17:37:32 +10:00
Andrew Tridgell 06cccd6d3b AP_BattMonitor: update disco battery lookup table 2016-09-21 13:48:53 +10:00
Tom Pittenger 5512b6de02 AP_RangeFinder: Cleanup and added comments
- uart->available(); returns uint32 but was stored locally as int32 and treated as uint32. Now stored correctly as uint32
- some variables were set to zero at start of function, then reset to zero before being used. wasted work
2016-09-21 10:45:25 +09:00
Tom Pittenger e928e20b11 AP_RangeFinder: Ensure no divide by zeros in LeddarOne
Having a critical divide by value as a class member that could change external to the function using it is fragile. It was not very obvious that a divide by zero was not possible in the current design, now it's very obvious and safer in case the code changes later.
2016-09-21 10:45:23 +09:00
priseborough b6867e085d AP_NavEKF2: Don't report range finder variance on mavlink if not required 2016-09-21 10:41:21 +09:00
Andrew Tridgell 95db9f61cc AP_Module: added velocity_ned to AHRS state 2016-09-20 17:34:39 +10:00
Michael Oborne 11c376588d AP_GPS_NOVA: support tersus/novatel/comnav gps 2016-09-20 10:53:49 +10:00
Peter Barker 8f376944aa DataFlash: immediately restart logging after erasing logs 2016-09-19 17:57:59 +09:00
Randy Mackay f94f7e2aa0 AP_RangeFinder: add leddarone to TYPE parameter description
No functional change
2016-09-19 14:35:41 +09:00
ShingoMatsuura 3123bd6d7d AP_RangeFinder: add LeddarOne support 2016-09-19 13:25:35 +09:00
Andrew Tridgell c275e7c61d SITL: added SIM_SPEEDUP parameter
allows changing speed of simulation while running
2016-09-19 07:45:24 +10:00
murata 13fe8cb4d0 AP_OpticalFlow: Changed short boundary the i2c_integral_frame. 2016-09-17 01:04:06 -03:00
Matthew Brener 06388b0417 Global: Fix typos 2016-09-17 00:36:36 -03:00
Andrew Tridgell a4c1bc3fd3 HAL_Linux: avoiding setting the SPI mode on every transfer
This was causing the Disco kernel to print a debug message on every
SPI transfer, which makes for a very noisy kernel and large kernel logs
2016-09-17 00:35:00 -03:00
Andrew Tridgell 52caf8419e SITL: fixed sense of wind direction
wind direction is where wind is coming from, not going to
2016-09-16 10:59:27 +10:00
Andrew Tridgell 66073413a8 GCS_MAVLink: announce MAVLink2 capability 2016-09-16 09:47:55 +10:00
Andrew Tridgell 8f35305496 SITL: added a simpler compass cal simulation
just output 1250 to servo5 and it will go through lots of rotations
2016-09-16 08:59:43 +10:00
Andrew Tridgell f82827ce79 AP_Compass: removed disco special compass offsets
not needed any more with newer hardware
2016-09-14 19:06:06 +10:00
Andrew Tridgell bb65f4df76 AP_Arming: use HAL defined compass offset max if available 2016-09-14 11:53:13 +10:00
Andrew Tridgell bf67d4277d AP_HAL: define a larger compass offset max for Disco 2016-09-14 11:52:55 +10:00
Randy Mackay ba5db0c5d8 Compass: add CAL_FIT parameter description values
No functional change
2016-09-14 09:57:52 +09:00
priseborough cb1d3c7ed2 AP_NavEKF2: Allow for terrain gradient when using range finder for height 2016-09-13 17:45:03 +09:00
priseborough 60d8adcca0 AP_NavEKF2: Fix height drift on ground using range finder without GPS 2016-09-13 17:44:59 +09:00
priseborough 8797714203 AP_NavEKF2: Fix bug in handling of invalid range finder data 2016-09-13 17:44:43 +09:00
priseborough 175faf1e41 AP_NavEKF2: Fix bug in published yaw reset value found during code review 2016-09-13 17:35:18 +09:00
priseborough 77fad065d1 AP_NavEKF2: use a struct for all yaw step class variables 2016-09-13 17:35:16 +09:00
priseborough 885bfd1b4e AP_NavEKF2: Handle yaw jumps due to core switches 2016-09-13 17:35:14 +09:00
murata c78dfd4aa4 AC_Sprayer: Change the comment of the variables in the form of doxygen. 2016-09-13 13:37:35 +09:00
Peter Barker fce798bc7a DataFlash: avoid integer underflow
Thanks to mbelluzzo: f44b1b3556
2016-09-13 13:32:09 +09:00
Peter Barker 95d4475d45 DataFlash: avoid time going backwards in logs
WriteBlockCheckStartupMessages returned true if finished writing out
all startup messages.  However, that may have allowed the caller to
then write out their message - but the timestamp on that message would
almost certainly be lower than the messages we've just written out.
2016-09-13 13:32:06 +09:00
William Liu cc28c8e6ee AP_Airspeed: AP_Airspeed_I2C: get the right status according to datasheet 2016-09-09 10:32:14 -07:00
William Liu b1a62d6c8e AP_HAL_Linux: RCOutput_Bebop: fixed potential deadlock 2016-09-09 09:59:17 -07:00
Andrew Tridgell aa4cde1aae AP_BoardConfig: work around issues with bad components on some FMUv4 boards
some pixracer copies have poor components which can cause sensor bus
brownout on boot. This resets the sensor bus for 20ms on boot to try
to get clean sensor startup
2016-09-08 13:18:13 +10:00
Benoit Tran 9b89b4f561 AP_HAL: Correct HAL_PARAM_DEFAULTS_PATH for Parrot Disco 2016-09-08 13:05:25 +10:00
Randy Mackay b63666d188 AP_Motors: increase MOT_THST_HOVER parameter description range
No functional change
2016-09-07 15:28:49 +09:00
Niti Rohilla cadd95fdd8 GCS_MAVLink: Added sanity check for DO_JUMP command on mission load. 2016-09-06 00:40:47 -07:00
floaledm 4d03be94cf AP_Frsky_Telem: removed reliance on home_distance and home_bearing which are only in copter 2016-09-06 11:42:32 +10:00
floaledm 33bd359463 AP_Frsky_Telem: LANDCOMPLETE switched to to ISFLYING flag 2016-09-06 11:23:29 +10:00
floaledm 4dc98faa48 AP_Frsky_Telem: transmit airspeed instead of groundspeed, if available 2016-09-06 11:15:11 +10:00
floaledm 8deba69715 AP_Frsky_Telem: added 1 to control_mode passed on Frsky link 2016-09-06 11:14:48 +10:00
floaledm 4f8cea6844 AP_Frsky_Telem: simplified constructor 2016-09-06 11:14:48 +10:00
Michael du Breuil 7a18d59099 GCS_MAVLink: On mission_set_current report the requested item if the set was a success
The problem with reporting the mission index, is that the mission index will be walked
forward until its referring to a nav target, which means that if a DO_ command was
requested, the requesting mavlink device had no way to validate the command was
accepted, it would have to make a infrence from it's copy of the mission
2016-09-06 08:55:04 +10:00
Leonard Hall fdcdcb0033 AC_PosControl: check Z-axis accel imax can always overpower hover throttle
This removes the possibility of the vehicle constantly climbing if the hover throttle becomes a very large value
2016-09-05 14:19:43 +09:00
Andrew Tridgell aafd1512e4 HAL_PX4: limit IMU target temperature to 65 2016-09-05 12:59:50 +10:00
Andrew Tridgell c0d21c5730 AP_Module: added gyro_bias to AHRS structure 2016-09-05 12:56:52 +10:00
Andrew Tridgell 334db0a1a5 AP_AHRS: added get_primary_accel_index() and get_primary_gyro_index() 2016-09-05 12:56:36 +10:00
Andrew Tridgell 902daff3a3 AP_Module: added FSYNC state to raw accel report 2016-09-05 12:55:52 +10:00
Andrew Tridgell 6f9530ebaa AP_InertialSensor: added optional FSYNC external sync bit
used to synchronise with image sensor on Disco
2016-09-05 12:55:32 +10:00
Andrew Tridgell c62fc336cb AP_AHRS: use current EKF2 IMU core in gyro estimate
The EKF2 implementation uses one IMU per EKF2 core. When reporting the
gyro estimate, accel_ef estimate and gyro bias estimate we need to use
the values associated with the current IMU index being used by the
current EKF2 core. Otherwise we will have an inconsistency between the
gyro estimate and attitude estimate

This affects all multi-IMU systems using EKF2
2016-09-05 12:54:53 +10:00
Andrew Tridgell dd812cfc0c AP_NavEKF2: added getPrimaryCoreIMUIndex()
needed for correct AHRS gyro estimate
2016-09-05 12:53:53 +10:00
Andrew Tridgell cfd7268bd5 GCS_MAVLink: check the signing key magic on load
or we end up with a bad key when MAVLink2 is first enabled
2016-09-04 19:28:48 +10:00
Andrew Tridgell b9c4a948d1 AP_BoardConfig: fixed startup ordering change in canbus vs external mag 2016-09-04 18:48:26 +10:00
Gustavo Jose de Sousa 5c5ddc9d4a AP_HAL: reformat AP_HAL_Boards.h
The definitions for each board haven't been reformatted here. They need a
little more thinking on how to format them in order to provide better
readability.
2016-09-03 01:03:17 -03:00
José Roberto de Souza 13287f61e3 AP_Compass: Make COMPASS_AERO probe BMM150 2016-09-03 01:03:17 -03:00
Gustavo Jose de Sousa 68fe536da3 AP_InertialSensor: use BMI160 for Intel Aero 2016-09-03 01:03:07 -03:00
Gustavo Jose de Sousa 025082b280 AP_HAL_Linux: add port to Intel Aero
Contributions from:
 - Gustavo Jose de Sousa <gustavo.sousa@intel.com>
 - José Roberto de Souza <jose.souza@intel.com>
 - Lucas De Marchi <lucas.demarchi@intel.com>
 - Patrick J.P <patrick.pereira@intel.com>
2016-09-03 01:03:07 -03:00
José Roberto de Souza 0b0be31a29 AP_HAL: add defines for Intel Aero 2016-09-03 01:03:07 -03:00
Gustavo Jose de Sousa b6c0e11200 AP_InertialSensor: BMI160: convert it to use Device periodic callback
Some notes:
 - The only place that made sense to use
   suspend_timer_procs()/resume_timer_procs() calls were where we registered
   the timer process. Now there's no need for that anymore. Remove those calls
   from other place in the source too.
 - There's no need to acquire the device lock now that we are running as a
   periodic callback.
2016-09-03 01:03:07 -03:00
Gustavo Jose de Sousa b259356703 AP_Compass: BMM150: convert it to use Device periodic callback 2016-09-03 01:03:07 -03:00
Lucas De Marchi 667fca60f5 AP_Compass: BMM150: reduce lock region
Use a semaphore to update the accumulated values instead of using the
timer semaphore.
2016-09-03 01:03:07 -03:00
Patrick J.P c32dc3bc37 AP_HAL_Linux: Add AeroIO communication module
Signed-off-by: Patrick J.P <patrick.pereira@intel.com>
2016-09-03 01:03:07 -03:00
Randy Mackay 4858afae6c AP_Motors: param description update that MOT_SPIN_MIN should be higher than MOT_SPIN_ARM 2016-09-03 11:12:31 +09:00
Andrew Tridgell bf1e0e1536 AP_AHRS: fixed EKF GPS arming check for fixed wing
when in a quadplane mode we set fly_forward to zero. We need to ensure
the GPS checks for EKF health are applied when doing arming checks, so
we use the checks always when disarmed
2016-09-02 11:12:19 +10:00
Andrew Tridgell 232347569f AP_RPM: use RPM_SCALING in SITL
useful for testing low RPM warning in a GCS
2016-09-02 11:12:18 +10:00
Andrew Tridgell acbeb29fbe AP_Frsky_Telem: use const references where possible
save some stack space
2016-09-02 11:12:18 +10:00
Randy Mackay 44830be172 AC_AttControl: add parameter check of throttle mix 2016-09-02 09:27:15 +09:00
Randy Mackay 535158e0d8 AC_AttControl: move var_info declaration
No functional change
2016-09-02 09:27:12 +09:00
Randy Mackay 38b3d3ff3a AP_GPS_MAV: initialise location while handling_msg
This reduces a covarity warning but it likely not really an issue because we always initialise newly allocated memory to zero anyway
2016-09-01 12:01:14 +09:00
murata 59796aaf9c AP_OpticalFlow: The first value of the register to the value of the definition. 2016-08-31 01:01:59 -03:00
Ralf Ramsauer 71212942da AP_HAL: AP_HAL_Linux: align I2CDevice::read_registers_multiple()
25c7e8b changed the logic of transfer(). Align
I2CDevice::read_registers_multiple() in the same way.

Signed-off-by: Ralf Ramsauer <ralf.ramsauer@othr.de>
2016-08-31 00:18:50 -03:00
Randy Mackay e7020b218a AC_Fence: revert param Enable to be FLAG_ENABLE
This reverts commit 5e811b8463.
2016-08-31 08:55:31 +09:00
Ralf Ramsauer 5b81920737 AP_HAL: AP_HAL_Linux: add comment to I2CDevice::transfer()
If I2CDevice::transfer() has to do nothing it returns false. This can be
misleading, as this might feel contradictory.

Let's spend a comment on that.

Signed-off-by: Ralf Ramsauer <ralf.ramsauer@othr.de>
2016-08-29 15:20:14 -03:00
Ralf Ramsauer 25c7e8bf60 AP_HAL: AP_HAL_Linux: perfect I2CDevice::transfer()
According to man 3 ioctl, ioctl returns other values than -1 on success.
So loop while ioctl returns -1.

Furthermore, there is no necessity to initialise r with -EINVAL,

Signed-off-by: Ralf Ramsauer <ralf.ramsauer@othr.de>
2016-08-29 15:20:14 -03:00
Matt 9eca21c26a AP_Compass: Removed duplicate code 2016-08-29 10:38:41 -03:00
Lucas De Marchi 833f565f09 AP_HAL_Linux: prefix threads with ap
This makes it consistent with bus threads and easier to grep from a `ps`
call.
2016-08-29 10:27:36 -03:00
Lucas De Marchi e1ab44f4a3 Global: remove get_fd() from Device API
This was there for compatibility with I2CDriver and SPIDriver. We don't
use them anymore so we can remove the compat method.
2016-08-29 10:27:36 -03:00
Lucas De Marchi ead01855df AP_HAL: remove default params for minlure
We are currently not using them.
2016-08-29 10:27:36 -03:00
Andrew Tridgell e9e3a3f491 AP_Motors: added get_pwm_type() 2016-08-29 15:52:21 +10:00
Peter Barker fd87a4f180 DataFlash: fix unused result warning 2016-08-25 15:53:47 +10:00
Andrew Tridgell a4ca4dbd9e AP_FrSky_Telem: use a constant string for firmware version 2016-08-25 11:00:17 +10:00
Andrew Tridgell 62388fc991 AP_FrSky_Telem: use constant strings in message queueing 2016-08-25 10:29:57 +10:00
Andrew Tridgell 183283ba07 AP_FrSky_Telem: make _msg non-static
there are no calls to this from outside the library. If we do add some
then we can change the API as needed
2016-08-25 10:23:03 +10:00
floaledm 2f54e67996 AP_FrSky_Telem: fixed sending last message chunk
Was sent only once, now sent 3 times (as planned)
2016-08-25 10:16:20 +10:00
Andrew Tridgell 185ef73684 AP_Frsky_Telem: fixed usage of sensor error bits
using these asyncronously via pointers is error prone as the updates
to these masks is not atomic relative to the IO callback in
AP_Frsky_Telem
2016-08-25 10:16:19 +10:00
Andrew Tridgell f4d59d720a AP_FrSky_Telem: removed use of pointer to control_mode
it is an enum, and it is invalid to take a pointer to an enum as a
uint8_t*
2016-08-25 10:16:19 +10:00
Andrew Tridgell ab77fdfa02 AP_FrSky_Telem: removed dependency on inertialnav
the AP_InertialNav library is deprecated in favor of AP_AHRS. We
should not introduce a new dependency on it
2016-08-25 10:16:19 +10:00
floaledm b71e0d73b9 AP_FrSky_Telem: added SPort passthrough protocol 2016-08-25 10:16:19 +10:00
floaledm 50eecf58a4 AP_SerialManager: added SPort passthrough protocol 2016-08-25 10:16:18 +10:00
floaledm ec157bd4c2 AP_BattMonitor: Get pack_capacity_mah function 2016-08-25 10:16:18 +10:00
floaledm a9b01b470c AP_FrSky_Telem: cosmetic changes 2016-08-25 10:16:17 +10:00
floaledm 5066a5bc73 AP_SerialManager: syntax and minor lib rework 2016-08-25 10:16:17 +10:00
floaledm de2a7013b4 AP_FrSky: simplified lib rework 2016-08-25 10:16:17 +10:00
Leandro Pereira bf3f8c05e7 GCS_Mavlink: Correctly check if a channel is streaming
In GCS_MAVLINK::stream_trigger(), chan_is_streaming would be checked
with a bitwise OR, instead of a bitwise AND.  This way, the condition
would always be true if chan_is_streaming were to be non-zero.
2016-08-24 10:47:12 -03:00
Andrew Tridgell 3aba0d8359 SITL: fixed rover altitude
thanks to Grant for noticing this
2016-08-24 13:29:45 +10:00
mirkix a4d0ad8571 AP_InertialSensor: Fix name of sensor 2016-08-23 11:25:59 +09:00
Andrew Tridgell 25f1dbd8c2 HAL_SITL: allowed SITL to reopen uart connections 2016-08-23 09:30:17 +10:00
Andrew Tridgell 49b82b767f SITL: added RPM for heli sim 2016-08-23 09:30:14 +10:00
Andrew Tridgell c87fa13e77 AC_WPNav: added WP_RFND_USE parameter
allows disable of rangefinder use for terrain following
2016-08-23 09:27:39 +10:00
Tom Pittenger 330c63b010 AP_Avoidance: handle condition where avoid is disabled while avoiding 2016-08-17 22:38:54 -07:00
Tom Pittenger c06b63b4cd AP_Avoidance: provide different default params for copter vs plane
copter is unchanged, plane has larger distances
2016-08-17 22:38:54 -07:00
Tom Pittenger 1612110d16 AP_ADSB: fixed signed int compare compile warning/error and reject >24bit ICAO
- The value is only 24bits anyway so sign conversion does not matter
- also reject ICAO values > 24bits
2016-08-16 18:49:48 -07:00
Tom Pittenger 78e7acf25c AP_ADSB: do not detect, and thus avoid, yourself 2016-08-16 17:29:34 -07:00
Tom Pittenger b6810006eb AP_ADSB: move mavlink msg handling into library 2016-08-16 16:33:36 -07:00
Andrew Tridgell 3ecf2850a8 SITL: fixed send of MAVLink2 pkt 2016-08-16 16:33:36 -07:00
Tom Pittenger 19ac9bce48 SITL: add Ping2020 simulated device 2016-08-16 16:33:36 -07:00
Andrew Tridgell 38fff6d43d RC_Channel: expanded docs for RCn_FUNCTION 2016-08-16 16:16:09 +10:00
Andrew Tridgell 62f3818b83 RC_Channel: added k_throttle
for secondary throttle on planes
2016-08-16 16:14:34 +10:00
Andrew Tridgell c1480315f5 AP_AdvancedFailsafe: update AFS_TERMINATE on GCS on termination 2016-08-16 12:56:13 +10:00
Andrew Tridgell cee1e37391 AP_AdvancedFailsafe: make relationship to OBC clearer in comment 2016-08-16 12:56:12 +10:00
Andrew Tridgell 838728348f AP_AdvancedFailsafe: re-work for use as vehicle derived class 2016-08-16 12:55:50 +10:00
Andrew Tridgell 8163db1adb AP_AdvancedFailsafe: cleanups for new naming 2016-08-16 12:55:50 +10:00
Andrew Tridgell cef4635ad9 AP_AdvancedFailsafe: rename from APM_OBC 2016-08-16 12:55:50 +10:00
Andrew Tridgell 636188014d APM_OBC: make the ENABLE flag control presence of the parameters 2016-08-16 12:55:50 +10:00
Andrew Tridgell 119e312cd3 AP_BoardConfig: wait up to 0.4s for safety to be off on boot 2016-08-16 12:53:34 +10:00
Andrew Tridgell dddaded8d4 HAL_PX4: fixed a race condition in force_safety_on/off
the status update from IO may not have come through if we force safety
on and then off in quick succession, such as for plane mixer load

this forces the ioctl to be sent at least once
2016-08-16 12:53:34 +10:00
Andrew Tridgell 1fa137caad GCS_MAVLink: added handle_preflight_reboot() 2016-08-16 12:53:33 +10:00
Lee Hicks 51e8d8a294 AP_GPS: Don't send config blob to GPS unless AUTO_CONFIG=1
All GPS types will recieve startup up blob config. For
some recievers this will cause them to hang. This commit
only allows sending of blobs if AUTO_CONFIG=1. Fixes #2622
2016-08-16 10:56:37 +10:00
Lee Hicks 7c3b8dceb9 AP_GPS: Fixed GPS serial speeds starting at 1 instead of 0
The counting of this will increment the counter before
selecting the baud speed, skipping the first baud rate.
2016-08-16 10:56:36 +10:00
Lee Hicks 3dd4f30460 AP_GPS: Adding 19200 as serial speed for GPS
APM supports baud speeds of 19200, but GPS baud rates
don't support it. This commit adds it to follow APM supported
baud rates.
2016-08-16 10:56:36 +10:00
Leonard Hall 29d4790fc7 AC_AttControl: reduce max_rate_step based on hover throttle
This changes reduces AutoTune's twitch size based on the hover throttle
This method is only used by AutoTune
2016-08-12 22:29:53 +09:00
Peter Barker 8d253dec8e DataFlash: support for mavlink SENSOR message 2016-08-11 17:48:44 -03:00
Grant Morphett 30bcea73cc PX4: Added detection for MPU6000 on px4slim. 2016-08-11 08:39:16 +10:00
LukeMike 38150a5544 AP_BoardConfig: defined and managed VRBRAIN board type and all functions for sensors startup 2016-08-11 07:52:40 +10:00
LukeMike e6c8653302 AP_IRLock_PX4: enabled sensor driver startup on bus2 if don't start on bus1 2016-08-11 07:52:39 +10:00
LukeMike 316e5acaec AP_OpticalFlow_PX4: enabled sensor driver startup for all VR boards 2016-08-11 07:52:39 +10:00
Andrew Tridgell 38ebe582cc AP_BoardConfig: fixed for VRBrain build
needs access to driver start function
2016-08-10 20:43:03 +10:00
Andrew Tridgell eaa88b1223 AP_BoardConfig: FMUv1 does not have pwm_input driver 2016-08-10 19:54:01 +10:00
Andrew Tridgell 39676d686c AP_BoardConfig: FMUv1 does not have an L3GD20 2016-08-10 19:54:01 +10:00
Andrew Tridgell 7da89c611d AP_BoardConfig: use a STATUSTEXT to show better in MP
this makes it easier to see why it won't boot
2016-08-10 19:54:01 +10:00
Andrew Tridgell 78b2924c00 AP_OpticalFlow: auto-start px4flow driver if enabled 2016-08-10 19:54:01 +10:00
Andrew Tridgell 74182b6b3d AP_Notify: auto-start oreoled driver if enabled 2016-08-10 19:54:00 +10:00
Andrew Tridgell e24cebec33 AP_IRLock: auto-start batt_smbus driver if enabled 2016-08-10 19:54:00 +10:00
Andrew Tridgell d05a08ff4d AP_BattMonitor: auto-start batt_smbus driver if enabled 2016-08-10 19:54:00 +10:00
Andrew Tridgell 0d59935847 AP_BoardConfig: fixup for merge after VRBrain changes 2016-08-10 19:54:00 +10:00
Andrew Tridgell 77bee322e9 AP_BoardConfig: support the PHMINI as BRD_TYPE=5 2016-08-10 19:54:00 +10:00
Andrew Tridgell 61e15af3ca AP_BoardConfig: added BRD_TYPE
this allows for PH2SLIM support with BRD_TYPE=6
2016-08-10 19:54:00 +10:00
Andrew Tridgell 7c5171e9b9 AP_BoardConfig: set default temperature on PH2 to 60 2016-08-10 19:54:00 +10:00
Andrew Tridgell 7806aa4274 AP_BoardConfig: moved optional sensors to the sensor startup
this makes startup much faster
2016-08-10 19:54:00 +10:00
Andrew Tridgell 36e0c7229a AP_BoardConfig: implement PX4 driver start in C++
this brings driver startup into AP_BoardConfig, so we can start to
make driver startup depend on parameters
2016-08-10 19:53:59 +10:00
Andrew Tridgell 4643d6f314 AP_BoardConfig: break out PX4 setup from main code
refactoring in preparation for larger changes
2016-08-10 19:53:59 +10:00
Andrew Tridgell e82384990d AP_BoardConfig: moved px4 variables to px4 structure
refactoring in preparation for larger changes
2016-08-10 19:53:59 +10:00
Andrew Tridgell 270fa95a8d AP_Morors: scale colyaw to match previous behaviour
this was missed in the motor scaling changes. Thanks to Rob for
noticing this.
2016-08-10 07:58:06 +10:00
Tom Pittenger a66e248f5c AP_Airspeed: remove AP_Vehicle::FixedWing dependency 2016-08-08 00:12:42 -07:00
Tom Pittenger ce7b766d8b AP_Airspeed: remove AP_Vehicle::FixedWing dependency 2016-08-08 00:02:42 -07:00
Tom Pittenger ae46c38ff7 AP_Airspeed: pass in max airspeed via function call instead of using aparm 2016-08-08 00:02:42 -07:00
Randy Mackay ad697243b3 AP_MotorsMulticopter: initialise some members
This resolves some Covarity warnings at the cost of a small amount of flash
2016-08-08 13:31:30 +09:00
Randy Mackay 3c87f67212 AC_PrecLand: initialise some members
This was not a real problem but it resolves some Covarity warnings
2016-08-08 13:31:28 +09:00
Leonard Hall 50b694444b AC_AttControl: correct method comments
No functional change
2016-08-08 11:24:42 +09:00
priseborough e6f36f04db AP_NavEKF2: Enable automatic use of range finder height
The EK2_RNG_USE_HGT parameter sets the height (expressed as a percentage of the maximum range of the range finder as set by the RNGFND_MAX_CM parameter) below which the range finder will be used as the primary height source when the vehicle is moving slowly.

When using a height reference other than GPS, the height datum can drift due to air pressure changes if using baro, or due to terrain height changes if using range finder as the primary height source. To ensure that a consistent height datum is available when switching between altitude sources, the WGS-84 height estimate of the EKF's local positi norigin is updated using a
single state Bayes estimator,

If rngfinder or gps height data is lost whilst being used, there will be a fall-back to baro data.
2016-08-08 10:56:44 +09:00
Tom Pittenger 1586abab8d Revert "AP_Airspeed: Converted library to be stand-alone from APM:Plane."
This reverts commit 5439257236.
2016-08-07 17:54:24 -07:00
Tom Pittenger 82777873af Revert "APM_Control: Convert references to AP_Airspeed."
This reverts commit cc5a2417a6.
2016-08-07 17:54:24 -07:00
Tom Pittenger e5bd23e34a Revert "AP_TECS: Convert references to AP_Airspeed."
This reverts commit 09d53eaeca.
2016-08-07 17:54:24 -07:00
Tom Pittenger 44037c13a1 Revert "AP_Vehicle: Removed unused airspeed_min and airspeed_max as now part of AP_Airspeed."
This reverts commit bf7ab052c1.
2016-08-07 17:54:24 -07:00
Tom Pittenger 8dad05d12e Revert "Airspeed: store reference in libraries and populate it"
This reverts commit c090ba2257.
2016-08-07 17:54:24 -07:00
LukeMike 5987cc273f AP_HAL_VRBRAIN: added some new modules for I2C wrapper 2016-08-07 20:31:52 +10:00
LukeMike 7ee8898948 AP_BoardConfig: updated defines for VRBRAIN 2016-08-07 20:31:52 +10:00
LukeMike 95ae69eb1c VRBRAIN /AP_BoardConfig: changed definition of PWM_SERVO_MODE_12PWM only for VRBRAIN 2016-08-07 20:31:52 +10:00
LukeMike 024d3311b3 VRBRAIN / AP_BoardConfig: enabled PWM configuration and safety management for all VirtualRobotix boards 2016-08-07 20:31:51 +10:00
LukeMike 9f8b66758c VRBRAIN / AP_OpticalFlow: enabled OpticalFlow_PX4 for all VirtualRobotix boards 2016-08-07 20:31:51 +10:00
LukeMike 6748bdb1a4 AP_Notify/ExternalLED: added HIGH and LOW definition 2016-08-07 20:31:51 +10:00
LukeMike 858c22ae21 VRBRAIN /AP_Notify: enabled tone_alarm for all VirtualRobotix boards 2016-08-07 20:31:51 +10:00
LukeMike 13e3150023 VRBRAIN / AP_HAL_Boards: definition of new board VR Brain 5.4 and VR Core 1.0 2016-08-07 20:31:51 +10:00
LukeMike b5cf0308cd VRBRAIN / AP_BattMonitor_Analog: definition of default value for battery monitor for all VirtualRobotix boards 2016-08-07 20:31:51 +10:00
LukeMike 4d8e7f1783 VRBRAIN / AP_Airspeed: defined ARSPD_DEFAULT_PIN for VR Brain 5.4 and VR Core 1.0 2016-08-07 20:31:51 +10:00
LukeMike d8cc2668cb VRBRAIN / AP_AHRS_NavEKF: set AP_AHRS_WITH_EKF1 to 1 only for VR Brain 5.4 2016-08-07 20:31:51 +10:00
LukeMike 998033286d AP_HAL_PX4 / Semaphores: removed AP_HAL_VRBRAIN (for now it's better to have different AP_HAL for PX4 and VRBRAIN) 2016-08-07 20:31:50 +10:00
LukeMike fde5992b6d VRBRAIN: updated AP_HAL_VRBRAIN 2016-08-07 20:31:50 +10:00
Leonard Hall 34055944cd AC_PosControl: fix relax_alt_hold_controllers 2016-08-05 12:40:37 +09:00
Randy Mackay 24044e5611 AC_AttControl: get_throttle_avg_max always returns value in 0 to 1 range
throttle_avg_max is the total average throttle level (expressed as a number from 0 to 1) that the motors can safely be raised to in order to maintain attitude control.  This level can be higher than the pilot's or autopilot provided throttle level.
Previously passing in a negative throttle_in could result in a negative throttle_avg_max being returned.
2016-08-05 12:40:37 +09:00
Leonard Hall ac04fcd836 AC_AttControl: fix set_yaw_target_to_current_heading 2016-08-05 12:40:37 +09:00
Leonard Hall 011bc0a350 AC_AttControl: add reset_rate_controller_I_terms() 2016-08-05 12:40:37 +09:00
Tom Pittenger e63e7a5336 AP_NavEKF: comment that param "Enable" index is moved to top 2016-08-04 11:32:46 -07:00
Tom Pittenger 9b33280795 APM_OBC: set param "Enable" to be FLAG_ENABLE and move to top 2016-08-04 11:32:02 -07:00
Tom Pittenger 28648665b9 AP_Terrain: set param "Enable" to be FLAG_ENABLE 2016-08-04 11:31:37 -07:00
Tom Pittenger ebe829614d AP_Parachute: set param "Enable" to be FLAG_ENABLE 2016-08-04 11:31:21 -07:00
Tom Pittenger b1ef848de6 AP_EPM: set param "Enable" to be FLAG_ENABLE 2016-08-04 11:30:50 -07:00
Tom Pittenger 0d14941eea AP_Avoidance: set param "Enable" to be FLAG_ENABLE 2016-08-04 11:30:39 -07:00
Tom Pittenger c07b85f9bb AP_Airspeed: set param "Enable" to be FLAG_ENABLE 2016-08-04 11:30:22 -07:00
Tom Pittenger dd5ed7e2e0 AC_Sprayer: set param "Enable" to be FLAG_ENABLE 2016-08-04 11:30:03 -07:00
Tom Pittenger ccb0151816 AC_PrecLand: set param "Enable" to be FLAG_ENABLE 2016-08-04 11:29:45 -07:00
Tom Pittenger 5e811b8463 AC_Fence: set param "Enable" to be FLAG_ENABLE 2016-08-04 11:29:30 -07:00
Tom Pittenger c090ba2257 Airspeed: store reference in libraries and populate it
- also had to move the initial definition in plane.h so it happened before the others.
2016-08-04 11:06:44 -07:00
AndersonRayner bf7ab052c1 AP_Vehicle: Removed unused airspeed_min and airspeed_max as now part of AP_Airspeed. 2016-08-04 10:09:04 -07:00
AndersonRayner 09d53eaeca AP_TECS: Convert references to AP_Airspeed. 2016-08-04 10:09:04 -07:00
AndersonRayner cc5a2417a6 APM_Control: Convert references to AP_Airspeed. 2016-08-04 10:09:04 -07:00
AndersonRayner 5439257236 AP_Airspeed: Converted library to be stand-alone from APM:Plane.
Additional changes:
   ARSPD_FBW_MIN and ARSPD_FBW_MAX renamed to ARSPD_MIN and ARSPD_MAX
   ARSPD_MIN and ARSPD_MAX changed to floats
2016-08-04 10:09:04 -07:00
Andrew Tridgell 66c4995c9d AP_Motors: added get_desired_spool_state() 2016-08-04 09:43:40 -07:00
murata b6c27b58a8 AC_Fence: magic number 4 changed to size of uint32_t 2016-08-04 15:26:18 +09:00
Pavel Kirienko 9b786559d4 Fixed missing definition error UAVCAN_IOCS_HARDPOINT_SET 2016-08-04 09:16:02 +10:00
Pavel Kirienko fccdcf50c1 EPM: fixed build 2016-08-04 09:16:02 +10:00
Pavel Kirienko 8af6af004d EPM: fixed parameter comments 2016-08-04 09:16:02 +10:00
Pavel Kirienko accf118e38 UAVCAN hardpoint control 2016-08-04 09:16:02 +10:00
Murilo Belluzzo 077e03678f Global: Adapt Stream class to be used with Ringbuffer 2016-08-03 01:44:02 -03:00
Murilo Belluzzo b856d26087 RingBuffer: ::set_size now returns true or false 2016-08-03 01:44:02 -03:00
Murilo Belluzzo f7f203efa9 RingBuffer: Add ::clear() method to discard the buffer content
The same could be achieved with ::set_size(::get_size()), but was not
obvious and hurts code readability.
2016-08-03 01:44:02 -03:00
Murilo Belluzzo 75a1b102fb RingBuffer: Handle zero sized better
Sometimes (like in DataFlash) the size of the ring buffer will be
determined in run time and the object can have size zero until proper
initialization. When this was the case, an underflow in ::get_size would
mess with the initializing algorithm.

Another issue was that the 'new' operator could fail what was not being
handled. Now, we only set the size member after we are sure 'new'
successfully allocated memory.
2016-08-03 01:44:02 -03:00
Murilo Belluzzo fe48901db0 AP_ADC_ADS1115: Remove resource leak.
Constructor allocate '_samples' but there was no destructor to
deallocate it. Also, initializes '_gain' to silence CID 9144 although
'_gain' wasn't being used uninitialized because of ::init().

CID 91424
2016-08-03 00:24:55 -03:00
Murilo Belluzzo 36bdd7f1f1 AP_InertialSensor: MPU6000: Add missing read() check 2016-08-03 00:18:20 -03:00
Lucas De Marchi 0d4caa3ccc AP_Math: remove declaration of not implemented functions 2016-08-03 00:16:35 -03:00
Murilo Belluzzo 70942472d3 AP_Math: Matrix: Change deallocator to match allocator used 2016-08-03 00:09:11 -03:00
Murilo Belluzzo e17fdb2aa9 DataFlash: Avoid null pointer dereference
Confirms that the loop successfully found a log structure before using it.

Should fix CID 126742
2016-08-03 00:02:19 -03:00
Holger Steinhaus cc4fafc3e4 AP_GPS_PX4: fixed GPS epoch calculations 2016-08-02 11:20:48 +10:00
Tom Pittenger 282817eeb9 AP_ADSB: revert default enable = 0 2016-08-01 17:56:04 -07:00
Tom Pittenger b5ec37b9d8 AP_ADSB: change adsb.enable param to be a flag 2016-08-01 17:51:24 -07:00
Tom Pittenger 2be32e9daa AP_ADSB: remove all threat logic in adsb lib in favor of avoidance lib 2016-08-01 15:27:40 -07:00
Tom Pittenger b2b63b4d80 AP_ADSB: change param ADSB_ENABLE default from 0 to 1 2016-08-01 15:27:39 -07:00
Tom Pittenger 89271c29ab AP_ADSB: move variable into struct like the rest 2016-08-01 15:27:38 -07:00
Tom Pittenger f7c2df8e91 AP_ADSB: sanity check data via valid_flags before forwarding to avoidance lib 2016-08-01 12:47:18 -07:00
Tom Pittenger 5c0b5f5cd1 AP_ADSB: reject packets that are invalid or already stale 2016-08-01 12:44:20 -07:00
Tom Pittenger b12edf6a71 AP_ADSB: fix bug where the update timeout wasn't being stored correctly
- causes immediate timeout so all samples were dropped
- now the timeout is current and respects the time-since-last-comms/packet so we can ignore stale packets
2016-08-01 12:43:47 -07:00
Tom Pittenger e0bb77726e AP_ADSB: do not service transceiver if it is not detected
- also allow forced detected (setting chan in header) for testing by not having it time out in that special case (timer = 0)
2016-08-01 09:06:05 -07:00
Peter Barker 2844190e5b AP_RangeFinder: correct DisplayName comments 2016-08-01 09:55:25 -03:00
Peter Barker 1bb73383ec AP_RangeFinder: group _ADDR with other first-rangefinder params 2016-08-01 09:55:24 -03:00
Peter Barker d5ffc8a863 AP_RangeFinder: define 3_ADDR when we have three rangefinders
Without this patch this field would only be defined when 4 rangefinders
were specified
2016-08-01 09:55:24 -03:00
Randy Mackay d5c18dc987 AC_AttControl: remove unused 100hz definition 2016-08-01 17:21:04 +09:00
Randy Mackay 2dc111ff39 Copter: reduce WPNAV_LOIT_MINA parameter description range 2016-08-01 17:09:20 +09:00
Randy Mackay 7d0cac15fb AP_ICEngine: add casting to avoid compiler warnings 2016-08-01 09:41:32 +09:00
Lucas De Marchi e217faacab AP_Baro: MS56XX: cosmetic changes to members
- reorder and document members.
    - remove tentative of vertical alignement
    - like was done for accumulated values, move the calibration
      values to a struct
2016-07-30 00:55:28 -03:00
Lucas De Marchi f7b453359d AP_Baro: MS56XX: convert to threaded bus
This converts MS56XX to use the thread started by SPI/I2C instead of
using the timer thread. This also fixes a possible starvation of the
main thread:

    1) INS driver registers itself to be sampled on timer thread
    2) MS56XX registers itself to be sampled on timer thread
    3) Main thread waits for a sample from INS with
       ins.wait_for_sample()
    4) timer thread is waiting on update from MS56XX and consequently
       the main thread is waiting on an I2C/SPI transfer

Besides this starvation there's another one due to reuse of the timer
lock in order to pump values from the timer thread to the main thread. A
call to the update() method when we have a sample available would need
to wait on any other driver holding the timer lock.

Now there's a lock just to pass the new values from the bus thread to
the main thread with a very tiny critical region, not waiting on any
bus transfers and/or syscalls.
2016-07-30 00:55:28 -03:00
Lucas De Marchi 052f30bc70 AP_HAL: remove macros to use MS5611 in the main thread 2016-07-30 00:55:28 -03:00
Lucas De Marchi 929348ff75 AP_Baro: MS5611: always use timer thread
Remove support to run MS5611 on main thread since we shouldn't be doing
I2C transactions there and we are moving to "thread per bus"
nonetheless.
2016-07-30 00:55:28 -03:00
Lucas De Marchi 7b7e73680f AP_Math: add USEC_PER_MSEC 2016-07-30 00:55:28 -03:00
Lucas De Marchi 8541d5339d AP_HAL_Linux: Implement threaded SPI 2016-07-30 00:55:27 -03:00
Lucas De Marchi ea0595c7ac AP_HAL_Linux: SPIDevice: move implementation to outside
As we add methods, it's becoming too complex to be implemented together
with the declaration.
2016-07-30 00:55:27 -03:00
Lucas De Marchi 590539f674 AP_HAL_Linux: implement threaded I2C 2016-07-30 00:55:27 -03:00
Lucas De Marchi 11ddbb8fb8 AP_HAL_Linux: add PollerThread
This is the infrastructure needed by both SPIDevice and I2CDevice to
start a poller thread per bus.
2016-07-30 00:55:27 -03:00
Lucas De Marchi 7d451ac876 AP_HAL_Linux: allow to check if thread is running 2016-07-30 00:55:27 -03:00
Lucas De Marchi eca6f45b68 AP_HAL_Linux: remove unused part of Poller infra
We aren't going to use all the poller infra for now and we need it's
behavior a little bit different for what we are going to use:

    - Do not use any "fair" time for each ready fd since we don't want
      to set a timeout
    - Allow to set the fd on Pollable after constructing it since we are
      likely to embed Pollable inside other structs and just later be
      able to open an fd.
    - Let caller use the epoll flags directly - this is not in AP_HAL,
      so there's no need to abstract them
2016-07-30 00:55:27 -03:00
Leandro Pereira 0f865a019a AP_HAL_Linux: Add Pollable/Poller
Add system's polling infrastructure to be notified whenever a
file descriptor is ready to be read from or written to.

Adds a few classes:
  * Poller, as an interface to epoll()
  * Pollable, as an interface to a file descriptor
2016-07-30 00:55:27 -03:00
Lucas De Marchi c859c5ecd9 AP_HAL_PX4: update Device interface 2016-07-30 00:55:27 -03:00
Lucas De Marchi eaa1c39a15 AP_HAL_Linux: update Device interface 2016-07-30 00:55:27 -03:00
Lucas De Marchi 7669d54265 AP_HAL_Empty: update Device interface 2016-07-30 00:55:27 -03:00
Lucas De Marchi 37de995960 AP_HAL: update Device interface for periodic tasks
Replace the previous not-implemented interface with a set of new methods
that can be resonably implemented:

    - register_periodic_callback() now receives a functor returning bool
      to easily allow "oneshot" timers

    - adjust_periodic_callback() allows the caller to change the timer
      for a specific handle. This way drivers like MS5611 can adjust the
      timer depending on its state machine: the time to sample
      temperature is smaller than the time to get a pressure sample

    - add unregister_callback(): since we have an opaque pointer, we
      can't tell the user to just delete it in order to unregister the
      callback
2016-07-30 00:55:27 -03:00
Lucas De Marchi 8e5aba8653 AP_HAL_Linux: I2CDevice: move implementation to outside
As we add methods, it's becoming too complex to be implemented together
with the declaration.
2016-07-30 00:55:27 -03:00
Lucas De Marchi 7b39f3d0a7 AP_HAL_Linux: do not warn for empty table
../../libraries/AP_HAL_Linux/SPIDevice.cpp: In member function ‘virtual AP_HAL::OwnPtr<AP_HAL::SPIDevice> Linux::SPIDeviceManager::get_device(const char*)’:
../../libraries/AP_HAL_Linux/SPIDevice.cpp:337:27: warning: comparison is always false due to limited range of data type [-Wtype-limits]
     for (uint8_t i = 0; i < _n_device_desc; i++) {
                         ~~^~~~~~~~~~~~~~~~

Define a dummy device to remove warning.
2016-07-30 00:03:23 -03:00
Lucas De Marchi f37a560295 AP_HAL_Linux: remove private headers
This centralized private header encourages centralizing things on
umbrella headers that are a pain to maintain. Force each part of
AP_HAL_Linux to include what is used.
2016-07-29 20:29:46 -03:00
Lucas De Marchi e8f71a5bd2 AP_HAL_Linux: change define and members visibility
Make some member variables protected to follow what we do in other
places (and there's no reason to be private).

Move defines to .cpp to reduce their visibility.
2016-07-29 20:27:12 -03:00
Lucas De Marchi f36e8d9c05 AP_HAL_Linux: remove AP_HAL_Linux_Namespace header
This centralized namespace header encourages centralizing things on
umbrella headers that are a pain to maintain. Force each part of
AP_HAL_Linux to include what is used.

While at it, do some whitespace cleanups and minor changes to adhere to
coding style.
2016-07-29 20:25:03 -03:00
Lucas De Marchi b044fac4b6 AP_HAL_Linux: rename variable to follow I2CDevice convention 2016-07-29 15:01:15 -03:00
Lucas De Marchi 57ec968b44 AP_HAL: remove SPIDriver
SPIDevice now controls all accesses to SPI bus.
2016-07-29 15:01:15 -03:00
Lucas De Marchi dc91dfb446 AP_HAL_Empty: remove SPIDriver
SPIDevice now controls all accesses to SPI bus.
2016-07-29 15:01:15 -03:00
Lucas De Marchi 7b140da6d1 AP_HAL_Linux: remove SPIDriver
SPIDevice now controls all accesses to SPI bus.
2016-07-29 15:01:15 -03:00
Lucas De Marchi 5ab1c6ff51 AP_ADC: remove ADS7844
It's not used by any board.
2016-07-29 15:01:15 -03:00
Lucas De Marchi ef81e71afa AP_ADC: remove example tailored to a single ADC
This is the only user of ADS7844 - we don't have it actually used in our
boards. Remove the example since we can later add a more generic one or
at least one that reuses a driver from our boards.
2016-07-29 15:01:15 -03:00
Lucas De Marchi 3a5e8a17c7 AP_HAL: remove enum id for Ublox and RASPIO 2016-07-29 15:01:15 -03:00
Lucas De Marchi 945556bbc3 AP_HAL_Linux: remove id for SPIDevice_Ublox and RASPIO 2016-07-29 15:01:15 -03:00
Lucas De Marchi 065592e7df AP_HAL_Linux: SPIUARTDriver: add some cosmetic changes
Mainly changes to follow the coding style and reduce the complexity a
little bit.
2016-07-29 15:01:15 -03:00
Lucas De Marchi e3c0476b8a AP_HAL_Linux: SPIUARTDriver: initialize device once 2016-07-29 15:01:14 -03:00
Lucas De Marchi 418cc817a3 AP_HAL_Linux: SPIUARTDriver: fix conversion to SPIDevice
We need to use the fullduplex method to transfer both tx and rx at the
same time.
2016-07-29 15:01:14 -03:00
Lucas De Marchi cbbd6f9d78 AP_HAL_Linux: SPIDevice: implement fullduplex transfer 2016-07-29 15:01:14 -03:00
Lucas De Marchi 9fda608d4a AP_HAL_Empty: SPIDevice: implement fullduplex transfer 2016-07-29 15:01:14 -03:00
Lucas De Marchi 01452bf922 AP_HAL: SPIDevice: add fullduplex method
This method is needed when we want to transfer both tx and rx at the
same time, as opposed to common cases for sensors in which they are like
in the I2C interface: half-duplex.
2016-07-29 15:01:14 -03:00
Luiz Ywata 7ded01cf24 AP_HAL_Linux: SPIUARTDriver: use SPIDevice interface 2016-07-29 15:01:14 -03:00
Luiz Ywata c8bb5e6469 AP_HAL_Linux: RCInput_Raspilot use SPIDevice interface 2016-07-29 15:01:14 -03:00
Luiz Ywata e8d3229492 AP_HAL_Linux: RPIOUARTDriver: use SPIDevice interface 2016-07-29 15:01:14 -03:00
Luiz Ywata bfd840c5ca AP_HAL_Linux: RCOutput_Raspilot: use SPIDevice interface 2016-07-29 15:01:14 -03:00
Lucas De Marchi 86ac9bc367 AP_HAL_Linux: AnalogIn_Raspilot: use SPIDevice interface 2016-07-29 14:47:04 -03:00
Lucas De Marchi 81345cc112 AP_HAL: Remove enum for Dataflash 2016-07-29 14:47:04 -03:00
Lucas De Marchi 8681d23cbd AP_HAL_Linux: remove unused Dataflash
This is selectable by a define and is never changed. Just remove
everything referencing it: we can come up with a better solution if it
is actually used later.
2016-07-29 14:47:04 -03:00
Peter Barker 9749b91d46 SITL: initialise sigaction structs - valgrind fix 2016-07-29 10:38:03 -03:00
Jonathan Challinger d1ecc63bf1 AP_NavEKF2: change priority of statustext messages 2016-07-29 13:19:51 +09:00
Lucas De Marchi 1841313f73 AP_HAL_VRBRAIN: remove I2CDriver
I2CDevice now serves for the same purpose.
2016-07-28 18:08:57 -03:00
Lucas De Marchi d418338e22 AP_HAL_SITL: remove I2CDriver
I2CDevice now serves for the same purpose.
2016-07-28 18:08:57 -03:00
Lucas De Marchi 13848f0f3f AP_HAL_QURT: remove I2CDriver
I2CDevice now serves for the same purpose.
2016-07-28 18:08:57 -03:00
Lucas De Marchi 2ef78051c1 AP_HAL_PX4: remove I2CDriver
I2CDevice now serves for the same purpose.
2016-07-28 18:08:56 -03:00
Lucas De Marchi 73bb371918 AP_HAL_Linux: remove I2CDriver
I2CDevice now serves for the same purpose.
2016-07-28 18:08:56 -03:00
Lucas De Marchi 3eb0a48d59 AP_HAL_Empty: remove I2CDriver
I2CDevice now serves for the same purpose.
2016-07-28 18:08:56 -03:00
Lucas De Marchi b21ad36676 AP_HAL: remove I2CDriver 2016-07-28 18:08:56 -03:00
Lucas De Marchi 8f11bf7373 AP_ADC: ADS1115: fix typo 2016-07-28 18:05:45 -03:00
Lucas De Marchi 4595a2b7d8 AP_Compass: Remove i2c lockup count
This was returned only for a single bus and on all supported platforms
this is hardcoded to 0.
2016-07-28 18:03:09 -03:00
Lucas De Marchi 84f45f09a3 AP_HAL_Linux: convert CameraSensor_Mt9v117 to I2CDevice 2016-07-28 18:03:09 -03:00
Lucas De Marchi 9acffc8868 AP_HAL_Linux: use Empty version if not implemented
There's little point in having the Linux::AnalogIn just to implement and
empty interface. All implementations inside AP_HAL_Linux are already
inheriting directly from AP_HAL, so just remove it.
2016-07-28 16:42:38 -03:00
Lucas De Marchi 47d2f8dc6d AP_HAL_Linux: AnalogIn_ADS1115: return 5V on board_voltage
board voltage is not available - don't return 0V since that prevents
arming.
2016-07-28 16:42:38 -03:00
Tom Pittenger 59135fc615 AP_ADSB: fixed comment for default chan -1 means transceiver is not detected 2016-07-28 09:41:38 -07:00
Andrew Tridgell c6d3f07b5f AP_RPM: provide an RPM quality in SITL 2016-07-28 12:39:07 +10:00
Staroselskii Georgii 4ca1b58408 AP_HAL_Linux: add ConsoleDevice a handler for TTIN signal
In a case ArduPilot is launched as a background process without
detaching with *nohup* like this ./arduplane -C /dev/ttyAMA0 ConsoleDevice
is created and an attempt to read from it is made. This yields in a stopped
process. This is an endeavour to overcome this problem.
2016-07-27 21:30:19 +10:00
Staroselskii Georgii 8d2b587f71 AP_HAL_Linux: RPI: set signal handler iff nobody has already done it before 2016-07-27 21:30:19 +10:00
Staroselskii Georgii 5e8edcb1db AP_HAL_Linux: use NSIG instead of a hardcoded number in RCInput_RPI 2016-07-27 21:30:19 +10:00
Staroselskii Georgii d69aeb4808 AP_HAL_SITL: use sigaction over signal API in SITL_State 2016-07-27 21:30:19 +10:00
Randy Mackay d19c074ba1 AP_ADC_ADS1115.h: changed member declaration order to resolve compiler warning
No functional change
2016-07-27 13:39:32 +09:00
hiro2233 3ae36c4a6c AP_HAL_Linux:RCInput: Minimun input channels defined 2016-07-27 00:55:55 -03:00
hiro2233 4a6447575c AP_HAL: fixed and updated RCInput example. 2016-07-27 00:52:13 -03:00
Andrew Tridgell 9df58e1e0a AP_Arming: don't show the GPS arming error in SITL
it just makes users think something is wrong
2016-07-27 07:46:04 +10:00
Lucas De Marchi a159eedd8c AP_RangeFinder: fix bus for Lightware on some boards 2016-07-26 00:52:54 -03:00