Commit Graph

8490 Commits

Author SHA1 Message Date
Andrew Tridgell 28bdeaf5d9 GCS_MAVLink: use a larger log send queue for Linux
often on UDP or TCP with more bandwidth
2015-08-19 20:03:18 +09:00
Andrew Tridgell 19dee8419b AP_HAL: added pollout() function to socket API 2015-08-19 20:03:17 +09:00
Andrew Tridgell a5f01c7ada HAL_Linux: sped up UDP transfers by about 25x
allow more than 1 packetised transfer per tick
2015-08-19 20:03:16 +09:00
Andrew Tridgell ab7f9807a2 AP_GPS: added optional NMEA debug log
compile time option for debugging
2015-08-19 20:03:15 +09:00
Andrew Tridgell 81a3d439a3 HAL_Linux: allow startup before network bringup
this makes it possible to bootup ardupilot before the desired network
interface is available. This is very useful for when using 3G dongles
in aircraft
2015-08-19 20:03:13 +09:00
Andrew Tridgell 288c20a58e HAL_Linux: implemented TCP server as a single driver
the wait flag just changes startup behaviour. The TCP server should
always be a server with listen and accept. We don't need two drivers
2015-08-19 20:03:11 +09:00
Andrew Tridgell ef47a27ac8 AP_HAL: added listen and accept APIs to socket API 2015-08-19 20:03:10 +09:00
Andrew Tridgell fa40e7245e AP_HAL: added pollin() interface for Socket API 2015-08-19 20:03:09 +09:00
Andrew Tridgell bd1b35804a HAL_Linux: replace recvfrom with recv 2015-08-19 20:03:08 +09:00
Andrew Tridgell a48f0db405 AP_HAL: fixed socket destructor 2015-08-19 20:03:07 +09:00
Andrew Tridgell bbc8bdcef3 HAL_Linux: removed 0 timeout from sendto call 2015-08-19 20:03:06 +09:00
Staroselskii Georgii 879f4f7555 AP_HAL_Linux: fixed _parseDevicePath() in LinuxUARTDRiver
The current implementation doesn't throw an error on a malformed path string.

i.e. udp:192.168.1.1.14550 instead of udp:192.168.1.1:14550 may result in a memory leak or whatsoever.

