1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-24 16:55:36 +03:00

Added calibration menu to CMS.

This commit is contained in:
mikeller 2019-11-16 12:24:49 +13:00 committed by Michael Keller
parent c6e5882dd9
commit cedcf2d7e2
41 changed files with 387 additions and 143 deletions

View file

@ -88,6 +88,7 @@ TEST(ArmingPreventionTest, CalibrationPowerOnGraceAngleThrottleArmSwitch)
// given
simulationTime = 0;
gyroCalibDone = false;
sensorsSet(SENSOR_GYRO);
// and
modeActivationConditionsMutable(0)->auxChannelIndex = 0;
@ -178,6 +179,7 @@ TEST(ArmingPreventionTest, ArmingGuardRadioLeftOnAndArmed)
// given
simulationTime = 0;
gyroCalibDone = false;
sensorsSet(SENSOR_GYRO);
// and
modeActivationConditionsMutable(0)->auxChannelIndex = 0;
@ -1036,8 +1038,8 @@ extern "C" {
void saveConfigAndNotify(void) {}
void blackboxFinish(void) {}
bool accIsCalibrationComplete(void) { return true; }
bool isBaroCalibrationComplete(void) { return true; }
bool isGyroCalibrationComplete(void) { return gyroCalibDone; }
bool baroIsCalibrationComplete(void) { return true; }
bool gyroIsCalibrationComplete(void) { return gyroCalibDone; }
void gyroStartCalibration(bool) {}
bool isFirstArmingGyroCalibrationRunning(void) { return false; }
void pidController(const pidProfile_t *, timeUs_t) {}
@ -1072,6 +1074,7 @@ extern "C" {
void transponderUpdate(timeUs_t) {}
void GPS_reset_home_position(void) {}
void accStartCalibration(void) {}
bool accHasBeenCalibrated(void) { return true; }
void baroSetGroundLevel(void) {}
void changePidProfile(uint8_t) {}
void changeControlRateProfile(uint8_t) {}
@ -1093,6 +1096,6 @@ extern "C" {
void applyAccelerometerTrimsDelta(rollAndPitchTrims_t*) {}
bool isFixedWing(void) { return false; }
void compassStartCalibration(void) {}
bool isCompassCalibrationComplete(void) { return true; }
bool compassIsCalibrationComplete(void) { return true; }
bool isUpright(void) { return mockIsUpright; }
}

View file

@ -125,7 +125,7 @@ static OSD_Entry menuMainEntries[] =
{"EXIT", OME_OSD_Exit, cmsMenuExit, (void*)0, 0},
{NULL, OME_END, NULL, NULL, 0}
};
CMS_Menu menuMain = {
CMS_Menu cmsx_menuMain = {
#ifdef CMS_MENU_DEBUG
.GUARD_text = "MENUMAIN",
.GUARD_type = OME_MENU,

View file

@ -242,7 +242,7 @@ uint32_t millis(void) { return 0; }
uint32_t micros(void) { return 0; }
bool compassIsHealthy(void) { return true; }
bool isBaroCalibrationComplete(void) { return true; }
bool baroIsCalibrationComplete(void) { return true; }
void performBaroCalibrationCycle(void) {}
int32_t baroCalculateAltitude(void) { return 0; }
bool gyroGetAccumulationAverage(float *) { return false; }

View file

@ -100,8 +100,8 @@ TEST(SensorGyro, Calibrate)
EXPECT_EQ(9, gyroDevPtr->gyroZero[Y]);
EXPECT_EQ(10, gyroDevPtr->gyroZero[Z]);
gyroStartCalibration(false);
EXPECT_EQ(false, isGyroCalibrationComplete());
while (!isGyroCalibrationComplete()) {
EXPECT_EQ(false, gyroIsCalibrationComplete());
while (!gyroIsCalibrationComplete()) {
gyroDevPtr->readFn(gyroDevPtr);
performGyroCalibration(gyroSensorPtr, gyroMovementCalibrationThreshold);
}
@ -121,16 +121,16 @@ TEST(SensorGyro, Update)
gyroInit();
gyroDevPtr->readFn = fakeGyroRead;
gyroStartCalibration(false);
EXPECT_EQ(false, isGyroCalibrationComplete());
EXPECT_EQ(false, gyroIsCalibrationComplete());
timeUs_t currentTimeUs = 0;
fakeGyroSet(gyroDevPtr, 5, 6, 7);
gyroUpdate(currentTimeUs);
while (!isGyroCalibrationComplete()) {
while (!gyroIsCalibrationComplete()) {
fakeGyroSet(gyroDevPtr, 5, 6, 7);
gyroUpdate(currentTimeUs);
}
EXPECT_EQ(true, isGyroCalibrationComplete());
EXPECT_EQ(true, gyroIsCalibrationComplete());
EXPECT_EQ(5, gyroDevPtr->gyroZero[X]);
EXPECT_EQ(6, gyroDevPtr->gyroZero[Y]);
EXPECT_EQ(7, gyroDevPtr->gyroZero[Z]);

View file

@ -129,8 +129,9 @@ extern "C" {
void saveConfigAndNotify(void) {}
void blackboxFinish(void) {}
bool accIsCalibrationComplete(void) { return true; }
bool isBaroCalibrationComplete(void) { return true; }
bool isGyroCalibrationComplete(void) { return gyroCalibDone; }
bool accHasBeenCalibrated(void) { return true; }
bool baroIsCalibrationComplete(void) { return true; }
bool gyroIsCalibrationComplete(void) { return gyroCalibDone; }
void gyroStartCalibration(bool) {}
bool isFirstArmingGyroCalibrationRunning(void) { return false; }
void pidController(const pidProfile_t *, timeUs_t) {}
@ -180,6 +181,6 @@ extern "C" {
void applyAccelerometerTrimsDelta(rollAndPitchTrims_t*) {}
bool isFixedWing(void) { return false; }
void compassStartCalibration(void) {}
bool isCompassCalibrationComplete(void) { return true; }
bool compassIsCalibrationComplete(void) { return true; }
bool isUpright(void) { return true; }
}