mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
LP-428 Handle different threshold levels for sticks and switches
This commit is contained in:
parent
33188bd78e
commit
ad0d18cfef
@ -41,8 +41,9 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Private constants
|
// Private constants
|
||||||
#define ARMED_THRESHOLD 0.20f
|
#define ARMED_THRESHOLD_SWITCH 0.20f
|
||||||
#define GROUND_LOW_THROTTLE 0.01f
|
#define ARMED_THRESHOLD_STICK 0.80f
|
||||||
|
#define GROUND_LOW_THROTTLE 0.01f
|
||||||
|
|
||||||
// Private types
|
// Private types
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -116,7 +117,7 @@ void armHandler(bool newinit, FrameType_t frameType)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// immediate disarm on switch
|
// immediate disarm on switch
|
||||||
if (armSwitch && acc.AccessoryVal <= -ARMED_THRESHOLD) {
|
if (armSwitch && acc.AccessoryVal <= -ARMED_THRESHOLD_SWITCH) {
|
||||||
lowThrottle = true;
|
lowThrottle = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,9 +210,11 @@ void armHandler(bool newinit, FrameType_t frameType)
|
|||||||
previousArmingInputLevel = 0.0f;
|
previousArmingInputLevel = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((armingInputLevel <= -ARMED_THRESHOLD) && (previousArmingInputLevel > -ARMED_THRESHOLD)) {
|
float armedThreshold = armSwitch ? ARMED_THRESHOLD_SWITCH : ARMED_THRESHOLD_STICK;
|
||||||
|
|
||||||
|
if ((armingInputLevel <= -armedThreshold) && (previousArmingInputLevel > -armedThreshold)) {
|
||||||
manualArm = true;
|
manualArm = true;
|
||||||
} else if ((armingInputLevel >= +ARMED_THRESHOLD) && (previousArmingInputLevel < +ARMED_THRESHOLD)) {
|
} else if ((armingInputLevel >= +armedThreshold) && (previousArmingInputLevel < +armedThreshold)) {
|
||||||
manualDisarm = true;
|
manualDisarm = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user