The commit fixes the issue and outputs a nice error message if anything's wrong.
2015-08-19 20:03:05 +09:00
Staroselskii Georgii f66f583843 AP_HAL_Linux: renamed TCPClientDevice 2015-08-19 20:03:04 +09:00
Staroselskii Georgii 39048229cd AP_HAL_Linux: renamed TCPServerDevice
A more appropriate name for the class.
2015-08-19 20:03:03 +09:00
Staroselskii Georgii 50765229ca AP_HAL_Linux: made UARTDriver use TCPServerDevice 2015-08-19 20:03:02 +09:00
Staroselskii Georgii 0ec64a5d13 AP_HAL_Linux: added TCPServerDevice 2015-08-19 20:03:01 +09:00
Staroselskii Georgii 34c1fe6e66 AP_HAL_Linux: made UARTDriver use TCPClientDevice 2015-08-19 20:03:00 +09:00
Staroselskii Georgii 244cdb3507 AP_HAL_Linux: added TCPClientDevice 2015-08-19 20:02:59 +09:00
Staroselskii Georgii 595903f17c AP_HAL_Linux: got rid of TCP connection 2015-08-19 20:02:58 +09:00
Staroselskii Georgii 179fc4a781 AP_HAL_Linux: made UARTDriver use ConsoleDevice 2015-08-19 20:02:57 +09:00
Staroselskii Georgii 7ba960f265 AP_HAL_Linux: added ConsoleDevice 2015-08-19 20:02:56 +09:00
Staroselskii Georgii 4a79713081 AP_HAL_Linux: made UARTDriver use UDPDevice 2015-08-19 20:02:55 +09:00
Staroselskii Georgii 9e6c4fe176 AP_HAL_Linux: added UDPDevice 2015-08-19 20:02:54 +09:00
Staroselskii Georgii b59264007c AP_HAL_Linux: encapsulated LinuxUARTDriver::_deallocate_buffers 2015-08-19 20:02:53 +09:00
Staroselskii Georgii 26382e63df AP_HAL_Linux: made UARTDriver use UARTDevice 2015-08-19 20:02:52 +09:00
Staroselskii Georgii 0c582eeae6 AP_HAL_Linux: added UARTDevice 2015-08-19 20:02:51 +09:00
Staroselskii Georgii 7160c88d39 AP_HAL_Linux: added SerialDevice interface
Adds the interface that will be used for encapsulating various mediums
that can be used in the Linux port.
2015-08-19 20:02:50 +09:00
Staroselskii Georgii 9b25217757 AP_HAL_Linux: added _serial_start_connection 2015-08-19 20:02:49 +09:00
Staroselskii Georgii ed431e9857 AP_HAL_Linux: encapsulated LinuxUARTDriver::allocate_buffers 2015-08-19 20:02:48 +09:00
Staroselskii Georgii 4d28b4a962 AP_HAL_Linux: use defines instead of hardcoding fd numbers in UARTDriver 2015-08-19 20:02:47 +09:00
Staroselskii Georgii 6d1133378b AP_HAL: added destructor for Socket 2015-08-19 20:02:46 +09:00
Staroselskii Georgii 3134634af6 AP_HAL: improved constness of Socket API 2015-08-19 20:02:45 +09:00
Michael du Breuil 3a7cc03f67 AP_GPS: Fix copy/paste error in ublox (uncovered by coverity) 2015-08-19 20:02:44 +09:00
Randy Mackay 77b97f8643 AC_AttControl: relax earth frame rate targets along with bf 2015-08-19 20:02:41 +09:00
rentt 1c8180a41f Scheduler: fix compiler warning in example sketch
printf except a unsigned long value, but the hal.scheduler->millis() return a uint32_t
2015-08-19 20:02:38 +09:00
Tom Pittenger bced0a3734 SITL: param SITL_ARSP_FAIL should be a float instead of byte
this param was meant to represent an airspeed which is a float
2015-08-19 20:02:37 +09:00
Andrew Tridgell 1b1bc9f3b1 RC_Channel: prevent floating exception on bad MIN/MAX/TRIM values 2015-08-19 20:02:34 +09:00
Tom Pittenger ffe1561f31 AP_InitialSensor_MPU6000: compiler warning - init order 2015-08-19 20:02:33 +09:00
Tom Pittenger e7a7f43260 AC_WPNav: compiler warnings: float to double 2015-08-19 20:02:32 +09:00
Robert Lefebvre 0615d7a058 AC_Heli_PID: Deprecate Accel Feedforward. 2015-07-30 14:22:55 +09:00
Robert Lefebvre bfc10c1969 AC_AttitudeControl_Heli: Remove Accel Feedforward. 2015-07-30 14:22:53 +09:00
Randy Mackay 5032cf9fbc Copter: init multicopter flags
Resolves coverity warning

