Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Ardupilot
GitHub Repository: Ardupilot/ardupilot
Path: blob/master/Tools/AP_Periph/Parameters.h
9559 views
1
#pragma once
2
3
#include <AP_Common/AP_Common.h>
4
#include "GCS_MAVLink.h"
5
6
#define AP_PARAM_VEHICLE_NAME periph
7
8
// Global parameter class.
9
//
10
class Parameters {
11
public:
12
static const uint16_t k_format_version = 2;
13
14
enum {
15
// Layout version number, always key zero.
16
//
17
k_param_format_version = 0,
18
k_param_gps,
19
k_param_compass,
20
k_param_can_node,
21
k_param_can_baudrate0,
22
k_param_baro,
23
k_param_buzz_volume,
24
k_param_led_brightness,
25
k_param_airspeed,
26
k_param_rangefinder,
27
k_param_flash_bootloader,
28
k_param_rangefinder_baud0,
29
k_param_adsb_baudrate,
30
k_param_hardpoint_id,
31
k_param_hardpoint_rate,
32
k_param_baro_enable,
33
k_param_esc_number0,
34
k_param_battery_lib,
35
k_param_debug,
36
k_param_serial_number,
37
k_param_adsb_port,
38
k_param_servo_channels,
39
k_param_rangefinder_port0,
40
k_param_gps_port,
41
k_param_msp_port,
42
k_param_notify,
43
k_param_esc_pwm_type,
44
k_param_logger,
45
k_param_log_bitmask,
46
k_param_can_baudrate1,
47
k_param_can_baudrate2,
48
k_param_can_protocol0,
49
k_param_can_protocol1,
50
k_param_can_protocol2,
51
k_param_sysid_this_mav_old,
52
k_param_serial_manager,
53
k_param_gps_mb_only_can_port,
54
k_param_scripting,
55
k_param_esc_telem_port,
56
k_param_can_fdmode,
57
k_param_can_fdbaudrate0,
58
k_param_can_fdbaudrate1,
59
k_param_node_stats,
60
k_param_rangefinder_max_rate,
61
k_param_efi,
62
k_param_efi_port,
63
k_param_efi_baudrate,
64
k_param_esc_telem_rate,
65
k_param_can_slcan_cport,
66
k_param_temperature_sensor,
67
k_param_esc_command_timeout_ms,
68
k_param_proximity,
69
k_param_proximity_baud,
70
k_param_proximity_port,
71
k_param_proximity_max_rate,
72
k_param_nmea,
73
k_param_kdecan,
74
k_param_pole_count0,
75
k_param_esc_serial_port0,
76
k_param_esc_number1,
77
k_param_pole_count1,
78
k_param_esc_serial_port1,
79
k_param_networking_periph,
80
k_param_rpm_sensor,
81
k_param_g_rcin,
82
k_param_actuator_telem,
83
k_param_sitl,
84
k_param_ahrs,
85
k_param_battery_balance,
86
k_param_battery_hide_mask,
87
k_param_can_mirror_ports,
88
k_param_rtc,
89
k_param_can_terminate0,
90
k_param_can_terminate1,
91
k_param_can_terminate2,
92
k_param_serial_options,
93
k_param_relay,
94
k_param_temperature_msg_rate,
95
k_param_rangefinder_baud1,
96
k_param_rangefinder_port1,
97
k_param_options,
98
k_param_rpm_msg_rate,
99
k_param_esc_rate,
100
k_param_esc_extended_telem_rate,
101
k_param_imu_sample_rate,
102
k_param_imu,
103
k_param_dac,
104
k_param__gcs,
105
k_param_battery_tag,
106
k_param_servo_command_timeout_ms,
107
};
108
109
AP_Int16 format_version;
110
AP_Int16 can_node;
111
112
AP_Int32 can_baudrate[HAL_NUM_CAN_IFACES];
113
#if HAL_NUM_CAN_IFACES >= 2
114
AP_Enum<AP_CAN::Protocol> can_protocol[HAL_NUM_CAN_IFACES];
115
#endif
116
117
#if AP_CAN_SLCAN_ENABLED
118
AP_Int8 can_slcan_cport;
119
#endif
120
121
#if AP_PERIPH_BUZZER_WITHOUT_NOTIFY_ENABLED
122
AP_Int8 buzz_volume;
123
#endif
124
#if AP_PERIPH_HAVE_LED_WITHOUT_NOTIFY
125
AP_Int8 led_brightness;
126
#endif
127
#if AP_PERIPH_BARO_ENABLED
128
AP_Int8 baro_enable;
129
#endif
130
#if !defined(HAL_NO_FLASH_SUPPORT) && !defined(HAL_NO_ROMFS_SUPPORT)
131
AP_Int8 flash_bootloader;
132
#endif
133
134
#if AP_PERIPH_RANGEFINDER_ENABLED
135
AP_Int32 rangefinder_baud[RANGEFINDER_MAX_INSTANCES];
136
AP_Int8 rangefinder_port[RANGEFINDER_MAX_INSTANCES];
137
AP_Int16 rangefinder_max_rate;
138
#endif
139
140
#if AP_PERIPH_PROXIMITY_ENABLED
141
AP_Int32 proximity_baud;
142
AP_Int8 proximity_port;
143
AP_Int16 proximity_max_rate;
144
#endif
145
146
147
#if AP_PERIPH_ADSB_ENABLED
148
AP_Int32 adsb_baudrate;
149
AP_Int8 adsb_port;
150
#endif
151
152
#if AP_PERIPH_PWM_HARDPOINT_ENABLED
153
AP_Int16 hardpoint_id;
154
AP_Int8 hardpoint_rate;
155
#endif
156
157
#if AP_PERIPH_HOBBYWING_ESC_ENABLED || AP_PERIPH_ESC_APD_ENABLED
158
#if defined ESC_NUMBERS
159
#error "ESC_NUMBERS should not have been previously defined"
160
#endif
161
#if defined(APD_ESC_INSTANCES)
162
#define ESC_NUMBERS APD_ESC_INSTANCES
163
#else
164
#define ESC_NUMBERS 2
165
#endif // defined(APD_ESC_INSTANCES)
166
AP_Int8 esc_number[ESC_NUMBERS];
167
AP_Int8 esc_serial_port[ESC_NUMBERS];
168
#endif
169
170
#if defined(ESC_NUMBERS)
171
AP_Int8 pole_count[ESC_NUMBERS];
172
#endif
173
174
#if AP_PERIPH_GPS_ENABLED
175
AP_Int8 gps_port;
176
#if GPS_MOVING_BASELINE
177
AP_Int8 gps_mb_only_can_port;
178
#endif
179
#endif
180
181
#if AP_PERIPH_MSP_ENABLED
182
AP_Int8 msp_port;
183
#endif
184
185
#if AP_PERIPH_RC_OUT_ENABLED
186
AP_Int16 esc_rate;
187
AP_Int8 esc_pwm_type;
188
AP_Int16 esc_command_timeout_ms;
189
#if HAL_WITH_ESC_TELEM && !HAL_GCS_ENABLED
190
AP_Int8 esc_telem_port;
191
#endif
192
#if HAL_WITH_ESC_TELEM
193
AP_Int32 esc_telem_rate;
194
#if AP_EXTENDED_ESC_TELEM_ENABLED
195
AP_Int16 esc_extended_telem_rate;
196
#endif
197
#endif
198
AP_Int16 servo_command_timeout_ms;
199
#endif
200
201
AP_Int8 debug;
202
203
AP_Int32 serial_number;
204
205
#if HAL_LOGGING_ENABLED
206
AP_Int32 log_bitmask;
207
#endif
208
209
#if AP_PERIPH_BATTERY_ENABLED
210
AP_Int32 battery_hide_mask;
211
#endif
212
213
#if AP_PERIPH_EFI_ENABLED
214
AP_Int32 efi_baudrate;
215
AP_Int8 efi_port;
216
#endif
217
218
#if AP_PERIPH_IMU_ENABLED
219
AP_Int16 imu_sample_rate;
220
#endif
221
222
#if HAL_PERIPH_CAN_MIRROR
223
AP_Int8 can_mirror_ports;
224
#endif // HAL_PERIPH_CAN_MIRROR
225
226
#if AP_PERIPH_DEVICE_TEMPERATURE_ENABLED
227
AP_Int8 temperature_msg_rate;
228
#endif
229
230
#if AP_PERIPH_RPM_STREAM_ENABLED
231
AP_Int16 rpm_msg_rate;
232
#endif
233
234
#if HAL_CANFD_SUPPORTED
235
AP_Int8 can_fdmode;
236
AP_Int8 can_fdbaudrate[HAL_NUM_CAN_IFACES];
237
#else
238
static constexpr uint8_t can_fdmode = 0;
239
#endif
240
241
AP_Int32 options;
242
243
AP_Int8 can_terminate[HAL_NUM_CAN_IFACES];
244
245
AP_Int8 node_stats;
246
Parameters() {}
247
};
248
249
extern const AP_Param::Info var_info[];
250
251