Plane: fixed to allow TKOFF_THR_DELAY up to 12.7 seconds

thanks to a report by jman841
This commit is contained in:
Andrew Tridgell 2015-02-21 13:56:25 +11:00
parent bee703ab2a
commit 6cf029f82a
1 changed files with 4 additions and 3 deletions

View File

@ -16,6 +16,7 @@ static bool auto_takeoff_check(void)
static bool launchTimerStarted;
static uint32_t last_tkoff_arm_time;
static uint32_t last_check_ms;
uint16_t wait_time_ms = min(uint16_t(g.takeoff_throttle_delay)*100,12700);
// Reset states if process has been interrupted
if (last_check_ms && (now - last_check_ms) > 200) {
@ -46,11 +47,11 @@ static bool auto_takeoff_check(void)
launchTimerStarted = true;
last_tkoff_arm_time = now;
gcs_send_text_fmt(PSTR("Armed AUTO, xaccel = %.1f m/s/s, waiting %.1f sec"),
SpdHgt_Controller->get_VXdot(), 0.1f*float(min(g.takeoff_throttle_delay,25)));
SpdHgt_Controller->get_VXdot(), wait_time_ms*0.001f);
}
// Only perform velocity check if not timed out
if ((now - last_tkoff_arm_time) > 2500) {
if ((now - last_tkoff_arm_time) > wait_time_ms+100U) {
gcs_send_text_fmt(PSTR("Timeout AUTO"));
goto no_launch;
}
@ -65,7 +66,7 @@ static bool auto_takeoff_check(void)
// Check ground speed and time delay
if (((gps.ground_speed() > g.takeoff_throttle_min_speed || g.takeoff_throttle_min_speed == 0.0)) &&
((now - last_tkoff_arm_time) >= min(uint16_t(g.takeoff_throttle_delay)*100,2500))) {
((now - last_tkoff_arm_time) >= wait_time_ms)) {
gcs_send_text_fmt(PSTR("Triggered AUTO, GPSspd = %.1f"), gps.ground_speed());
launchTimerStarted = false;
last_tkoff_arm_time = 0;