Open GoogleCodeExporter opened 8 years ago
This was fixed once before.
Thanks for the report. I'll take a look.
Original comment by dewei...@gmail.com
on 31 Oct 2011 at 3:57
Eric - this bug was fixed previously and the current trunk still contains the
fix. The Circle case was moved up in the long failsafe switch block so that it
was handled the same as Manual, Stabilize, etc.
What code are you using?
Original comment by dewei...@gmail.com
on 31 Oct 2011 at 4:44
Dewei,
I am using 2.24. It seems to me Circle is not handled the same as Manual or
Stabilize... Here is the original 2.24 code:
static void failsafe_long_on_event()
{
// This is how to handle a long loss of control signal failsafe.
SendDebug_P("Failsafe - Long event on");
APM_RC.clearOverride(); // If the GCS is locked up we allow control to revert to RC
switch(control_mode)
{
case MANUAL:
case STABILIZE:
case FLY_BY_WIRE_A: // middle position
case FLY_BY_WIRE_B: // middle position
set_mode(RTL);
break;
case AUTO:
case LOITER:
case CIRCLE:
if(g.long_fs_action == 1) {
set_mode(RTL);
}
break;
case RTL:
default:
break;
}
}
also (if I understand right the reference), whatever are the values of
SHORT_FAILSAFE_ACTION and LONG_FAILSAFE_ACTION, we should go from:
-Manual to Circle when SHORT_FAILSAFE occurs
-Circle to RTL when LONG_FAILSAFE occurs
Here is what the reference says:
"Note that for Manual, Stabilize, and Fly-By-Wire (A and B) modes the aircraft
will always enter a circling mode for short failsafe conditions and will be
switched to RTL for long failsafe conditions. RTL mode is unaffected by
failsafe conditions."
Thanks for your help.
Original comment by eric.lar...@gmail.com
on 31 Oct 2011 at 8:28
Original issue reported on code.google.com by
eric.lar...@gmail.com
on 5 Oct 2011 at 9:18