update serTcpOpen declaration to fix compile errors (#14113)
[betaflight.git] / src / main / flight / gps_rescue.h
blobc2e60e34b8ba5baf473d48ab301acc165298b7c4
1 /*
2 * This file is part of Betaflight.
4 * Betaflight is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * Betaflight is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with Betaflight. If not, see <http://www.gnu.org/licenses/>.
18 #pragma once
20 #include <stdbool.h>
22 #include "common/axis.h"
24 #include "pg/gps_rescue.h"
26 #define TASK_GPS_RESCUE_RATE_HZ 100 // in sync with altitude task rate
28 #ifdef USE_MAG
29 #define GPS_RESCUE_USE_MAG true
30 #else
31 #define GPS_RESCUE_USE_MAG false
32 #endif
34 typedef enum {
35 RESCUE_SANITY_OFF = 0,
36 RESCUE_SANITY_ON,
37 RESCUE_SANITY_FS_ONLY,
38 RESCUE_SANITY_COUNT
39 } gpsRescueSanity_e;
41 typedef enum {
42 GPS_RESCUE_ALT_MODE_MAX = 0,
43 GPS_RESCUE_ALT_MODE_FIXED,
44 GPS_RESCUE_ALT_MODE_CURRENT,
45 GPS_RESCUE_ALT_MODE_COUNT
46 } gpsRescueAltitudeMode_e;
48 extern float gpsRescueAngle[RP_AXIS_COUNT]; // NOTE: ANGLES ARE IN CENTIDEGREES
50 void gpsRescueInit(void);
51 void gpsRescueUpdate(void);
52 float gpsRescueGetYawRate(void);
53 bool gpsRescueIsConfigured(void);
54 bool gpsRescueIsAvailable(void);
55 bool gpsRescueIsDisabled(void);
56 bool gpsRescueDisableMag(void);
57 float gpsRescueGetImuYawCogGain(void);