mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-22 07:45:29 +03:00
Merge branch 'master' into serial-port-options
This commit is contained in:
commit
507a022e90
23 changed files with 446 additions and 116 deletions
|
@ -65,6 +65,13 @@ extern "C" {
|
|||
#include "unittest_macros.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// input
|
||||
#define TEST_RC_MID 1500
|
||||
|
||||
// output
|
||||
#define TEST_MIN_COMMAND 1000
|
||||
#define TEST_SERVO_MID 1500
|
||||
|
||||
typedef struct motor_s {
|
||||
uint16_t value;
|
||||
} motor_t;
|
||||
|
@ -87,17 +94,17 @@ TEST(FlightMixerTest, TestForwardAuxChannelsToServosWithNoServos)
|
|||
memset(&servos, 0, sizeof(servos));
|
||||
servoCount = 0;
|
||||
|
||||
rcData[AUX1] = 1500;
|
||||
rcData[AUX2] = 1500;
|
||||
rcData[AUX3] = 1500;
|
||||
rcData[AUX4] = 1500;
|
||||
rcData[AUX1] = TEST_RC_MID;
|
||||
rcData[AUX2] = TEST_RC_MID;
|
||||
rcData[AUX3] = TEST_RC_MID;
|
||||
rcData[AUX4] = TEST_RC_MID;
|
||||
|
||||
// when
|
||||
forwardAuxChannelsToServos();
|
||||
|
||||
// then
|
||||
for (uint8_t i = 0; i < MAX_SUPPORTED_SERVOS; i++) {
|
||||
EXPECT_EQ(servos[i].value, 0);
|
||||
EXPECT_EQ(0, servos[i].value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -122,10 +129,10 @@ TEST(FlightMixerTest, TestForwardAuxChannelsToServosWithMaxServos)
|
|||
}
|
||||
|
||||
// -1 for zero based offset
|
||||
EXPECT_EQ(servos[MAX_SUPPORTED_SERVOS - 3 - 1].value, 1000);
|
||||
EXPECT_EQ(servos[MAX_SUPPORTED_SERVOS - 2 - 1].value, 1250);
|
||||
EXPECT_EQ(servos[MAX_SUPPORTED_SERVOS - 1 - 1].value, 1750);
|
||||
EXPECT_EQ(servos[MAX_SUPPORTED_SERVOS - 0 - 1].value, 2000);
|
||||
EXPECT_EQ(1000, servos[MAX_SUPPORTED_SERVOS - 3 - 1].value);
|
||||
EXPECT_EQ(1250, servos[MAX_SUPPORTED_SERVOS - 2 - 1].value);
|
||||
EXPECT_EQ(1750, servos[MAX_SUPPORTED_SERVOS - 1 - 1].value);
|
||||
EXPECT_EQ(2000, servos[MAX_SUPPORTED_SERVOS - 0 - 1].value);
|
||||
}
|
||||
|
||||
TEST(FlightMixerTest, TestForwardAuxChannelsToServosWithLessServosThanAuxChannelsToForward)
|
||||
|
@ -149,8 +156,8 @@ TEST(FlightMixerTest, TestForwardAuxChannelsToServosWithLessServosThanAuxChannel
|
|||
}
|
||||
|
||||
// -1 for zero based offset
|
||||
EXPECT_EQ(servos[0].value, 1000);
|
||||
EXPECT_EQ(servos[1].value, 1250);
|
||||
EXPECT_EQ(1000, servos[0].value);
|
||||
EXPECT_EQ(1250, servos[1].value);
|
||||
}
|
||||
|
||||
TEST(FlightMixerTest, TestTricopterServo)
|
||||
|
@ -163,7 +170,7 @@ TEST(FlightMixerTest, TestTricopterServo)
|
|||
|
||||
escAndServoConfig_t escAndServoConfig;
|
||||
memset(&escAndServoConfig, 0, sizeof(escAndServoConfig));
|
||||
escAndServoConfig.mincommand = 1000;
|
||||
escAndServoConfig.mincommand = TEST_MIN_COMMAND;
|
||||
|
||||
servoParam_t servoConf[MAX_SUPPORTED_SERVOS];
|
||||
memset(&servoConf, 0, sizeof(servoConf));
|
||||
|
@ -213,9 +220,67 @@ TEST(FlightMixerTest, TestTricopterServo)
|
|||
writeServos();
|
||||
|
||||
// then
|
||||
EXPECT_EQ(servos[0].value, 1500);
|
||||
EXPECT_EQ(TEST_SERVO_MID, servos[0].value);
|
||||
}
|
||||
|
||||
TEST(FlightMixerTest, TestQuadMotors)
|
||||
{
|
||||
// given
|
||||
mixerConfig_t mixerConfig;
|
||||
memset(&mixerConfig, 0, sizeof(mixerConfig));
|
||||
|
||||
//servoParam_t servoConf[MAX_SUPPORTED_SERVOS];
|
||||
//memset(&servoConf, 0, sizeof(servoConf));
|
||||
|
||||
escAndServoConfig_t escAndServoConfig;
|
||||
memset(&escAndServoConfig, 0, sizeof(escAndServoConfig));
|
||||
escAndServoConfig.mincommand = TEST_MIN_COMMAND;
|
||||
|
||||
gimbalConfig_t gimbalConfig = {
|
||||
.gimbal_flags = 0
|
||||
};
|
||||
|
||||
mixerUseConfigs(
|
||||
NULL,// servoConf,
|
||||
&gimbalConfig,
|
||||
NULL,
|
||||
&escAndServoConfig,
|
||||
&mixerConfig,
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
|
||||
motorMixer_t customMixer[MAX_SUPPORTED_MOTORS];
|
||||
memset(&customMixer, 0, sizeof(customMixer));
|
||||
|
||||
mixerInit(MIXER_QUADX, customMixer);
|
||||
|
||||
// and
|
||||
pwmOutputConfiguration_t pwmOutputConfiguration = {
|
||||
.servoCount = 0,
|
||||
.motorCount = 4
|
||||
};
|
||||
|
||||
mixerUsePWMOutputConfiguration(&pwmOutputConfiguration);
|
||||
|
||||
// and
|
||||
memset(rcCommand, 0, sizeof(rcCommand));
|
||||
|
||||
// and
|
||||
memset(axisPID, 0, sizeof(axisPID));
|
||||
axisPID[YAW] = 0;
|
||||
|
||||
|
||||
// when
|
||||
mixTable();
|
||||
writeMotors();
|
||||
|
||||
// then
|
||||
EXPECT_EQ(TEST_MIN_COMMAND, motors[0].value);
|
||||
EXPECT_EQ(TEST_MIN_COMMAND, motors[1].value);
|
||||
EXPECT_EQ(TEST_MIN_COMMAND, motors[2].value);
|
||||
EXPECT_EQ(TEST_MIN_COMMAND, motors[3].value);
|
||||
}
|
||||
|
||||
// STUBS
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue