#pragma once #include #include "RC_Channel.h" #include "AC_Sprayer/AC_Sprayer.h" #include "AP_Gripper/AP_Gripper.h" #include "AP_Rally.h" // 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 = 16; enum { // Layout version number, always key zero. // k_param_format_version = 0, k_param_software_type, // unused k_param_can_mgr, // Misc // k_param_log_bitmask_old = 10, // unused k_param_num_resets_old, // unused k_param_reset_switch_chan, k_param_initial_mode, k_param_scheduler, k_param_relay, k_param_BoardConfig, k_param_pivot_turn_angle_old, // unused k_param_rc_13_old, // unused k_param_rc_14_old, // unused // IO pins k_param_rssi_pin = 20, // unused, replaced by rssi_ library parameters k_param_battery_volt_pin, k_param_battery_curr_pin, // braking k_param_braking_percent_old = 30, // unused k_param_braking_speederr_old, // unused // misc2 k_param_log_bitmask = 40, k_param_gps, k_param_serial0_baud, // deprecated, can be deleted k_param_serial1_baud, // deprecated, can be deleted k_param_serial2_baud, // deprecated, can be deleted // 97: RSSI k_param_rssi = 97, k_param_rpm_sensor, // rpm sensor 98 // 100: Arming parameters k_param_arming = 100, // 110: Telemetry control // k_param_gcs0 = 110, // stream rates for uartA k_param_gcs1, // stream rates for uartC k_param_sysid_this_mav, k_param_sysid_my_gcs, k_param_serial0_baud_old, // unused k_param_serial1_baud_old, // unused k_param_telem_delay, k_param_skip_gyro_cal, // unused k_param_gcs2, // stream rates for uartD k_param_serial2_baud_old, // unused k_param_serial2_protocol, // deprecated, can be deleted k_param_serial_manager, // serial manager library k_param_cli_enabled_old, // unused k_param_gcs3, k_param_gcs_pid_mask, k_param_gcs4, k_param_gcs5, k_param_gcs6, // // 130: Sensor parameters // k_param_compass_enabled_deprecated = 130, k_param_steering_learn, // unused k_param_NavEKF, // deprecated - remove k_param_mission, // mission library k_param_NavEKF2_old, // deprecated - remove k_param_NavEKF2, k_param_g2, // 2nd block of parameters k_param_NavEKF3, // 140: battery controls k_param_battery_monitoring = 140, // deprecated, can be deleted k_param_volt_div_ratio, // deprecated, can be deleted k_param_curr_amp_per_volt, // deprecated, can be deleted k_param_input_voltage, // deprecated, can be deleted k_param_pack_capacity, // deprecated, can be deleted k_param_battery, // // 150: Navigation parameters // k_param_crosstrack_gain = 150, // unused k_param_crosstrack_entry_angle, // unused k_param_speed_cruise, k_param_speed_turn_gain, // unused k_param_speed_turn_dist, // unused k_param_ch7_option, // unused k_param_auto_trigger_pin, k_param_auto_kickstart, k_param_turn_circle, // unused k_param_turn_max_g, // // 160: Radio settings // k_param_rc_1_old = 160, // unused k_param_rc_2_old, // unused k_param_rc_3_old, // unused k_param_rc_4_old, // unused k_param_rc_5_old, // unused k_param_rc_6_old, // unused k_param_rc_7_old, // unused k_param_rc_8_old, // unused // throttle control k_param_throttle_min_old = 170, // unused k_param_throttle_max_old, // unused k_param_throttle_cruise, k_param_throttle_slewrate_old, // unused k_param_throttle_reduction, // unused k_param_pilot_steer_type, k_param_skid_steer_out_old, // unused // failsafe control k_param_fs_action = 180, k_param_fs_timeout, k_param_fs_throttle_enabled, k_param_fs_throttle_value, k_param_fs_gcs_enabled, k_param_fs_crash_check, k_param_fs_ekf_action, k_param_fs_ekf_thresh, // 187 // obstacle control k_param_sonar_enabled = 190, // deprecated, can be removed k_param_sonar_old, // unused k_param_rangefinder_trigger_cm, // unused k_param_rangefinder_turn_angle, // unused k_param_rangefinder_turn_time, // unused k_param_sonar2_old, // unused k_param_rangefinder_debounce, // unused k_param_rangefinder, // rangefinder object // // 210: driving modes // k_param_mode_channel = 210, k_param_mode1, k_param_mode2, k_param_mode3, k_param_mode4, k_param_mode5, k_param_mode6, k_param_aux_channel_old, // // 220: Waypoint data // k_param_command_total = 220, // unused k_param_command_index, // unused k_param_waypoint_radius_old, // unused k_param_waypoint_overshoot_old, // unused // // camera control // k_param_camera, k_param_camera_mount, k_param_camera_mount2, // unused // // 230: PID Controllers k_param_pidNavSteer = 230, k_param_pidServoSteer, // unused k_param_pidSpeedThrottle_old, // unused // high RC channels k_param_rc_9_old = 235, // unused k_param_rc_10_old, // unused k_param_rc_11_old, // unused k_param_rc_12_old, // unusedS // other objects k_param_sitl = 240, k_param_ahrs, k_param_ins, k_param_compass, k_param_rcmap, k_param_L1_controller, k_param_steerController_old, // unused k_param_barometer, k_param_notify, k_param_button, k_param_osd, k_param_logger = 253, // Logging Group // 254,255: reserved k_param_vehicle = 257, // vehicle common block of parameters }; AP_Int16 format_version; // Misc // AP_Int32 log_bitmask; AP_Int8 reset_switch_chan; AP_Int8 initial_mode; // Telemetry control // AP_Int16 sysid_this_mav; AP_Int16 sysid_my_gcs; AP_Int8 telem_delay; // navigation parameters // AP_Float speed_cruise; AP_Int8 ch7_option; AP_Int8 auto_trigger_pin; AP_Float auto_kickstart; AP_Float turn_max_g; AP_Int16 gcs_pid_mask; // Throttle // AP_Int8 throttle_cruise; AP_Int8 pilot_steer_type; // failsafe control AP_Int8 fs_action; AP_Float fs_timeout; AP_Int8 fs_throttle_enabled; AP_Int16 fs_throttle_value; AP_Int8 fs_gcs_enabled; AP_Int8 fs_crash_check; AP_Int8 fs_ekf_action; AP_Float fs_ekf_thresh; // driving modes // AP_Int8 mode_channel; AP_Int8 mode1; AP_Int8 mode2; AP_Int8 mode3; AP_Int8 mode4; AP_Int8 mode5; AP_Int8 mode6; 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 STATS_ENABLED == ENABLED // vehicle statistics AP_Stats stats; #endif // whether to enforce acceptance of packets only from sysid_my_gcs AP_Int8 sysid_enforce; // RC input channels RC_Channels_Rover rc_channels; // control over servo output ranges SRV_Channels servo_channels; #if ADVANCED_FAILSAFE == ENABLED // advanced failsafe library AP_AdvancedFailsafe_Rover afs; #endif AP_Beacon beacon; // Motor library AP_MotorsUGV motors; // wheel encoders AP_WheelEncoder wheel_encoder; AP_WheelRateControl wheel_rate_control; // steering and throttle controller AR_AttitudeControl attitude_control; // turn radius of vehicle (only used in steering mode) AP_Float turn_radius; // acro mode turn rate maximum AP_Float acro_turn_rate; // Safe RTL library AP_SmartRTL smart_rtl; // default speed for rtl AP_Float rtl_speed; // frame class for vehicle AP_Int8 frame_class; // fence library AC_Fence fence; // proximity library AP_Proximity proximity; // avoidance library AC_Avoid avoid; // pitch angle at 100% throttle AP_Float bal_pitch_max; // pitch/roll angle for crash check AP_Int8 crash_angle; // follow mode library AP_Follow follow; // frame type for vehicle (used for vectored motor vehicles and custom motor configs) AP_Int8 frame_type; // loiter type AP_Int8 loit_type; AP_Float loit_radius; #if HAL_SPRAYER_ENABLED // Sprayer AC_Sprayer sprayer; #endif #if GRIPPER_ENABLED AP_Gripper gripper; #endif // Rally point library AP_Rally_Rover rally; // Simple mode types AP_Int8 simple_type; // windvane AP_WindVane windvane; // Airspeed AP_Airspeed airspeed; // mission behave AP_Int8 mis_done_behave; // balance both pitch trim AP_Float bal_pitch_trim; // stick mixing for auto modes AP_Int8 stick_mixing; #ifdef ENABLE_SCRIPTING AP_Scripting scripting; #endif // ENABLE_SCRIPTING // waypoint navigation AR_WPNav wp_nav; // Sailboat functions Sailboat sailboat; // object avoidance path planning AP_OAPathPlanner oa; // maximum speed for vehicle AP_Float speed_max; // gain for speed of correction in loiter AP_Float loiter_speed_gain; // FS options AP_Int32 fs_options; }; extern const AP_Param::Info var_info[];