Commit Graph

19547 Commits

Author SHA1 Message Date
Lucas De Marchi
8eb0b559f2 ArduPlane: avoid comparison between signed and unsigned 2015-12-01 16:28:18 -02:00
Lucas De Marchi
fef364e4e8 AP_TECS: avoid comparison between signed and unsigned 2015-12-01 16:28:18 -02:00
Lucas De Marchi
83ff0476a8 ArduCopter: fix signed/unsigned comparison warning
commands_logic.cpp: In member function 'bool
Copter::verify_within_distance()':
commands_logic.cpp:770:21: warning: comparison between signed and
unsigned integer expressions [-Wsign-compare]
     if (wp_distance < MAX(condition_value,0)) {
	                          ^
2015-12-01 16:28:18 -02:00
Lucas De Marchi
aa9168e0e9 AP_Math: remove unused maxf() 2015-12-01 16:28:18 -02:00
Lucas De Marchi
798b743660 AP_NavEKF: use MAX() instead of maxf() 2015-12-01 16:28:18 -02:00
Lucas De Marchi
6f88fba8e5 AP_Math: remove unused minf() 2015-12-01 16:28:18 -02:00
Lucas De Marchi
e0a0514c79 AP_Math: turn MIN/MAX macros into inline functions
The problem with the current MIN/MAX macros is that they evaluate twice
the arguments. For example, these cases provide unintended results:

	// a is incremented twice
	a = MIN(a++, b);
	// foo() with side-effects
	a = MIN(foo(), b);

The alternative implementation here was provided by Daniel Frenzel using
template function. It doesn't have type safety as std::min and std::max,
but adding type safety would mean to check case by case what would be a
reasonable type and add proper casts. Here the arguments for MIN and MAX
can have different types and the return type is deduced from the
expression in the function.

Inspecting the current callers no place was found with the unintended
results above, but some in which now we don't calculate twice the
parameters will benefit from this new version. Examples:

	float velocity_max = MIN(_pos_control.get_speed_xy(), safe_sqrt(0.5f*_pos_control.get_accel_xy()*_radius));

	float acro_level_mix = constrain_float(1-MAX(MAX(abs(roll_in), abs(pitch_in)), abs(yaw_in))/4500.0, 0, 1)*ahrs.cos_pitch()

	accel_x_cmss = (GRAVITY_MSS * 100) * (-(_ahrs.cos_yaw() * _ahrs.sin_pitch() / MAX(_ahrs.cos_pitch(),0.5f)) - _ahrs.sin_yaw() * _ahrs.sin_roll() / MAX(_ahrs.cos_roll(),0.5f));

	track_leash_slack = MIN(_track_leash_length*(leash_z-track_error_z)/leash_z, _track_leash_length*(leash_xy-track_error_xy)/leash_xy);

	RC_Channel_aux::move_servo(RC_Channel_aux::k_sprayer_pump, MIN(MAX(ground_speed * _pump_pct_1ms, 100 *_pump_min_pct),10000),0,10000);
2015-12-01 16:28:18 -02:00
Lucas De Marchi
2591261af6 Global: rename min and max macros to uppercase
The problem with using min() and max() is that they conflict with some
C++ headers. Name the macros in uppercase instead. We may go case by
case later converting them to be typesafe.

Changes generated with:

	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)max(/\1MAX(/g'
	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)min(/\1MIN(/g'
2015-12-01 16:28:09 -02:00
proficnc
efbe350182 Tools: firmware.diydrones gets reference to companion computers 2015-12-01 20:04:52 +09:00
Randy Mackay
d9a14d05f4 Copter: 3.3.2 release notes 2015-12-01 15:12:29 +09:00
Andrew Tridgell
1e8c391024 AP_AHRS: fixed float exception on start in SITL
zero DCM matrix
2015-12-01 15:19:45 +11:00
Michael du Breuil
f19be28e89 autotest: allow delaying the mavproxy instance in SITL
This useful when using X forwarding, as mavproxy can start to quickly, and then break the sim enviorment. If the argument isn't used there is no change in behaviour
2015-12-01 15:01:24 +11:00
Lucas De Marchi
d19c5035b6 Global: Rename printf format attribute
As commented in 8218140 ("AP_Common: add scanf format macro"), "FORMAT"
was a bad name for this macro since there's also the scanf. Rename to
FMT_PRINTF to follow the scanf name.
2015-12-01 07:22:12 +11:00
Andrew Tridgell
520b9de48a HAL_PX4: expose do_transfer() in API 2015-12-01 07:18:25 +11:00
Andrew Tridgell
44c280e9fb AP_HAL: fixed typo in do_transfer declaration 2015-12-01 07:18:10 +11:00
Julien BERAUD
88236821c0 AP_HAL_Linux: Adapt Heat_Pwm to use PWM_Sysfs
Only compiled on Bebop, the constructor will need to be modified to
pass the pwm chip number and to create a PWM_Sysfs instead of a PWM_Sysfs_Bebop
in case it is used on a mainline linux board
2015-12-01 07:07:26 +11:00
Julien BERAUD
0fa362ff5c AP_Notify: Fix GPIO declaration for Linux boards
Currently, the default behaviour on linux boards tries to
write LED gpios with fixed values among them. There is no way
to declare that there are no LED GPIOs.
This commit moves the declaration of the LED Gpios in AP_HAL_Boards.h
and makes AP_Notify do nothing if no LED gpio was declared
2015-12-01 07:07:26 +11:00
Julien BERAUD
8c4803af10 AP_HAL_Linux: GPIO Sysfs for Bebop
copied from minlure implementation
2015-12-01 07:07:26 +11:00
Julien BERAUD
2136866594 AP_HAL_Linux: fix I2CDriver indentation
Tabs to spaces
2015-12-01 07:07:26 +11:00
Julien BERAUD
af6bbb806e AP_HAL: add do_transfer method to I2CDriver
Needed in linux HAL
2015-12-01 07:07:26 +11:00
Julien BERAUD
26163b6640 AP_HAL_Linux: Add do_transfer method to i2c driver
Method needed for mt9v117 camera sensor
2015-12-01 07:07:26 +11:00
Lucas De Marchi
04f601d42f AP_HAL_Linux: PWM_Sysfs: minor changes to Bebop/mainline integration
- Make error path in constructor shorter and earlier. It's calling
    panic() so there's no reason to do anything else

  - We don't need to check variable for NULL when calling free()

  - Change set/get_polarity to use a virtual function; this allows us
    not to fail silently if _polarity_path is NULL for PWM_Sysfs.
    PWM_Sysfs_Bebop just overrides this method and implement an empty
    version.
2015-12-01 07:07:25 +11:00
Julien BERAUD
8733f34ce1 AP_HAL_Linux: PWM_Sysfs for bebop
Modify existing class to create a PWM_Sysfs_Base class and derive it for
Bebop and Pwm_Sysfs (mainline kernel)

use asprintf for path allocation since it doesn't cost so much and is done
only at startup
Note that the constructor of the 2 classes : PWM_Sysfs and PWM_Sysfs_Bebop
allocate the paths and the constructor and desctuctor of class PWM_Sysfs_Base
frees them.
only keep in memory the paths that are needed later, i.e free _export_path,
_duty_path. The remaining path are freed in the destructor
2015-12-01 07:07:25 +11:00
Tom Pittenger
4c1a70eb66 Plane: print start of land approach 2015-12-01 07:05:07 +11:00
mirkix
ef56d952cd Linux_HAL_Essentials: Add HC-SR04 README.md 2015-12-01 07:04:10 +11:00
mirkix
fe442d35df Linux_HAL_Essentials: Add AioPRU README.md 2015-12-01 07:03:28 +11:00
Andrew Tridgell
52f2fce1d5 RC_Channel: prevent float exception with bad RCn_MIN/MAX/TRIM
thanks to Michael for finding this
2015-11-30 21:53:54 +11:00
Leonard Hall
6eca767db0 Copter: reduce autotune min D param default to 0.001 2015-11-30 11:21:54 +09:00
Hamish Willee
7bbe73b233 Tools: fix up URL in readme to SITL via Vagrant doc 2015-11-30 09:55:07 +09:00
Andrew Tridgell
dfa107c7bb autotest: added Dalby OBC2016 mission and geofence 2015-11-30 07:46:40 +11:00
Andrew Tridgell
a6ed3e5e80 autotest: added Dalby location
location of OBC2016
2015-11-30 07:46:18 +11:00
Andrew Tridgell
6fdc6074d6 autotest: fixed "Reached command" string 2015-11-29 21:46:31 +11:00
Andrew Tridgell
ffa316c1f3 autotest: fixed copter for new strings for arm/disarm 2015-11-29 18:39:32 +11:00
Andrew Tridgell
1768e806bb PX4Firmware: submodule update
SBUS support for FMUv4
2015-11-29 16:56:46 +11:00
Andrew Tridgell
672fc86d44 Travis: added px4-v4 to the travis build 2015-11-27 19:23:29 +11:00
Andrew Tridgell
af82ca3c43 PX4: removed old Images in clean 2015-11-27 18:54:31 +11:00
Andrew Tridgell
412bba0192 PX4: use Makefile.make
preparing for cmake build
2015-11-27 18:54:31 +11:00
Andrew Tridgell
1aa43b23f4 PX4: clean generated uORB topic headers in px4-clean 2015-11-27 18:54:31 +11:00
Andrew Tridgell
00276273cf PX4Firmware: submodule update (major update from upstream) 2015-11-27 18:54:31 +11:00
Andrew Tridgell
335e621932 HAL_PX4: cope with PX4 header changes 2015-11-27 18:54:31 +11:00
Andrew Tridgell
1f9ed423c4 PX4Firmware: submodule update (fix ppmsum) 2015-11-27 18:54:31 +11:00
Andrew Tridgell
9781e46e7f PX4Firmware: submodule update 2015-11-27 18:54:31 +11:00
Andrew Tridgell
ea38448372 AP_Relay: don't default to using two PWMs as relays on FMUv4 2015-11-27 18:54:31 +11:00
Andrew Tridgell
155e82c1b3 HAL_PX4: fixed PWM output for FMUv4 2015-11-27 18:54:31 +11:00
Andrew Tridgell
344cd926a8 PX4Firmware: submodule update 2015-11-27 18:54:30 +11:00
Andrew Tridgell
5105650304 PX4: added FMUv4 support in startup nsh script 2015-11-27 18:54:30 +11:00
Andrew Tridgell
015c110114 PX4: disable px4flow and oreoled on FMUv4
flow is dying on startup (needs fixing)

oreoled is PH2 specific
2015-11-27 18:54:30 +11:00
Andrew Tridgell
c34100f6a2 GCS_MAVLink: support FMUv4 2015-11-27 18:54:30 +11:00
Andrew Tridgell
774e257a88 AP_InertialSensor: support FMUv4 2015-11-27 18:54:30 +11:00
Andrew Tridgell
9835043dd5 HAL_PX4: support FMUv4 2015-11-27 18:54:30 +11:00