mirror of
https://github.com/okalachev/flix.git
synced 2026-02-17 15:41:32 +00:00
Add parameters for list of modes bound to rc switch
Parameters: CTL_FLT_MODE_0, CTL_FLT_MODE_1, CTL_FLT_MODE_2. Also fix a bug with incorrect choosing the mode from controlMode.
This commit is contained in:
@@ -52,6 +52,7 @@ PID pitchPID(PITCH_P, PITCH_I, PITCH_D);
|
|||||||
PID yawPID(YAW_P, 0, 0);
|
PID yawPID(YAW_P, 0, 0);
|
||||||
Vector maxRate(ROLLRATE_MAX, PITCHRATE_MAX, YAWRATE_MAX);
|
Vector maxRate(ROLLRATE_MAX, PITCHRATE_MAX, YAWRATE_MAX);
|
||||||
float tiltMax = TILT_MAX;
|
float tiltMax = TILT_MAX;
|
||||||
|
int flightModes[] = {STAB, STAB, STAB}; // map for rc mode switch
|
||||||
|
|
||||||
extern const int MOTOR_REAR_LEFT, MOTOR_REAR_RIGHT, MOTOR_FRONT_RIGHT, MOTOR_FRONT_LEFT;
|
extern const int MOTOR_REAR_LEFT, MOTOR_REAR_RIGHT, MOTOR_FRONT_RIGHT, MOTOR_FRONT_LEFT;
|
||||||
extern float controlRoll, controlPitch, controlThrottle, controlYaw, controlMode;
|
extern float controlRoll, controlPitch, controlThrottle, controlYaw, controlMode;
|
||||||
@@ -65,9 +66,9 @@ void control() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void interpretControls() {
|
void interpretControls() {
|
||||||
if (controlMode < 0.25) mode = STAB;
|
if (controlMode < 0.25) mode = flightModes[0];
|
||||||
if (controlMode < 0.75) mode = STAB;
|
else if (controlMode < 0.75) mode = flightModes[1];
|
||||||
if (controlMode > 0.75) mode = STAB;
|
else if (controlMode > 0.75) mode = flightModes[2];
|
||||||
|
|
||||||
if (mode == AUTO) return; // pilot is not effective in AUTO mode
|
if (mode == AUTO) return; // pilot is not effective in AUTO mode
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,9 @@ Parameter parameters[] = {
|
|||||||
{"CTL_R_RATE_MAX", &maxRate.x},
|
{"CTL_R_RATE_MAX", &maxRate.x},
|
||||||
{"CTL_Y_RATE_MAX", &maxRate.z},
|
{"CTL_Y_RATE_MAX", &maxRate.z},
|
||||||
{"CTL_TILT_MAX", &tiltMax},
|
{"CTL_TILT_MAX", &tiltMax},
|
||||||
|
{"CTL_FLT_MODE_0", &flightModes[0]},
|
||||||
|
{"CTL_FLT_MODE_1", &flightModes[1]},
|
||||||
|
{"CTL_FLT_MODE_2", &flightModes[2]},
|
||||||
// imu
|
// imu
|
||||||
{"IMU_ROT_ROLL", &imuRotation.x},
|
{"IMU_ROT_ROLL", &imuRotation.x},
|
||||||
{"IMU_ROT_PITCH", &imuRotation.y},
|
{"IMU_ROT_PITCH", &imuRotation.y},
|
||||||
|
|||||||
Reference in New Issue
Block a user