Browse Source

Copter: autotune entry checks moved to init

c415-sdk
Randy Mackay 4 years ago
parent
commit
67e15f8d07
  1. 1
      ArduCopter/mode.h
  2. 25
      ArduCopter/mode_autotune.cpp

1
ArduCopter/mode.h

@ -550,7 +550,6 @@ public:
void run() override; void run() override;
protected: protected:
bool start(void) override;
bool position_ok() override; bool position_ok() override;
float get_pilot_desired_climb_rate_cms(void) const override; float get_pilot_desired_climb_rate_cms(void) const override;
void get_pilot_desired_rp_yrate_cd(float &roll_cd, float &pitch_cd, float &yaw_rate_cds) override; void get_pilot_desired_rp_yrate_cd(float &roll_cd, float &pitch_cd, float &yaw_rate_cds) override;

25
ArduCopter/mode_autotune.cpp

@ -7,21 +7,6 @@
#if AUTOTUNE_ENABLED == ENABLED #if AUTOTUNE_ENABLED == ENABLED
bool AutoTune::init() bool AutoTune::init()
{
// use position hold while tuning if we were in QLOITER
bool position_hold = (copter.flightmode->mode_number() == Mode::Number::LOITER || copter.flightmode->mode_number() == Mode::Number::POSHOLD);
return init_internals(position_hold,
copter.attitude_control,
copter.pos_control,
copter.ahrs_view,
&copter.inertial_nav);
}
/*
start autotune mode
*/
bool AutoTune::start()
{ {
// only allow AutoTune from some flight modes, for example Stabilize, AltHold, PosHold or Loiter modes // only allow AutoTune from some flight modes, for example Stabilize, AltHold, PosHold or Loiter modes
if (!copter.flightmode->allows_autotune()) { if (!copter.flightmode->allows_autotune()) {
@ -38,7 +23,14 @@ bool AutoTune::start()
return false; return false;
} }
return AC_AutoTune::start(); // use position hold while tuning if we were in QLOITER
bool position_hold = (copter.flightmode->mode_number() == Mode::Number::LOITER || copter.flightmode->mode_number() == Mode::Number::POSHOLD);
return init_internals(position_hold,
copter.attitude_control,
copter.pos_control,
copter.ahrs_view,
&copter.inertial_nav);
} }
void AutoTune::run() void AutoTune::run()
@ -128,7 +120,6 @@ bool ModeAutoTune::init(bool ignore_checks)
return autotune.init(); return autotune.init();
} }
void ModeAutoTune::run() void ModeAutoTune::run()
{ {
autotune.run(); autotune.run();

Loading…
Cancel
Save