123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- #pragma once
- #include <AP_Common/AP_Common.h>
- #include <AP_Gripper/AP_Gripper.h>
- #ifdef ENABLE_SCRIPTING
- #include <AP_Scripting/AP_Scripting.h>
- #endif
- // Global parameter class.
- //
- class Parameters {
- public:
- // The version of the layout as described by the parameter enum.
- //
- // When changing the parameter enum in an incompatible fashion, this
- // value should be incremented by one.
- //
- // The increment will prevent old parameters from being used incorrectly
- // by newer code.
- //
- static const uint16_t k_format_version = 1;
- // Parameter identities.
- //
- // The enumeration defined here is used to ensure that every parameter
- // or parameter group has a unique ID number. This number is used by
- // AP_Param to store and locate parameters in EEPROM.
- //
- // Note that entries without a number are assigned the next number after
- // the entry preceding them. When adding new entries, ensure that they
- // don't overlap.
- //
- // Try to group related variables together, and assign them a set
- // range in the enumeration. Place these groups in numerical order
- // at the end of the enumeration.
- //
- // WARNING: Care should be taken when editing this enumeration as the
- // AP_Param load/save code depends on the values here to identify
- // variables saved in EEPROM.
- //
- //
- enum {
- // Layout version number, always key zero.
- //
- k_param_format_version = 0,
- k_param_software_type, // unusued
- k_param_g2, // 2nd block of parameters
- k_param_sitl, // Simulation
- // Telemetry
- k_param_gcs0 = 10,
- k_param_gcs1,
- k_param_gcs2,
- k_param_gcs3,
- k_param_sysid_this_mav,
- k_param_sysid_my_gcs,
- // Hardware/Software configuration
- k_param_BoardConfig = 20, // Board configuration (PX4/Linux/etc)
- k_param_scheduler, // Scheduler (for debugging/perf_info)
- k_param_logger, // AP_Logger Logging
- k_param_serial_manager, // Serial ports, AP_SerialManager
- k_param_notify, // Notify Library, AP_Notify
- k_param_arming = 26, // Arming checks
- k_param_BoardConfig_CAN,
- // Sensor objects
- k_param_ins = 30, // AP_InertialSensor
- k_param_compass, // Compass
- k_param_barometer, // Barometer/Depth Sensor
- k_param_battery, // AP_BattMonitor
- k_param_leak_detector, // Leak Detector
- k_param_rangefinder, // Rangefinder
- k_param_gps, // GPS
- k_param_optflow, // Optical Flow
- // Navigation libraries
- k_param_ahrs = 50, // AHRS
- k_param_NavEKF, // Extended Kalman Filter Inertial Navigation // remove
- k_param_NavEKF2, // EKF2
- k_param_attitude_control, // Attitude Control
- k_param_pos_control, // Position Control
- k_param_wp_nav, // Waypoint navigation
- k_param_mission, // Mission library
- k_param_fence, // Fence Library
- k_param_terrain, // Terrain database
- k_param_rally, // Disabled
- k_param_circle_nav, // Disabled
- k_param_avoid, // Relies on proximity and fence
- k_param_NavEKF3,
- k_param_loiter_nav,
- // Other external hardware interfaces
- k_param_motors = 65, // Motors
- k_param_relay, // Relay
- k_param_camera, // Camera
- k_param_camera_mount, // Camera gimbal
- // RC_Channel settings (deprecated)
- k_param_rc_1_old = 75,
- k_param_rc_2_old,
- k_param_rc_3_old,
- k_param_rc_4_old,
- k_param_rc_5_old,
- k_param_rc_6_old,
- k_param_rc_7_old,
- k_param_rc_8_old,
- k_param_rc_9_old,
- k_param_rc_10_old,
- k_param_rc_11_old,
- k_param_rc_12_old,
- k_param_rc_13_old,
- k_param_rc_14_old,
- // Joystick gain parameters
- k_param_gain_default,
- k_param_maxGain,
- k_param_minGain,
- k_param_numGainSettings,
- k_param_cam_tilt_step, // deprecated
- k_param_lights_step, // deprecated
- // Joystick button mapping parameters
- k_param_jbtn_0 = 95,
- k_param_jbtn_1,
- k_param_jbtn_2,
- k_param_jbtn_3,
- k_param_jbtn_4,
- k_param_jbtn_5,
- k_param_jbtn_6,
- k_param_jbtn_7,
- k_param_jbtn_8,
- k_param_jbtn_9,
- k_param_jbtn_10,
- k_param_jbtn_11,
- k_param_jbtn_12,
- k_param_jbtn_13,
- k_param_jbtn_14,
- k_param_jbtn_15,
- // PID Controllers
- k_param_p_pos_xy = 126, // deprecated
- k_param_p_alt_hold, // deprecated
- k_param_pi_vel_xy, // deprecated
- k_param_p_vel_z, // deprecated
- k_param_pid_accel_z, // deprecated
- // Failsafes
- k_param_failsafe_gcs = 140,
- k_param_failsafe_leak, // leak failsafe behavior
- k_param_failsafe_pressure, // internal pressure failsafe behavior
- k_param_failsafe_pressure_max, // maximum internal pressure in pascal before failsafe is triggered
- k_param_failsafe_temperature, // internal temperature failsafe behavior
- k_param_failsafe_temperature_max, // maximum internal temperature in degrees C before failsafe is triggered
- k_param_failsafe_terrain, // terrain failsafe behavior
- k_param_fs_ekf_thresh,
- k_param_fs_ekf_action,
- k_param_fs_crash_check,
- k_param_failsafe_battery_enabled, // unused - moved to AP_BattMonitor
- k_param_fs_batt_mah, // unused - moved to AP_BattMonitor
- k_param_fs_batt_voltage, // unused - moved to AP_BattMonitor
- k_param_failsafe_pilot_input,
- k_param_failsafe_pilot_input_timeout,
- // Misc Sub settings
- k_param_log_bitmask = 165,
- k_param_angle_max = 167,
- k_param_rangefinder_gain,
- k_param_wp_yaw_behavior = 170,
- k_param_xtrack_angle_limit, // Angle limit for crosstrack correction in Auto modes (degrees)
- k_param_pilot_speed_up, // renamed from k_param_pilot_velocity_z_max
- k_param_pilot_accel_z,
- k_param_compass_enabled_deprecated,
- k_param_surface_depth,
- k_param_rc_speed, // Main output pwm frequency
- k_param_gcs_pid_mask = 178,
- k_param_throttle_filt,
- k_param_throttle_deadzone, // Used in auto-throttle modes
- k_param_terrain_follow = 182,
- k_param_rc_feel_rp,
- k_param_throttle_gain,
- k_param_cam_tilt_center, // deprecated
- k_param_frame_configuration,
- // Acro Mode parameters
- k_param_acro_yaw_p = 220, // Used in all modes for get_pilot_desired_yaw_rate
- k_param_acro_trainer,
- k_param_acro_expo,
- k_param_acro_rp_p,
- k_param_acro_balance_roll,
- k_param_acro_balance_pitch,
- // RPM Sensor
- k_param_rpm_sensor = 232, // Disabled
- // RC_Mapper Library
- k_param_rcmap, // Disabled
- k_param_cam_slew_limit = 237, // deprecated
- k_param_lights_steps,
- k_param_pilot_speed_dn,
- };
- AP_Int16 format_version;
- // Telemetry control
- //
- AP_Int16 sysid_this_mav;
- AP_Int16 sysid_my_gcs;
- AP_Float throttle_filt;
- #if RANGEFINDER_ENABLED == ENABLED
- AP_Float rangefinder_gain;
- #endif
- AP_Int8 failsafe_leak; // leak detection failsafe behavior
- AP_Int8 failsafe_gcs; // ground station failsafe behavior
- AP_Int8 failsafe_pressure;
- AP_Int8 failsafe_temperature;
- AP_Int32 failsafe_pressure_max;
- AP_Int8 failsafe_temperature_max;
- AP_Int8 failsafe_terrain;
- AP_Int8 failsafe_pilot_input; // pilot input failsafe behavior
- AP_Float failsafe_pilot_input_timeout;
- AP_Int8 xtrack_angle_limit;
- AP_Int8 wp_yaw_behavior; // controls how the autopilot controls yaw during missions
- AP_Int8 rc_feel_rp; // controls vehicle response to user input with 0 being extremely soft and 100 begin extremely crisp
- // Waypoints
- //
- AP_Int16 pilot_speed_up; // maximum vertical ascending velocity the pilot may request
- AP_Int16 pilot_speed_dn; // maximum vertical descending velocity the pilot may request
- AP_Int16 pilot_accel_z; // vertical acceleration the pilot may request
- // Throttle
- //
- AP_Int16 throttle_deadzone;
- // Misc
- //
- AP_Int32 log_bitmask;
- AP_Int8 fs_ekf_action;
- AP_Int8 fs_crash_check;
- AP_Float fs_ekf_thresh;
- AP_Int16 gcs_pid_mask;
- #if AP_TERRAIN_AVAILABLE && AC_TERRAIN
- AP_Int8 terrain_follow;
- #endif
- AP_Int16 rc_speed; // speed of fast RC Channels in Hz
- AP_Float gain_default;
- AP_Float maxGain;
- AP_Float minGain;
- AP_Int8 numGainSettings;
- AP_Float throttle_gain;
- AP_Int16 lights_steps;
- // Joystick button parameters
- JSButton jbtn_0;
- JSButton jbtn_1;
- JSButton jbtn_2;
- JSButton jbtn_3;
- JSButton jbtn_4;
- JSButton jbtn_5;
- JSButton jbtn_6;
- JSButton jbtn_7;
- JSButton jbtn_8;
- JSButton jbtn_9;
- JSButton jbtn_10;
- JSButton jbtn_11;
- JSButton jbtn_12;
- JSButton jbtn_13;
- JSButton jbtn_14;
- JSButton jbtn_15;
- // Acro parameters
- AP_Float acro_rp_p;
- AP_Float acro_yaw_p;
- AP_Float acro_balance_roll;
- AP_Float acro_balance_pitch;
- AP_Int8 acro_trainer;
- AP_Float acro_expo;
- AP_Float surface_depth;
- AP_Int8 frame_configuration;
- // Note: keep initializers here in the same order as they are declared
- // above.
- Parameters()
- {
- }
- };
- /*
- 2nd block of parameters, to avoid going past 256 top level keys
- */
- class ParametersG2 {
- public:
- ParametersG2(void);
- // var_info for holding Parameter information
- static const struct AP_Param::GroupInfo var_info[];
- #if GRIPPER_ENABLED
- AP_Gripper gripper;
- #endif
- #if PROXIMITY_ENABLED == ENABLED
- // proximity (aka object avoidance) library
- AP_Proximity proximity;
- #endif
- // RC input channels
- RC_Channels_Sub rc_channels;
- // control over servo output ranges
- SRV_Channels servo_channels;
- #ifdef ENABLE_SCRIPTING
- AP_Scripting scripting;
- #endif // ENABLE_SCRIPTING
- };
- extern const AP_Param::Info var_info[];
|