1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 01:05:27 +03:00
Commit graph

36 commits

Author SHA1 Message Date
Martin Budden
23f158913e Moved time functions out of system.h into time.h 2017-05-26 14:03:28 +01:00
Martin Budden
50ac13d79b Minor blackbox code tidy 2017-05-02 07:13:55 +01:00
G. Torreilles
398df910f7 Fix #2626
Fix swapped terms in function documentation. #2626
2017-03-11 23:19:52 +01:00
Martin Budden
a94318a75f Added PG config definitions 3 2017-02-25 11:29:55 +00:00
Martin Budden
f6c8319361 Removed a number of static config pointers 2017-02-02 10:41:19 +00:00
Martin Budden
5851b21e4a Removed a number of static config pointers 2017-02-01 12:58:29 +00:00
Martin Budden
79d4b2146d Preparation for conversion to parameter groups 2017-02-01 08:46:19 +00:00
Martin Budden
a771280b50 Moved config.c from config directory to fc directory 2016-10-18 08:57:39 +01:00
Martin Budden
a11d0bdb4d Split escAndServoConfig into motor and servo parts 2016-09-26 19:24:52 +01:00
Martin Budden
541f4d4018 Directory rearrangement to reflect cleanflight changes 2016-08-07 13:44:00 +01:00
Zap Andersson
0fb34a64b5 Fix tabs again 2016-03-20 13:25:40 +01:00
Zap Andersson
c0e01e8d2b Add 'WAS_EVER_ARMED' arming flag 2016-03-19 16:16:49 +01:00
Zap Andersson
ca0fb6c9cf Made the beeper for "RX Lost" shut up if RX was never gained in the 1st place.
Shuts quad up when you just put it down on the ground, or just plug it into USB or whatever.
2016-03-19 13:01:53 +01:00
borisbstyle
99d9d7483f Add failsafe_procedure 2016-02-09 12:06:00 +01:00
Dominic Clifton
4da387e93d More cleanup of MPU driver code. Support MPU INT on CC3D and Naze32
Rev6.

MPU6050 Correction From merge
2015-10-16 10:40:54 +02:00
borisbstyle
4b7fd5a2de Restore Original CF Failsafe 2015-10-12 23:38:52 +02:00
borisbstyle
52172ef50f Betaflight simplified Failsafe // Fixes failsafe issues 2015-10-02 23:32:45 +02:00
ProDrone
5ca5c2d161 Adapted RX suspend & resume on EEPROM read & write
Modified to make mechanism use time instead of counters for call
frequency independency.
Skipping RC samples uses a counter for time independency.

Also LED and beeper patterns were changed by previous implementation.
Corrected with RX supend/resume feedback to failsafe system.
2015-09-07 14:19:12 +02: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
064de090a0 Even more cleanups to the new beeper code. Seperate beeper mode and
priority via simpler static declaration - removes giant switch
statement.  Use a new method when beeping out GPS status.  Lower memory
usage. Smaller code size.  Beeper priority now only handled in a single
place.
2015-04-25 10:39:14 +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
d4eb558254 Ensure failsafe does not repeatedly call disarm when landed. 2015-04-18 19:00:20 +01:00
Dominic Clifton
a34e8f0bdb Update the failsafe so that an extra cycle is not required between some
phase changes.
2015-04-17 00:10:35 +01:00
Dominic Clifton
eb74735ee8 First cut of unit tests for reworked failsafe.
In writing these tests a bug was discovered with RX_SERIAL and RX_MSP
failsafe delay timing - the configured delays are not honoured.
2015-04-16 23:35:56 +01:00
Dominic Clifton
c8c0c85656 First-cut of a refactored failsafe system.
* fixes issue where indicators would flash when SBus RX entered failsafe
mode.
* fixes bug where turning off a TX for an SBus RX would instantly disarm
when using a switch to arm when the channel went outside the arming
range.
* introduces failsafe phases to make the system more understandable.
* allows the system to ask if rxSignalIsBeing received for all RX
systems: PPM/PWM/SerialRX/MSP.  Also works when a serial data signal is
still being received but the data stream indicates a failsafe condition
- e.g.  SBus failsafe flags.
* failsafe settings are no-longer per-profile.

Untested: Sumd/Sumh/XBus/MSP (!)
Tested: SBus X8R, Lemon RX Sat, X8R in PWM, Spektrum PPM.
2015-04-16 01:31:12 +01:00
Dominic Clifton
78a4476506 Fix comment typo in failsafe.c 2015-04-14 13:59:11 +01:00
E Thomas
f02d7403af Port of refactored beeper code 181_1
This the "Port of refactored beeper code #669" modification applied to
version 1.8.1 (4/4/2015) of the code.
2015-04-04 17:54:44 -04:00
Dominic Clifton
e40a3663d2 Remove failsafe vtable usage. 2015-03-09 23:19:21 +01:00
Dominic Clifton
d60183d91d Normalize all the line endings 2014-09-15 23:40:17 +01:00
Dominic Clifton
3f0754d295 Replace global flags with stateFlags, flightModeFlags and armingFlags.
Each flag was previously a whole byte, now all of the flags only take up
4 bytes as they are represented by bit masks.

This is cleaner because the different kind of flags are now separated.

Additionally this changes the behaviour of arming slightly.  When using
a switch to arm the aircraft will not arm unless the switch has been in
the off state once.  This prevents arming if you power the aircraft with
a low throttle and the switch in the on position.
2014-08-24 12:11:30 +01:00
Dominic Clifton
e867af8c4b Correct project name in GPL notices. 2014-06-05 00:47:47 +01:00
Dominic Clifton
0bbcd6570f Updated source files to include the GPL v3 notices. Include a copy of
the GPL v3.
2014-06-04 16:48:23 +01:00
Dominic Clifton
18046013a4 Decouple sticks processing code from main mw loops.
Decouple led ring driver from non-driver code.
2014-06-01 18:36:33 +01:00
Dominic Clifton
d19a5e7046 Cleanup project structure. Update unit test Makefile to place object
files in obj/test
2014-05-31 22:43:06 +01:00
Renamed from src/failsafe.c (Browse further)