forked from ArduPilot/ardupilot
-
Notifications
You must be signed in to change notification settings - Fork 6
/
defines.h
197 lines (171 loc) · 5.94 KB
/
defines.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#pragma once
// Internal defines, don't edit and expect things to work
// -------------------------------------------------------
#define SERVO_MAX 4500.0 // This value represents 45 degrees and is just an
// arbitrary representation of servo max travel.
#define MIN_AIRSPEED_MIN 5 // m/s, used for arming check and speed scaling
#define TAKEOFF_RUDDER_WARNING_TIMEOUT 3000 //ms that GCS warning about not returning arming rudder to neutral repeats
// failsafe
// ----------------------
enum failsafe_state {
FAILSAFE_NONE=0,
FAILSAFE_SHORT=1,
FAILSAFE_LONG=2,
FAILSAFE_GCS=3
};
// GCS failsafe types for FS_GCS_ENABL parameter
enum gcs_failsafe {
GCS_FAILSAFE_OFF = 0, // no GCS failsafe
GCS_FAILSAFE_HEARTBEAT = 1, // failsafe if we stop receiving heartbeat
GCS_FAILSAFE_HB_RSSI = 2, // failsafe if we stop receiving
// heartbeat or if RADIO.remrssi
// drops to 0
GCS_FAILSAFE_HB_AUTO = 3 // failsafe if we stop receiving heartbeat
// while in AUTO mode
};
enum failsafe_action_short {
FS_ACTION_SHORT_BESTGUESS = 0, // CIRCLE/no change(if already in AUTO|GUIDED|LOITER)
FS_ACTION_SHORT_CIRCLE = 1,
FS_ACTION_SHORT_FBWA = 2,
FS_ACTION_SHORT_DISABLED = 3,
FS_ACTION_SHORT_FBWB = 4,
};
enum failsafe_action_long {
FS_ACTION_LONG_CONTINUE = 0,
FS_ACTION_LONG_RTL = 1,
FS_ACTION_LONG_GLIDE = 2,
FS_ACTION_LONG_PARACHUTE = 3,
FS_ACTION_LONG_AUTO = 4,
};
// type of stick mixing enabled
enum class StickMixing {
NONE = 0,
FBW = 1,
DIRECT_REMOVED = 2,
VTOL_YAW = 3,
};
// values for RTL_AUTOLAND
enum class RtlAutoland {
RTL_DISABLE = 0,
RTL_THEN_DO_LAND_START = 1,
RTL_IMMEDIATE_DO_LAND_START = 2,
NO_RTL_GO_AROUND = 3,
};
enum ChannelMixing {
MIXING_DISABLED = 0,
MIXING_UPUP = 1,
MIXING_UPDN = 2,
MIXING_DNUP = 3,
MIXING_DNDN = 4,
MIXING_UPUP_SWP = 5,
MIXING_UPDN_SWP = 6,
MIXING_DNUP_SWP = 7,
MIXING_DNDN_SWP = 8,
};
// PID broadcast bitmask
enum tuning_pid_bits {
TUNING_BITS_ROLL = (1 << 0),
TUNING_BITS_PITCH = (1 << 1),
TUNING_BITS_YAW = (1 << 2),
TUNING_BITS_STEER = (1 << 3),
TUNING_BITS_LAND = (1 << 4),
TUNING_BITS_ACCZ = (1 << 5),
TUNING_BITS_END // dummy just used for static checking
};
static_assert(TUNING_BITS_END <= (1 << 24) + 1, "Tuning bit mask is too large to be set by MAVLink");
// Logging message types - only 32 messages are available to the vehicle here.
enum log_messages {
LOG_CTUN_MSG,
LOG_NTUN_MSG,
LOG_STATUS_MSG,
LOG_QTUN_MSG,
LOG_PIQR_MSG,
LOG_PIQP_MSG,
LOG_PIQY_MSG,
LOG_PIQA_MSG,
LOG_PIDG_MSG,
LOG_AETR_MSG,
LOG_OFG_MSG,
LOG_TSIT_MSG,
};
#define MASK_LOG_ATTITUDE_FAST (1<<0)
#define MASK_LOG_ATTITUDE_MED (1<<1)
#define MASK_LOG_GPS (1<<2)
#define MASK_LOG_PM (1<<3)
#define MASK_LOG_CTUN (1<<4)
#define MASK_LOG_NTUN (1<<5)
//#define MASK_LOG_MODE (1<<6) // no longer used
#define MASK_LOG_IMU (1<<7)
#define MASK_LOG_CMD (1<<8)
#define MASK_LOG_CURRENT (1<<9)
#define MASK_LOG_COMPASS (1<<10)
#define MASK_LOG_TECS (1<<11)
#define MASK_LOG_CAMERA (1<<12)
#define MASK_LOG_RC (1<<13)
#define MASK_LOG_SONAR (1<<14)
// #define MASK_LOG_ARM_DISARM (1<<15)
#define MASK_LOG_IMU_RAW (1UL<<19)
#define MASK_LOG_ATTITUDE_FULLRATE (1U<<20)
#define MASK_LOG_VIDEO_STABILISATION (1UL<<21)
#define MASK_LOG_NOTCH_FULLRATE (1UL<<22)
enum {
CRASH_DETECT_ACTION_BITMASK_DISABLED = 0,
CRASH_DETECT_ACTION_BITMASK_DISARM = (1<<0),
// note: next enum will be (1<<1), then (1<<2), then (1<<3)
};
enum {
USE_REVERSE_THRUST_NEVER = 0,
USE_REVERSE_THRUST_AUTO_ALWAYS = (1<<0),
USE_REVERSE_THRUST_AUTO_LAND_APPROACH = (1<<1),
USE_REVERSE_THRUST_AUTO_LOITER_TO_ALT = (1<<2),
USE_REVERSE_THRUST_AUTO_LOITER_ALL = (1<<3),
USE_REVERSE_THRUST_AUTO_WAYPOINT = (1<<4),
USE_REVERSE_THRUST_LOITER = (1<<5),
USE_REVERSE_THRUST_RTL = (1<<6),
USE_REVERSE_THRUST_CIRCLE = (1<<7),
USE_REVERSE_THRUST_CRUISE = (1<<8),
USE_REVERSE_THRUST_FBWB = (1<<9),
USE_REVERSE_THRUST_GUIDED = (1<<10),
USE_REVERSE_THRUST_AUTO_LANDING_PATTERN = (1<<11),
USE_REVERSE_THRUST_FBWA = (1<<12),
USE_REVERSE_THRUST_ACRO = (1<<13),
USE_REVERSE_THRUST_STABILIZE = (1<<14),
USE_REVERSE_THRUST_THERMAL = (1<<15),
};
enum FlightOptions {
DIRECT_RUDDER_ONLY = (1 << 0),
CRUISE_TRIM_THROTTLE = (1 << 1),
DISABLE_TOFF_ATTITUDE_CHK = (1 << 2),
CRUISE_TRIM_AIRSPEED = (1 << 3),
CLIMB_BEFORE_TURN = (1 << 4),
ACRO_YAW_DAMPER = (1 << 5),
SURPRESS_TKOFF_SCALING = (1<<6),
ENABLE_DEFAULT_AIRSPEED = (1<<7),
GCS_REMOVE_TRIM_PITCH = (1 << 8),
OSD_REMOVE_TRIM_PITCH = (1 << 9),
CENTER_THROTTLE_TRIM = (1<<10),
DISABLE_GROUND_PID_SUPPRESSION = (1<<11),
ENABLE_LOITER_ALT_CONTROL = (1<<12),
INDICATE_WAITING_FOR_RUDDER_NEUTRAL = (1<<13),
};
enum CrowFlapOptions {
FLYINGWING = (1 << 0),
FULLSPAN = (1 << 1),
PROGRESSIVE_CROW = (1 << 2),
};
enum guided_heading_type_t {
GUIDED_HEADING_NONE = 0, // no heading track
GUIDED_HEADING_COG, // maintain ground track
GUIDED_HEADING_HEADING, // maintain a heading
};
enum class AirMode {
OFF,
ON,
ASSISTED_FLIGHT_ONLY,
};
enum class FenceAutoEnable : uint8_t {
OFF=0,
Auto=1,
AutoDisableFloorOnly=2,
WhenArmed=3
};