mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-26 01:35:41 +03:00
Added shadow copies for CLI and MSP.
This commit is contained in:
parent
985a9208d5
commit
6de1c32d9d
56 changed files with 277 additions and 222 deletions
|
@ -174,7 +174,7 @@ static void validateAndFixConfig(void)
|
|||
!findSerialPortConfig(FUNCTION_GPS) &&
|
||||
#endif
|
||||
true) {
|
||||
featureClear(FEATURE_GPS);
|
||||
featureDisable(FEATURE_GPS);
|
||||
}
|
||||
|
||||
#ifndef USE_OSD_SLAVE
|
||||
|
@ -194,7 +194,7 @@ static void validateAndFixConfig(void)
|
|||
}
|
||||
|
||||
if (motorConfig()->dev.motorPwmProtocol == PWM_TYPE_BRUSHED) {
|
||||
featureClear(FEATURE_3D);
|
||||
featureDisable(FEATURE_3D);
|
||||
|
||||
if (motorConfig()->mincommand < 1000) {
|
||||
motorConfigMutable()->mincommand = 1000;
|
||||
|
@ -207,40 +207,40 @@ static void validateAndFixConfig(void)
|
|||
|
||||
validateAndFixGyroConfig();
|
||||
|
||||
if (!(featureConfigured(FEATURE_RX_PARALLEL_PWM) || featureConfigured(FEATURE_RX_PPM) || featureConfigured(FEATURE_RX_SERIAL) || featureConfigured(FEATURE_RX_MSP) || featureConfigured(FEATURE_RX_SPI))) {
|
||||
featureSet(DEFAULT_RX_FEATURE);
|
||||
if (!(featureIsEnabled(FEATURE_RX_PARALLEL_PWM) || featureIsEnabled(FEATURE_RX_PPM) || featureIsEnabled(FEATURE_RX_SERIAL) || featureIsEnabled(FEATURE_RX_MSP) || featureIsEnabled(FEATURE_RX_SPI))) {
|
||||
featureEnable(DEFAULT_RX_FEATURE);
|
||||
}
|
||||
|
||||
if (featureConfigured(FEATURE_RX_PPM)) {
|
||||
featureClear(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_MSP | FEATURE_RX_SPI);
|
||||
if (featureIsEnabled(FEATURE_RX_PPM)) {
|
||||
featureDisable(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_MSP | FEATURE_RX_SPI);
|
||||
}
|
||||
|
||||
if (featureConfigured(FEATURE_RX_MSP)) {
|
||||
featureClear(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_PPM | FEATURE_RX_SPI);
|
||||
if (featureIsEnabled(FEATURE_RX_MSP)) {
|
||||
featureDisable(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_PPM | FEATURE_RX_SPI);
|
||||
}
|
||||
|
||||
if (featureConfigured(FEATURE_RX_SERIAL)) {
|
||||
featureClear(FEATURE_RX_PARALLEL_PWM | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI);
|
||||
if (featureIsEnabled(FEATURE_RX_SERIAL)) {
|
||||
featureDisable(FEATURE_RX_PARALLEL_PWM | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI);
|
||||
}
|
||||
|
||||
#ifdef USE_RX_SPI
|
||||
if (featureConfigured(FEATURE_RX_SPI)) {
|
||||
featureClear(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_PPM | FEATURE_RX_MSP);
|
||||
if (featureIsEnabled(FEATURE_RX_SPI)) {
|
||||
featureDisable(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_PPM | FEATURE_RX_MSP);
|
||||
}
|
||||
#endif // USE_RX_SPI
|
||||
|
||||
if (featureConfigured(FEATURE_RX_PARALLEL_PWM)) {
|
||||
featureClear(FEATURE_RX_SERIAL | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI);
|
||||
if (featureIsEnabled(FEATURE_RX_PARALLEL_PWM)) {
|
||||
featureDisable(FEATURE_RX_SERIAL | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI);
|
||||
}
|
||||
|
||||
#ifdef USE_SOFTSPI
|
||||
if (featureConfigured(FEATURE_SOFTSPI)) {
|
||||
featureClear(FEATURE_RX_PPM | FEATURE_RX_PARALLEL_PWM | FEATURE_SOFTSERIAL);
|
||||
if (featureIsEnabled(FEATURE_SOFTSPI)) {
|
||||
featureDisable(FEATURE_RX_PPM | FEATURE_RX_PARALLEL_PWM | FEATURE_SOFTSERIAL);
|
||||
batteryConfigMutable()->voltageMeterSource = VOLTAGE_METER_NONE;
|
||||
#if defined(STM32F10X)
|
||||
featureClear(FEATURE_LED_STRIP);
|
||||
featureDisable(FEATURE_LED_STRIP);
|
||||
// rssi adc needs the same ports
|
||||
featureClear(FEATURE_RSSI_ADC);
|
||||
featureDisable(FEATURE_RSSI_ADC);
|
||||
// current meter needs the same ports
|
||||
if (batteryConfig()->currentMeterSource == CURRENT_METER_ADC) {
|
||||
batteryConfigMutable()->currentMeterSource = CURRENT_METER_NONE;
|
||||
|
@ -250,14 +250,14 @@ static void validateAndFixConfig(void)
|
|||
#endif // USE_SOFTSPI
|
||||
|
||||
#if defined(USE_ADC)
|
||||
if (featureConfigured(FEATURE_RSSI_ADC)) {
|
||||
if (featureIsEnabled(FEATURE_RSSI_ADC)) {
|
||||
rxConfigMutable()->rssi_channel = 0;
|
||||
rxConfigMutable()->rssi_src_frame_errors = false;
|
||||
} else
|
||||
#endif
|
||||
if (rxConfigMutable()->rssi_channel
|
||||
#if defined(USE_PWM) || defined(USE_PPM)
|
||||
|| featureConfigured(FEATURE_RX_PPM) || featureConfigured(FEATURE_RX_PARALLEL_PWM)
|
||||
|| featureIsEnabled(FEATURE_RX_PPM) || featureIsEnabled(FEATURE_RX_PARALLEL_PWM)
|
||||
#endif
|
||||
) {
|
||||
rxConfigMutable()->rssi_src_frame_errors = false;
|
||||
|
@ -291,7 +291,7 @@ static void validateAndFixConfig(void)
|
|||
#endif
|
||||
|
||||
if (
|
||||
featureConfigured(FEATURE_3D) || !featureConfigured(FEATURE_GPS)
|
||||
featureIsEnabled(FEATURE_3D) || !featureIsEnabled(FEATURE_GPS)
|
||||
#if !defined(USE_GPS) || !defined(USE_GPS_RESCUE)
|
||||
|| true
|
||||
#endif
|
||||
|
@ -308,7 +308,7 @@ static void validateAndFixConfig(void)
|
|||
|
||||
#if defined(USE_ESC_SENSOR)
|
||||
if (!findSerialPortConfig(FUNCTION_ESC_SENSOR)) {
|
||||
featureClear(FEATURE_ESC_SENSOR);
|
||||
featureDisable(FEATURE_ESC_SENSOR);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -316,71 +316,71 @@ static void validateAndFixConfig(void)
|
|||
// I have kept them all here in one place, some could be moved to sections of code above.
|
||||
|
||||
#ifndef USE_PPM
|
||||
featureClear(FEATURE_RX_PPM);
|
||||
featureDisable(FEATURE_RX_PPM);
|
||||
#endif
|
||||
|
||||
#ifndef USE_SERIAL_RX
|
||||
featureClear(FEATURE_RX_SERIAL);
|
||||
featureDisable(FEATURE_RX_SERIAL);
|
||||
#endif
|
||||
|
||||
#if !defined(USE_SOFTSERIAL1) && !defined(USE_SOFTSERIAL2)
|
||||
featureClear(FEATURE_SOFTSERIAL);
|
||||
featureDisable(FEATURE_SOFTSERIAL);
|
||||
#endif
|
||||
|
||||
#ifndef USE_RANGEFINDER
|
||||
featureClear(FEATURE_RANGEFINDER);
|
||||
featureDisable(FEATURE_RANGEFINDER);
|
||||
#endif
|
||||
|
||||
#ifndef USE_TELEMETRY
|
||||
featureClear(FEATURE_TELEMETRY);
|
||||
featureDisable(FEATURE_TELEMETRY);
|
||||
#endif
|
||||
|
||||
#ifndef USE_PWM
|
||||
featureClear(FEATURE_RX_PARALLEL_PWM);
|
||||
featureDisable(FEATURE_RX_PARALLEL_PWM);
|
||||
#endif
|
||||
|
||||
#ifndef USE_RX_MSP
|
||||
featureClear(FEATURE_RX_MSP);
|
||||
featureDisable(FEATURE_RX_MSP);
|
||||
#endif
|
||||
|
||||
#ifndef USE_LED_STRIP
|
||||
featureClear(FEATURE_LED_STRIP);
|
||||
featureDisable(FEATURE_LED_STRIP);
|
||||
#endif
|
||||
|
||||
#ifndef USE_DASHBOARD
|
||||
featureClear(FEATURE_DASHBOARD);
|
||||
featureDisable(FEATURE_DASHBOARD);
|
||||
#endif
|
||||
|
||||
#ifndef USE_OSD
|
||||
featureClear(FEATURE_OSD);
|
||||
featureDisable(FEATURE_OSD);
|
||||
#endif
|
||||
|
||||
#ifndef USE_SERVOS
|
||||
featureClear(FEATURE_SERVO_TILT | FEATURE_CHANNEL_FORWARDING);
|
||||
featureDisable(FEATURE_SERVO_TILT | FEATURE_CHANNEL_FORWARDING);
|
||||
#endif
|
||||
|
||||
#ifndef USE_TRANSPONDER
|
||||
featureClear(FEATURE_TRANSPONDER);
|
||||
featureDisable(FEATURE_TRANSPONDER);
|
||||
#endif
|
||||
|
||||
#ifndef USE_RX_SPI
|
||||
featureClear(FEATURE_RX_SPI);
|
||||
featureDisable(FEATURE_RX_SPI);
|
||||
#endif
|
||||
|
||||
#ifndef USE_SOFTSPI
|
||||
featureClear(FEATURE_SOFTSPI);
|
||||
featureDisable(FEATURE_SOFTSPI);
|
||||
#endif
|
||||
|
||||
#ifndef USE_ESC_SENSOR
|
||||
featureClear(FEATURE_ESC_SENSOR);
|
||||
featureDisable(FEATURE_ESC_SENSOR);
|
||||
#endif
|
||||
|
||||
#ifndef USE_GYRO_DATA_ANALYSE
|
||||
featureClear(FEATURE_DYNAMIC_FILTER);
|
||||
featureDisable(FEATURE_DYNAMIC_FILTER);
|
||||
#endif
|
||||
|
||||
#if !defined(USE_ADC)
|
||||
featureClear(FEATURE_RSSI_ADC);
|
||||
featureDisable(FEATURE_RSSI_ADC);
|
||||
#endif
|
||||
|
||||
#if defined(USE_BEEPER)
|
||||
|
@ -548,6 +548,14 @@ void writeEEPROM(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
void writeEEPROMWithFeatures(uint32_t features)
|
||||
{
|
||||
featureDisableAll();
|
||||
featureEnable(features);
|
||||
|
||||
writeEEPROM();
|
||||
}
|
||||
|
||||
void resetEEPROM(void)
|
||||
{
|
||||
resetConfigs();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue