1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 16:25:31 +03:00
Commit graph

202 commits

Author SHA1 Message Date
Sean Vig
456396b25a Use fixed point calculation for BMP280 barometer
Substitute the floating point calculation for the comparably much faster
64-bit calculation recommended for a Cortex-M3 (floating point is
recommended only in PC applications with FPU) [1]. Even if we have an
FPU, we round the temperature to the nearest 1/100th of a degree and the
pressure to the nearest 1 Pa, both of which are within the limits of the
fixed-point algorithm's accuracy.

Conflicts:
	src/main/drivers/barometer_bmp280.c
2015-10-06 18:33:23 +01:00
Sean Vig
e5f3f1794f Add tests for BMP280 barometer
Also get rid of the curved quotes for normal quotes (") and make
compensation computations static.
2015-10-06 18:25:59 +01:00
Nicholas Sherlock
6e504ca52a Ability to see how many Tx bytes are free in serial port buffer 2015-10-01 16:48:56 +13:00
borisbstyle
0ea5a99e2b Merge remote-tracking branch 'prodrone/betaflight' into alphaflight 2015-09-19 16:44:11 +02:00
Konstantin Sharlaimov (DigitalEntity)
45a4f11f92 Added #define for imu debug output (+16 squashed commit)
Squashed local commits:

from       : e4265d4a13f63f82d5cf55eea2c091622f96660b
up to (inc): 72416dc74745fa8bae1aded79aa4b9ed0e389076
2015-09-19 14:50:53 +02:00
Stephen Willey
38dd09f9b5 Floating point inflight adjustments adjust by 0.01 instead of 0.1 2015-09-18 13:13:31 -07:00
Dominic Clifton
6706abdb2e Merge branch 'issue_8_sensors_align' of
https://github.com/drtunes/cleanflight into
drtunes-issue_8_sensors_align

Conflicts:
	src/test/Makefile
2015-09-10 02:38:58 +01:00
Dominic Clifton
c4680b3b3d More test code cleanup. 2015-09-10 02:06:15 +01:00
Dominic Clifton
0070573420 Fix unit tests - the tests cannot use a common library of production
since when compiling some test code the idea is to stub out production
functionality rather than call production code.
2015-09-10 02:06:14 +01:00
ProDrone
f0681de53d Updates and feature additions to failsafe system.
- Added failsafe flightmode and rc control box.

To make failsafe procedure a separate flight mode and make it possible
to trigger failsafe with an AUX switch.

- Failsafe mode is activated when failsafe is active.

RC link lost is simulated with the failsafe AUX switch.
When NOT armed: failsafe switch to failsafe mode is shown in GUI (mode
tab).

- Activate failsafe mode with AUX switch.

- Prevent arming when failsafe via AUX switch is active (safety issue).

- Make failsafe disarm if motors armed and throttle was LOW (2D & 3D)
for `failsafe_throttle_low_delay` time (__JustDisarmEvent__).

Applied code changes to effectively add pull request: Make failsafe
disarm if motors armed and throttle low #717.

- Use failsafeIsMonitoring() to actually start monitoring.

- Added `failsafe_kill_switch` to code.

When set to 1 (0 is default), the failsafe switch will instantly disarm
(__KillswitchEvent__) instead of executing the landings procedure.
Arming is NOT locked after
this, so the craft could be re-armed if needed.
This is intended for racing quads where damage and danger must be
minimized in case of a pilot error.

- Added `failsafe_throttle_low_delay`, adapted documentation.

Used to adjust the time throttle level must have been LOW
to _only disarm_ instead of _full failsafe procedure_
(__JustDisarmEvent__).

- Updated the failsafe documentation.

- Re-enable arming at end of failsafe procedure.

At the end of a handled failsafe event, that means: auto-landing,
__JustDisarmEvent__ or __KillswitchEvent__, the RX link is monitored for
valid data.
Monitoring is a part of the failsafe handling, which means the craft is
still in failsafe mode while this is done.
Arming is re-enabled (allowed) when there is a valid RX link for more
then XX seconds, where XX depends on the handled event like this:
1. XX = 30 seconds after auto landing.
2. XX = 3 seconds after __JustDisarmEvent__.
3. XX = 0 seconds after __KillswitchEvent__.

NOTE: When armed via an AUX switch, you will have to switch to the
disarmed position at the very end to be able to re-arm.
The failsafe mode will not end until you do.

- __KillswitchEvent__ has now priority over __JustDisarmEvent__

- Apply rxfail values instantly when failsafe switch is ON

- Added missing cases to display.c

Show M when failsafe is monitoring for RX recovery (AND disarming when
armed with a switch).

===

Reworked the code from counter-based to time-based.

- AUX failsafe switch now has identical behavior to RX loss.

- Added RX failure and RX recovery timing.

- __KillswitchEvent__ skips RX failure detection delay (direct disarm).

===

[UNIT TESTS]

Adapted failsafe related unittests from counter-based to time-based

- Added failsafeOnValidDataFailed() to some tests

- Removed duplicate test setup from rc_controls_unittest.cc

- Removed magic numbers from rx_ranges_unittest.cc and rx_rx_unittest.cc

- Reworked all test-cases for flight_failsafe_unittest.cc
2015-09-04 16:55:40 +02:00
Dominic Clifton
718729504e Allow FC to reverse input channels by using rxrange.
Just reverse the min/max arguments.

Unit tested.

Fixes #1132.
2015-08-20 02:46:03 +01:00
Dominic Clifton
2c79b9777e Large code re-organization which separates some key tasks in the rx
code.

Tested with X8R in SBus and PWM, and Spek Sat, GR-24 PPM, PWM and SUMD,
Spek PPM
2015-08-20 01:46:29 +01:00
Phillip Jones
f239eb3f35 This addresses issue #8 by adding unit tests for sensorsAlign().
The test file includes a simple independent implementation of
vector rotation. Each of the following sensor_align_e types are
tested:
 * CW0_DEG
 * CW90_DEG
 * CW180_DEG
 * CW270_DEG
 * CW0_DEG_FLIP
 * CW90_DEG_FLIP
 * CW180_DEG_FLIP
 * CW270_DEG_FLIP

For each test, three unit vectors and a random vector are tested.
 * {1, 0, 0}
 * {0, 1, 0}
 * {0, 0, 1}
 * {R, R, R} (where R is a random number)

The vector under test is rotated using the functions defined in the
test file. The output of the test function is compared to the
output of the sensorsAlign() function. The outputs match for all
test conditions.
2015-08-18 14:00:37 -06:00
Dominic Clifton
3878a7ea2c make the rollover pattern tests less verbose 2015-08-18 19:08:37 +01:00
EvilBadger
3879b6c566 Modified VBatt functionality to enable better precision. 2015-08-05 21:34:44 +01:00
Dominic Clifton
7202ad7524 Cleanup vbat time rollover. Cleanup whitespace. Code formatting.
Rename VBAT_DETECT to VBATT_PRESENT_THRESHOLD_MV.

Add two tests that show the two timing patterns that are in use in the
codebase.
2015-08-04 03:04:54 +01:00
DarkVegetableMatter
942c89237e Battery auto-detect and LPF for battery monitoring 2015-08-04 03:04:12 +01:00
Dominic Clifton
9d3276b222 Code and documentation cleanup of rc calibration.
Note: since it didn't actually calibrate anything it has been renamed to
rxrange.

Added ability to reset rxranges using `rxrange reset` - this follows the
same pattern as other cli commands.
2015-08-04 01:13:28 +01:00
Dominic Clifton
27f8223de7 Merge branch 'rc-calibration' of
https://github.com/digitalentity/cleanflight into
digitalentity-rc-calibration

Conflicts:
	docs/Rx.md
	src/main/io/serial_cli.c
	src/main/rx/rx.c
	src/main/rx/rx.h
2015-08-04 00:06:12 +01:00
Dominic Clifton
1ef2d8ea4d Cleanup PWM rx loss detection. 2015-08-03 20:17:47 +01:00
Dominic Clifton
c5dbf16060 De-duplicate mixer integration test code. 2015-07-17 01:05:14 -07:00
Dominic Clifton
cfe0d770ac De-duplicate mixer tri and quad integration test setup code. 2015-07-17 01:05:14 -07:00
Dominic Clifton
9f62349191 De-duplicte some Channel forwarding test-setup code 2015-07-17 01:05:14 -07:00
Dominic Clifton
5be2276b6b First cut of custom motor and servo mixer test.
Note: The test is rather heavyweight, more like an integration test than
a unit test, but will allow for the underlying code to be refactored.
2015-07-17 01:05:14 -07:00
digitalentity
2614111c39 Implemented RC calibration and unit-tests
Added rc calibration docs to Rx.md
2015-07-16 08:49:18 +10:00
Dominic Clifton
4c8f7db2c9 Updating the test suite names for some new MS5611 barometer tests. 2015-07-10 01:35:11 +01:00
Dominic Clifton
18699a1ba2 Merge branch 'baro_pressure_unit_test' of https://github.com/SteveAmor/cleanflight into SteveAmor-baro_pressure_unit_test 2015-07-10 01:32:40 +01:00
Dominic Clifton
d3e359b9e0 Merge branch 'bmp085_unit_test' of
https://github.com/SteveAmor/cleanflight into SteveAmor-bmp085_unit_test

Conflicts:
	src/test/Makefile
2015-07-10 01:29:42 +01:00
Dominic Clifton
783a4c4bfa Merge pull request #1066 from cleanflight/custom-servo-mixers
Custom servo mixers
2015-07-09 23:48:53 +01:00
Dominic Clifton
57eb44928e Update mixer unit test for 7b91524ba2 2015-07-09 21:11:46 +01:00
digitalentity
a3b57386c2 Ported fast trigonometry functions over from @Crashpilot1000 Harakiri code
Fixed maths_unittest.cc to correctly handle float-point numbers
2015-07-09 22:38:17 +10:00
Steveis
f0aec2e31d Unit tests for BMP085 2015-06-30 17:33:44 +01:00
Dominic Clifton
ea6a6ccb3d First cut of custom servo mixers.
Main rule logic and MSP commands ported from baseflight.

Gimbal mixer updated to use rules.  This allows us to remove more
conditional logic.  Operation of gimbal servos is now different.
2015-06-28 23:06:56 +01:00
Steveis
f2833f9dac MS5611 unit test for pressure calculations 2015-06-26 22:19:31 +01:00
Dominic Clifton
e5a50654e3 Improve code consistency by using function prefixes for telemetry
functions.

PR's to make similar changes to other non-static functions are welcomed.
2015-06-24 20:26:41 +01:00
Steveis
51ec2d6773 MS5611 CRC Unit test 2015-06-23 17:56:26 +01:00
Dominic Clifton
889b14df5f Support pan and tilt on fixed wing. Fixes #1006
The general idea is that nothing calls pwmWriteServo except for
writeServos() and that writeServos() knows which servos it has used.
2015-06-10 14:30:45 +01:00
Dominic Clifton
27db9ad0fe Merge pull request #945 from inkonova/v1.8.1-mixerFix
removed multiple declaration of function mixerUseConfigs
2015-05-30 07:27:33 +01:00
Dominic Clifton
0c1a6c5c2f Merge branch 'lock_active_features' of https://github.com/ProDrone/cleanflight into ProDrone-lock_active_features
Conflicts:
	src/test/unit/rc_controls_unittest.cc
2015-05-29 20:05:25 +01:00
Dominic Clifton
36c8b482d1 Re-order initialisers to be the same as the structure declation to avoid
GCC compilation error.

Error message is: "sorry, unimplemented: non-trivial designated
initializers not supported"
2015-05-29 19:49:01 +01:00
Dominic Clifton
704dcf46ba Fix all warnings when compiling unit tests.
Use C++11 for the C++ unit test code to make the tests easier to read.
Previously we were using a 17 year old standard (!) (g++98)

GoogleTest is compiled with some additional flags to avoid some specific
warnings.  Consider enabling the warnings when upgrading GoogleTest.

See https://code.google.com/p/googletest/issues/detail?id=433

Closes #941
2015-05-29 15:26:10 +01:00
Dominic Clifton
0df22f8049 Remove some test duplication in RcControls unit rest by using test
fixture classes.
2015-05-29 14:41:27 +01:00
Mauro Mombelli
51a067db6d removed mixerUseConfigs multile declaration 2015-05-23 20:24:07 +02:00
ProDrone
655bd574c2 Added missing stuff to unittests 2015-05-21 14:16:22 +02:00
Dominic Clifton
23303198bb Update unit test for mixer behavior changed in
cc5c736362
2015-05-19 21:42:48 +01:00
Dominic Clifton
b63e074d0c Fix unit test compilation failure. 2015-04-25 11:00:32 +02:00
Dominic Clifton
bad0b1b04d Fix random RX loss beep when using Serial RX receivers. 2015-04-23 16:36:56 +02:00
Dominic Clifton
7266d42466 Cleanup failsafe beeper code and update failsafe unit tests. 2015-04-23 15:55:04 +02:00
Dominic Clifton
519586a5ce Merge branch 'refactoredBeeperCode_181_1' of
git://github.com/ethomas997/cleanflight into
ethomas997-refactoredBeeperCode_181_1

Conflicts:
	src/main/flight/failsafe.c
	src/main/io/beeper.c
	src/main/mw.c
2015-04-23 01:21:27 +02:00
Dominic Clifton
fbc3a8e1eb Correct rx channel min/max pulse checking so that it is inclusive to
match the documentation.  Add first unit tests for code in rx.c.
2015-04-19 13:22:32 +01:00