add untested mixers - HEX6H, dual/single copter, to match mixer IDs with MultiWiiConf
This commit is contained in:
parent
203e46daa6
commit
7eec3aec9e
|
@ -37,7 +37,9 @@ static const char * const mixerNames[] = {
|
|||
"TRI", "QUADP", "QUADX", "BI",
|
||||
"GIMBAL", "Y6", "HEX6",
|
||||
"FLYING_WING", "Y4", "HEX6X", "OCTOX8", "OCTOFLATP", "OCTOFLATX",
|
||||
"AIRPLANE", "HELI_120_CCPM", "HELI_90_DEG", "VTAIL4", "CUSTOM", NULL
|
||||
"AIRPLANE", "HELI_120_CCPM", "HELI_90_DEG", "VTAIL4",
|
||||
"HEX6H", "PPM_TO_SERVO", "DUALCOPTER", "SINGLECOPTER",
|
||||
"CUSTOM", NULL
|
||||
};
|
||||
|
||||
// sync this with AvailableFeatures enum from board.h
|
||||
|
|
45
src/mixer.c
45
src/mixer.c
|
@ -106,6 +106,20 @@ static const motorMixer_t mixerVtail4[] = {
|
|||
{ 1.0f, 1.0f, -1.0f, -0.0f }, // FRONT_L
|
||||
};
|
||||
|
||||
static const motorMixer_t mixerHex6H[] = {
|
||||
{ 1.0f, -1.0f, 1.0f, -1.0f }, // REAR_R
|
||||
{ 1.0f, -1.0f, -1.0f, 1.0f }, // FRONT_R
|
||||
{ 1.0f, 1.0f, 1.0f, 1.0f }, // REAR_L
|
||||
{ 1.0f, 1.0f, -1.0f, -1.0f }, // FRONT_L
|
||||
{ 1.0f, 0.0f, 0.0f, 0.0f }, // RIGHT
|
||||
{ 1.0f, 0.0f, 0.0f, 0.0f }, // LEFT
|
||||
};
|
||||
|
||||
static const motorMixer_t mixerDualcopter[] = {
|
||||
{ 1.0f, 0.0f, 0.0f, -1.0f }, // LEFT
|
||||
{ 1.0f, 0.0f, 0.0f, 1.0f }, // RIGHT
|
||||
};
|
||||
|
||||
// Keep this synced with MultiType struct in mw.h!
|
||||
const mixer_t mixers[] = {
|
||||
// Mo Se Mixtable
|
||||
|
@ -127,6 +141,10 @@ const mixer_t mixers[] = {
|
|||
{ 0, 1, NULL }, // * MULTITYPE_HELI_120_CCPM
|
||||
{ 0, 1, NULL }, // * MULTITYPE_HELI_90_DEG
|
||||
{ 4, 0, mixerVtail4 }, // MULTITYPE_VTAIL4
|
||||
{ 6, 0, mixerHex6H }, // MULTITYPE_HEX6H
|
||||
{ 0, 1, NULL }, // * MULTITYPE_PPM_TO_SERVO
|
||||
{ 2, 1, mixerDualcopter }, // MULTITYPE_DUALCOPTER
|
||||
{ 1, 1, NULL }, // MULTITYPE_SINGLECOPTER
|
||||
{ 0, 0, NULL }, // MULTITYPE_CUSTOM
|
||||
};
|
||||
|
||||
|
@ -249,6 +267,18 @@ void writeServos(void)
|
|||
pwmWriteServo(1, servo[1]);
|
||||
break;
|
||||
|
||||
case MULTITYPE_DUALCOPTER:
|
||||
pwmWriteServo(0, servo[4]);
|
||||
pwmWriteServo(1, servo[5]);
|
||||
break;
|
||||
|
||||
case MULTITYPE_SINGLECOPTER:
|
||||
pwmWriteServo(0, servo[3]);
|
||||
pwmWriteServo(1, servo[4]);
|
||||
pwmWriteServo(2, servo[5]);
|
||||
pwmWriteServo(3, servo[6]);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Two servos for SERVO_TILT, if enabled
|
||||
if (feature(FEATURE_SERVO_TILT)) {
|
||||
|
@ -382,6 +412,21 @@ void mixTable(void)
|
|||
servo[3] += servoMiddle(3);
|
||||
servo[4] += servoMiddle(4);
|
||||
break;
|
||||
|
||||
case MULTITYPE_DUALCOPTER:
|
||||
for (i = 4; i < 6; i++ ) {
|
||||
servo[i] = axisPID[5 - i] * servoDirection(i, 1); // mix and setup direction
|
||||
servo[i] += servoMiddle(i);
|
||||
}
|
||||
break;
|
||||
|
||||
case MULTITYPE_SINGLECOPTER:
|
||||
for (i = 3; i < 7; i++) {
|
||||
servo[i] = (axisPID[YAW] * servoDirection(i, 2)) + (axisPID[(6 - i) >> 1] * servoDirection(i, 1)); // mix and setup direction
|
||||
servo[i] += servoMiddle(i);
|
||||
}
|
||||
motor[0] = rcCommand[THROTTLE];
|
||||
break;
|
||||
}
|
||||
|
||||
// do camstab
|
||||
|
|
8
src/mw.h
8
src/mw.h
|
@ -40,8 +40,12 @@ typedef enum MultiType
|
|||
MULTITYPE_HELI_120_CCPM = 15,
|
||||
MULTITYPE_HELI_90_DEG = 16,
|
||||
MULTITYPE_VTAIL4 = 17,
|
||||
MULTITYPE_CUSTOM = 18, // no current GUI displays this
|
||||
MULTITYPE_LAST = 19
|
||||
MULTITYPE_HEX6H = 18,
|
||||
MULTITYPE_PPM_TO_SERVO = 19, // PPM -> servo relay
|
||||
MULTITYPE_DUALCOPTER = 20,
|
||||
MULTITYPE_SINGLECOPTER = 21,
|
||||
MULTITYPE_CUSTOM = 22, // no current GUI displays this
|
||||
MULTITYPE_LAST = 23
|
||||
} MultiType;
|
||||
|
||||
typedef enum GimbalFlags {
|
||||
|
|
Loading…
Reference in New Issue