Also fixed indentation
2015-07-25 14:00:29 +09:00
Michael du Breuil 9d53aa77eb AP_GPS: Add reboot required docstring 2015-07-25 10:56:19 +09:00
Randy Mackay b13921a7aa Mount_SToRM32: find gimbal channel on startup 2015-07-25 10:53:05 +09:00
Randy Mackay e7df54ca75 GCS_MAVLink: static find_by_mavtype method 2015-07-25 10:53:03 +09:00
Randy Mackay e092902613 GCS_MAVLink: add find_by_mavtype 2015-07-25 10:52:59 +09:00
Peter Barker 1ee330ebb2 DataFlash: CLI log dumping - don't truncate lines that contain doubles
We currently print doubles out as if they were floats.  The ftoa_engine isn't something to replicate for doubles lightly!
2015-07-24 08:08:51 +10:00
Peter Barker 39b2cdcc3c AP_Menu: avoid segmentation fault
Insufficient input would cause a segfault
2015-07-24 08:05:13 +10:00
Randy Mackay 3dfb447fd7 BattMon: has_current true for Bebop
The bebop does not actually provide current but it does estimate the
percentage of battery remaining
2015-07-23 21:49:32 +09:00
Randy Mackay 8403b504d1 BattMon: add Bebop to monitor param description 2015-07-23 21:49:32 +09:00
Randy Mackay 9482578c60 BattMon: Bebop always uses bebop batt monitor 2015-07-23 21:49:31 +09:00
Randy Mackay 84b6ab0707 BattMon_Bebop: use ARRAY_SIZE
Also remove printf of failure message, instead we should add the battery
monitor health to the SYS_STATUS message sent to the ground station
2015-07-23 21:49:30 +09:00
Randy Mackay 3b36178a0b BattMon_Bebop: init members in constructor 2015-07-23 21:49:29 +09:00
Jean-Baptiste Dubois f6aba6c952 HAL_Linux: add read_obs_data to RCOutput_Bebop 2015-07-23 21:49:28 +09:00
Jean-Baptiste Dubois 35ae562dbe AP_BattMonitor: Add battery support for Bebop Hardware 2015-07-23 21:49:27 +09:00
Andrew Tridgell 54254c89d7 AP_Arming: control rudder arming with ARMING_RUDDER parameter
allow for 3 states:

 0: no rudder arming
 1: arm only
 2: arm and disarm
2015-07-23 21:48:50 +10:00
Lucas De Marchi 8240e5ae65 AP_Compass: AK8963: reduce bytes read
We are not using INFO and ST1 registers, so there's no need to read
extra 2 bytes for each transaction.
2015-07-23 17:44:36 +10:00
Lucas De Marchi 2b9c46e1ff AP_Compass: AK8963: don't oversample AK8963
Reduce the frequency with which MPU9250 reads AK8963 to reduce the
chance of errors.
2015-07-23 17:44:36 +10:00
Lucas De Marchi 6c2ceea165 AP_Compass: AK8963: remove author and connection comment
Authorship and how sensor is connected get outdated (as it already is).
Our code is on git so let it track who wrote each line.
2015-07-23 17:44:36 +10:00
Staroselskii Georgii 8ab33c46ce AP_Compass: revisited AK8963 code
Reduced duplication a bit and revisited the update method which is now
split into several logical hunks.
2015-07-23 17:44:36 +10:00
Lucas De Marchi fffedae3e0 AP_Compass: AK8963: reduce stack usage and zero out buffers
Since we are not using MPU9250's fifo to get samples from AK8963 we will
always read only 1 sample (+ control registers).
2015-07-23 17:44:35 +10:00
Lucas De Marchi 37734886a5 AP_Compass: AK8963: remove repeated comments
No need to repeat the same comments on 3 different places. Instead add a
single comment to explain how start_measurements() and read_raw() are
related.
2015-07-23 17:44:35 +10:00
Lucas De Marchi 27d95b67a8 AP_Compass: AK8963: remove state machine
Don't use a state machine in AK8963: the start_measurements() method
should be called only once.  Even if there's a magnetic sensor overflow
the only thing we should do is to discard the new data.

This also moves the _collect_samples() method to be inside _update()
since it's the only place it should be called from, the one running on
the timer thread.
2015-07-23 17:44:35 +10:00
Lucas De Marchi e232543fca AP_Compass: AK8963: change initialization and rename methods
We need to check the AK8963's id before anything else Here we are
reordering the calls to _calibrate() and _check_id(). After that we
don't need to read and write again the AK8963_CNTL1 register.

While at it do some renames as well:
	- _configure() -> _setup_mode(): since now there's a
 	  _bus->configure() it became confusing what actually it's
	  doing.
	- make error messages say what we were actually trying to do but
	  couldn't. Also remove PSTR since this is linux-only.
	- start_conversion() -> start_measurements():  We are instructing the
          bus to start to get the samples, not to tell the chip to start an
          analog->digital conversion like in other sensors.
