1
0
Fork 0
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:
Dominic Clifton 2015-03-26 01:32:06 +00:00
commit 507a022e90
23 changed files with 446 additions and 116 deletions

View file

@ -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