2015-07-23 17:44:35 +10:00
Lucas De Marchi ae5d9baddb AP_Compass: AK8963: remove defines not used anymore
The MPUREG_PWR_MGMT_1 defines were used when we cared about the MPU9250
initialization code. Now all initialization is done by the MPU9250 class
itself, so remove these defines.

Also remove AK8983_SELFTEST_MAGNETIC_FIELD_ON that is never used and let
the defines always with 2 bytes to improve readability.
2015-07-23 17:44:34 +10:00
Lucas De Marchi cae895bfdf AP_Compass: AK8963: group members together
Besides being semantically related, this removes the hole due to
alignment. The size is the same since the hole is actually turned into
padding.
2015-07-23 17:44:34 +10:00
Lucas De Marchi 28d3d775a4 AP_Compass: AK8963: remove resolution member
We only use the highest one and there's no intention to support the
14bits one. Just use the define rather than saving it as a member.
2015-07-23 17:44:34 +10:00
Lucas De Marchi 86b3312112 AP_Compass: AK8963: factor out common code of read_raw()
Similar code was added in the read_raw() implementation for each bus.
Add a new POD struct read_raw to contain the registers from the AK8963
and use it instead as argument.
2015-07-23 17:44:33 +10:00
dgrat d941174978 AP_Compass: AK8963: enhance the readability
Reduce the deepness of indentation and fix coding style.
2015-07-23 17:44:33 +10:00
Randy Mackay 28c722c157 AC_Circle: rate change takes effect immediately 2015-07-23 16:21:20 +09:00
Tom Pittenger d51e6d466b AP_HAL_SITL: add support for airspeed failures 2015-07-23 14:38:06 +10:00
Tom Pittenger 250dcd31a2 SITL: Add ARSP_FAIL param
This will allow testing pitot tube hardware failures
2015-07-23 14:38:06 +10:00
Staroselskii Georgii d7ac725a64 AP_HAL_Linux: fixed signal handler in RCInput_Navio
DMA is getting stopped in the separate method now. This is the best we
can get at the current time. It does yield slightly better experience
and works in the majority of cases.

The patch is a no bulletproof solution, though.

There's a possibility of corruption in case of e.g. a SIGKILL. There's
no signal framework at the time and the commit doesn't add one. That's
why all signals are handled in the same erroneous way. This is not a
good nor a final solution to the issue.

For the issue at hand a better fix might be porting the code to kernel
space but it's a rather tediuos task that we cannot undertake in the
couple of weeks.
2015-07-23 08:51:38 +10:00
Staroselskii Georgii 8528a7d159 AP_HAL_Linux: added deinit logic for RCInput_Navio
DMA needs to be stopped if a panic occurs.
2015-07-23 08:51:37 +10:00
Staroselskii Georgii f4d14f73ba AP_HAL_Linux: extended panic handling with RCInput deinitialization
The issue has already come up. There's no deinitialization mechanisms at the moment. As APM is rather software than firmware on Linux, there're some clean-up work that needs to be done. This commit triggers deinitialization of RCInput on a panic.
2015-07-23 08:51:37 +10:00
Vladislav Zakharov 97b51a4bcb AP_HAL: Added deinit() method to RCInput
Add a deinit() counterpart. This is needed for some ports that require some deinitializtion logic. The default implementation is empty. I'm not sure whether we need to inforce it for all.
2015-07-23 08:51:37 +10:00
Tom Pittenger 9737c426eb SITL: Gazebo index out of bound
- imu_orientation_quat[size=3] is fed to Quaternion[size=4] which causes an index-out-of-range problem
2015-07-22 21:33:46 +10:00
Michael du Breuil 59dda49cce AP_GPS: Fix missing reserved fields in the UBX-RXM-RAWX message 2015-07-22 21:31:10 +10:00
Michael du Breuil 09fef505e0 AP_GPS: With a ublox driver, accept a packet if it will fit in the buffer 2015-07-22 21:31:10 +10:00
Michael du Breuil 22b16b4532 AP_GPS: Enable selecting what GNSS system to use if the reciever supports it
Ublox 7 and 8 seires use a UBX-CFG-GNSS message to enable satellite constellations. The default value does not enable any additional ones, and any constellations the reciever doesn't report knowing about are not configured.
2015-07-22 21:31:10 +10:00
Michael du Breuil 47592a1953 AP_GPS: Raise the baud rate on a ublox GPS if using RAW logging
the implementation leaves an easy path forward for providing a different startup blob for all the GPS's if raw logging is enabled
2015-07-22 21:31:09 +10:00
Michael du Breuil 19bb96b9cb AP_GPS: Improve startup logic for detecting what gps is connected
Remove race condition on sending intial blob to the GPS, it was possible to send a blob that got the GPS configured enough to allow the autodetect to take over (and then some drivers like ublox would not finish sending the blob, which has potential details that the driver might have needed to send)

Limit the delay to checking for NMEA gps to only checking after all the available baud rates have been checked

Since a UBlox will actually report having DGPS (due to SBAS or RTCM data) actually report this as the highest supported mode
2015-07-22 21:31:09 +10:00
Arthur Benemann e3398648d7 GCS_MAVLink: fix debug formatting 2015-07-21 21:41:34 +09:00
Randy Mackay 521f3dc4b9 GCS_MAVLink: only forward msg once per channel
Issue found and alternative fix provided by Arthur Benemann
2015-07-21 21:41:32 +09:00
Randy Mackay 6f72d202fe GPS: fix parameter descriptions 2015-07-21 19:50:12 +09:00
Randy Mackay e31f2d26c4 MotorsMulticopter: move get_hover_throttle_as_pwm to protected
No functional change
2015-07-21 16:27:04 +09:00
Randy Mackay c7c6228b5d MotorsMulticopter: remove virtual from set_yaw_headroom 2015-07-21 16:27:01 +09:00
Randy Mackay 157c97447d AC_AttControlHeli: init passthrough_yaw 2015-07-21 16:26:27 +09:00
Randy Mackay 8b4805bfcb AC_AttControl_heli: add MotorsHeli include 2015-07-21 16:25:56 +09:00
Randy Mackay bf2bf2e3fa AC_AttControl_Multi: new multirotor specific attitude control class 2015-07-21 16:25:53 +09:00
Randy Mackay 93dd7dd970 AC_AttControl: get_boosted_throttle purely virtual 2015-07-21 16:25:50 +09:00
Randy Mackay 4843be49de AP_MotorsTri: remove call to empty parent Init
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:48 +09:00
Randy Mackay f906934dfa AP_MotorsSingle: remove call to empty parent Init
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:45 +09:00
Randy Mackay 112e934072 AP_MotorsMatrix: remove call to empty parent Init
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:43 +09:00
Randy Mackay b1a4a6bf0a AP_Motors_Coax: remove call to empty parent Init
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:40 +09:00
Randy Mackay 4d1dfd94f5 AP_MotorsMulticopter: multicopter features moved in from parent
Also rename from multirotor to multicopter
2015-07-21 16:25:37 +09:00
Randy Mackay 7355ac9cb8 AP_MotorsHeli: implement empty slow start method 2015-07-21 16:25:34 +09:00
Randy Mackay a3fab10ef4 AP_MotorsHeli: init roll_radio_passthrough 2015-07-21 16:25:31 +09:00
Randy Mackay c9dedbd3b2 AP_Motors: remove multicopter only features
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:28 +09:00
Robert Lefebvre abb6eba291 AP_MotorsHeli: Change allow_arming check to use _rotor_speed_estimate
In future, this will be used to check actual rotor speed (measured) if available, to prevent trying to arm with the rotor spinning.
2015-07-21 16:25:21 +09:00