mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-17 21:35:44 +03:00
Merge pull request #6623 from mikeller/remove_osd_slave
Removed OSD_SLAVE defines.
This commit is contained in:
commit
fc60cc27e9
9 changed files with 23 additions and 216 deletions
|
@ -61,9 +61,7 @@
|
||||||
#include "sensors/battery.h"
|
#include "sensors/battery.h"
|
||||||
#include "sensors/gyro.h"
|
#include "sensors/gyro.h"
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
pidProfile_t *currentPidProfile;
|
pidProfile_t *currentPidProfile;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef RX_SPI_DEFAULT_PROTOCOL
|
#ifndef RX_SPI_DEFAULT_PROTOCOL
|
||||||
#define RX_SPI_DEFAULT_PROTOCOL 0
|
#define RX_SPI_DEFAULT_PROTOCOL 0
|
||||||
|
@ -89,7 +87,6 @@ PG_RESET_TEMPLATE(systemConfig_t, systemConfig,
|
||||||
.boardIdentifier = TARGET_BOARD_IDENTIFIER
|
.boardIdentifier = TARGET_BOARD_IDENTIFIER
|
||||||
);
|
);
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
uint8_t getCurrentPidProfileIndex(void)
|
uint8_t getCurrentPidProfileIndex(void)
|
||||||
{
|
{
|
||||||
return systemConfig()->pidProfileIndex;
|
return systemConfig()->pidProfileIndex;
|
||||||
|
@ -109,7 +106,6 @@ uint16_t getCurrentMinthrottle(void)
|
||||||
{
|
{
|
||||||
return motorConfig()->minthrottle;
|
return motorConfig()->minthrottle;
|
||||||
}
|
}
|
||||||
#endif // USE_OSD_SLAVE
|
|
||||||
|
|
||||||
void resetConfigs(void)
|
void resetConfigs(void)
|
||||||
{
|
{
|
||||||
|
@ -122,7 +118,6 @@ void resetConfigs(void)
|
||||||
|
|
||||||
static void activateConfig(void)
|
static void activateConfig(void)
|
||||||
{
|
{
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
loadPidProfile();
|
loadPidProfile();
|
||||||
loadControlRateProfile();
|
loadControlRateProfile();
|
||||||
|
|
||||||
|
@ -139,7 +134,6 @@ static void activateConfig(void)
|
||||||
accInitFilters();
|
accInitFilters();
|
||||||
|
|
||||||
imuConfigure(throttleCorrectionConfig()->throttle_correction_angle, throttleCorrectionConfig()->throttle_correction_value);
|
imuConfigure(throttleCorrectionConfig()->throttle_correction_angle, throttleCorrectionConfig()->throttle_correction_value);
|
||||||
#endif // USE_OSD_SLAVE
|
|
||||||
|
|
||||||
#ifdef USE_LED_STRIP
|
#ifdef USE_LED_STRIP
|
||||||
reevaluateLedConfig();
|
reevaluateLedConfig();
|
||||||
|
@ -148,7 +142,7 @@ static void activateConfig(void)
|
||||||
|
|
||||||
static void validateAndFixConfig(void)
|
static void validateAndFixConfig(void)
|
||||||
{
|
{
|
||||||
#if !defined(USE_QUAD_MIXER_ONLY) && !defined(USE_OSD_SLAVE)
|
#if !defined(USE_QUAD_MIXER_ONLY)
|
||||||
// Reset unsupported mixer mode to default.
|
// Reset unsupported mixer mode to default.
|
||||||
// This check will be gone when motor/servo mixers are loaded dynamically
|
// This check will be gone when motor/servo mixers are loaded dynamically
|
||||||
// by configurator as a part of configuration procedure.
|
// by configurator as a part of configuration procedure.
|
||||||
|
@ -177,7 +171,6 @@ static void validateAndFixConfig(void)
|
||||||
featureDisable(FEATURE_GPS);
|
featureDisable(FEATURE_GPS);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
if (systemConfig()->activeRateProfile >= CONTROL_RATE_PROFILE_COUNT) {
|
if (systemConfig()->activeRateProfile >= CONTROL_RATE_PROFILE_COUNT) {
|
||||||
systemConfigMutable()->activeRateProfile = 0;
|
systemConfigMutable()->activeRateProfile = 0;
|
||||||
}
|
}
|
||||||
|
@ -304,7 +297,6 @@ static void validateAndFixConfig(void)
|
||||||
removeModeActivationCondition(BOXGPSRESCUE);
|
removeModeActivationCondition(BOXGPSRESCUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // USE_OSD_SLAVE
|
|
||||||
|
|
||||||
#if defined(USE_ESC_SENSOR)
|
#if defined(USE_ESC_SENSOR)
|
||||||
if (!findSerialPortConfig(FUNCTION_ESC_SENSOR)) {
|
if (!findSerialPortConfig(FUNCTION_ESC_SENSOR)) {
|
||||||
|
@ -409,7 +401,6 @@ static void validateAndFixConfig(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
void validateAndFixGyroConfig(void)
|
void validateAndFixGyroConfig(void)
|
||||||
{
|
{
|
||||||
#ifdef USE_GYRO_DATA_ANALYSE
|
#ifdef USE_GYRO_DATA_ANALYSE
|
||||||
|
@ -511,13 +502,10 @@ void validateAndFixGyroConfig(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // USE_OSD_SLAVE
|
|
||||||
|
|
||||||
bool readEEPROM(void)
|
bool readEEPROM(void)
|
||||||
{
|
{
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
suspendRxSignal();
|
suspendRxSignal();
|
||||||
#endif
|
|
||||||
|
|
||||||
// Sanity check, read flash
|
// Sanity check, read flash
|
||||||
bool success = loadEEPROM();
|
bool success = loadEEPROM();
|
||||||
|
@ -526,9 +514,7 @@ bool readEEPROM(void)
|
||||||
|
|
||||||
activateConfig();
|
activateConfig();
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
resumeRxSignal();
|
resumeRxSignal();
|
||||||
#endif
|
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
@ -537,15 +523,11 @@ void writeEEPROM(void)
|
||||||
{
|
{
|
||||||
validateAndFixConfig();
|
validateAndFixConfig();
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
suspendRxSignal();
|
suspendRxSignal();
|
||||||
#endif
|
|
||||||
|
|
||||||
writeConfigToEEPROM();
|
writeConfigToEEPROM();
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
resumeRxSignal();
|
resumeRxSignal();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void writeEEPROMWithFeatures(uint32_t features)
|
void writeEEPROMWithFeatures(uint32_t features)
|
||||||
|
@ -580,7 +562,6 @@ void saveConfigAndNotify(void)
|
||||||
beeperConfirmationBeeps(1);
|
beeperConfirmationBeeps(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
void changePidProfile(uint8_t pidProfileIndex)
|
void changePidProfile(uint8_t pidProfileIndex)
|
||||||
{
|
{
|
||||||
if (pidProfileIndex < MAX_PROFILE_COUNT) {
|
if (pidProfileIndex < MAX_PROFILE_COUNT) {
|
||||||
|
@ -590,4 +571,3 @@ void changePidProfile(uint8_t pidProfileIndex)
|
||||||
|
|
||||||
beeperConfirmationBeeps(pidProfileIndex + 1);
|
beeperConfirmationBeeps(pidProfileIndex + 1);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
|
@ -127,13 +127,11 @@ void HardFault_Handler(void)
|
||||||
{
|
{
|
||||||
LED2_ON;
|
LED2_ON;
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
// fall out of the sky
|
// fall out of the sky
|
||||||
uint8_t requiredStateForMotors = SYSTEM_STATE_CONFIG_LOADED | SYSTEM_STATE_MOTORS_READY;
|
uint8_t requiredStateForMotors = SYSTEM_STATE_CONFIG_LOADED | SYSTEM_STATE_MOTORS_READY;
|
||||||
if ((systemState & requiredStateForMotors) == requiredStateForMotors) {
|
if ((systemState & requiredStateForMotors) == requiredStateForMotors) {
|
||||||
stopMotors();
|
stopMotors();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_TRANSPONDER
|
#ifdef USE_TRANSPONDER
|
||||||
// prevent IR LEDs from burning out.
|
// prevent IR LEDs from burning out.
|
||||||
|
|
|
@ -551,11 +551,11 @@ void init(void)
|
||||||
cmsInit();
|
cmsInit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(USE_OSD) || (defined(USE_MSP_DISPLAYPORT) && defined(USE_CMS)) || defined(USE_OSD_SLAVE))
|
#if (defined(USE_OSD) || (defined(USE_MSP_DISPLAYPORT) && defined(USE_CMS)))
|
||||||
displayPort_t *osdDisplayPort = NULL;
|
displayPort_t *osdDisplayPort = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_OSD) && !defined(USE_OSD_SLAVE)
|
#if defined(USE_OSD)
|
||||||
//The OSD need to be initialised after GYRO to avoid GYRO initialisation failure on some targets
|
//The OSD need to be initialised after GYRO to avoid GYRO initialisation failure on some targets
|
||||||
|
|
||||||
if (featureIsEnabled(FEATURE_OSD)) {
|
if (featureIsEnabled(FEATURE_OSD)) {
|
||||||
|
@ -570,15 +570,6 @@ void init(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_OSD_SLAVE) && !defined(USE_OSD)
|
|
||||||
#if defined(USE_MAX7456)
|
|
||||||
// If there is a max7456 chip for the OSD then use it
|
|
||||||
osdDisplayPort = max7456DisplayPortInit(vcdProfile());
|
|
||||||
// osdInit will register with CMS by itself.
|
|
||||||
osdSlaveInit(osdDisplayPort);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(USE_CMS) && defined(USE_MSP_DISPLAYPORT)
|
#if defined(USE_CMS) && defined(USE_MSP_DISPLAYPORT)
|
||||||
// If BFOSD is not active, then register MSP_DISPLAYPORT as a CMS device.
|
// If BFOSD is not active, then register MSP_DISPLAYPORT as a CMS device.
|
||||||
if (!osdDisplayPort)
|
if (!osdDisplayPort)
|
||||||
|
|
|
@ -119,16 +119,6 @@ static void taskMain(timeUs_t currentTimeUs)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
static bool taskSerialCheck(timeUs_t currentTimeUs, timeDelta_t currentDeltaTimeUs)
|
|
||||||
{
|
|
||||||
UNUSED(currentTimeUs);
|
|
||||||
UNUSED(currentDeltaTimeUs);
|
|
||||||
|
|
||||||
return mspSerialWaiting();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void taskHandleSerial(timeUs_t currentTimeUs)
|
static void taskHandleSerial(timeUs_t currentTimeUs)
|
||||||
{
|
{
|
||||||
UNUSED(currentTimeUs);
|
UNUSED(currentTimeUs);
|
||||||
|
@ -145,11 +135,7 @@ static void taskHandleSerial(timeUs_t currentTimeUs)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifndef OSD_SLAVE
|
|
||||||
bool evaluateMspData = ARMING_FLAG(ARMED) ? MSP_SKIP_NON_MSP_DATA : MSP_EVALUATE_NON_MSP_DATA;
|
bool evaluateMspData = ARMING_FLAG(ARMED) ? MSP_SKIP_NON_MSP_DATA : MSP_EVALUATE_NON_MSP_DATA;
|
||||||
#else
|
|
||||||
bool evaluateMspData = osdSlaveIsLocked ? MSP_SKIP_NON_MSP_DATA : MSP_EVALUATE_NON_MSP_DATA;;
|
|
||||||
#endif
|
|
||||||
mspSerialProcess(evaluateMspData, mspFcProcessCommand, mspFcProcessReply);
|
mspSerialProcess(evaluateMspData, mspFcProcessCommand, mspFcProcessReply);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,7 +149,6 @@ static void taskBatteryAlerts(timeUs_t currentTimeUs)
|
||||||
batteryUpdateAlarms();
|
batteryUpdateAlarms();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
static void taskUpdateAccelerometer(timeUs_t currentTimeUs)
|
static void taskUpdateAccelerometer(timeUs_t currentTimeUs)
|
||||||
{
|
{
|
||||||
accUpdate(currentTimeUs, &accelerometerConfigMutable()->accelerometerTrims);
|
accUpdate(currentTimeUs, &accelerometerConfigMutable()->accelerometerTrims);
|
||||||
|
@ -190,7 +175,6 @@ static void taskUpdateRxMain(timeUs_t currentTimeUs)
|
||||||
updateRcCommands();
|
updateRcCommands();
|
||||||
updateArmingStatus();
|
updateArmingStatus();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_BARO
|
#ifdef USE_BARO
|
||||||
static void taskUpdateBaro(timeUs_t currentTimeUs)
|
static void taskUpdateBaro(timeUs_t currentTimeUs)
|
||||||
|
@ -248,11 +232,7 @@ void fcTasksInit(void)
|
||||||
setTaskEnabled(TASK_BATTERY_VOLTAGE, useBatteryVoltage);
|
setTaskEnabled(TASK_BATTERY_VOLTAGE, useBatteryVoltage);
|
||||||
const bool useBatteryCurrent = batteryConfig()->currentMeterSource != CURRENT_METER_NONE;
|
const bool useBatteryCurrent = batteryConfig()->currentMeterSource != CURRENT_METER_NONE;
|
||||||
setTaskEnabled(TASK_BATTERY_CURRENT, useBatteryCurrent);
|
setTaskEnabled(TASK_BATTERY_CURRENT, useBatteryCurrent);
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
const bool useBatteryAlerts = batteryConfig()->useVBatAlerts || batteryConfig()->useConsumptionAlerts;
|
|
||||||
#else
|
|
||||||
const bool useBatteryAlerts = batteryConfig()->useVBatAlerts || batteryConfig()->useConsumptionAlerts || featureIsEnabled(FEATURE_OSD);
|
const bool useBatteryAlerts = batteryConfig()->useVBatAlerts || batteryConfig()->useConsumptionAlerts || featureIsEnabled(FEATURE_OSD);
|
||||||
#endif
|
|
||||||
setTaskEnabled(TASK_BATTERY_ALERTS, (useBatteryVoltage || useBatteryCurrent) && useBatteryAlerts);
|
setTaskEnabled(TASK_BATTERY_ALERTS, (useBatteryVoltage || useBatteryCurrent) && useBatteryAlerts);
|
||||||
|
|
||||||
#ifdef USE_TRANSPONDER
|
#ifdef USE_TRANSPONDER
|
||||||
|
@ -263,9 +243,6 @@ void fcTasksInit(void)
|
||||||
setTaskEnabled(TASK_STACK_CHECK, true);
|
setTaskEnabled(TASK_STACK_CHECK, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
setTaskEnabled(TASK_OSD_SLAVE, osdSlaveInitialized());
|
|
||||||
#else
|
|
||||||
if (sensors(SENSOR_GYRO)) {
|
if (sensors(SENSOR_GYRO)) {
|
||||||
rescheduleTask(TASK_GYROPID, gyro.targetLooptime);
|
rescheduleTask(TASK_GYROPID, gyro.targetLooptime);
|
||||||
setTaskEnabled(TASK_GYROPID, true);
|
setTaskEnabled(TASK_GYROPID, true);
|
||||||
|
@ -284,21 +261,27 @@ void fcTasksInit(void)
|
||||||
#ifdef USE_BEEPER
|
#ifdef USE_BEEPER
|
||||||
setTaskEnabled(TASK_BEEPER, true);
|
setTaskEnabled(TASK_BEEPER, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_GPS
|
#ifdef USE_GPS
|
||||||
setTaskEnabled(TASK_GPS, featureIsEnabled(FEATURE_GPS));
|
setTaskEnabled(TASK_GPS, featureIsEnabled(FEATURE_GPS));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_MAG
|
#ifdef USE_MAG
|
||||||
setTaskEnabled(TASK_COMPASS, sensors(SENSOR_MAG));
|
setTaskEnabled(TASK_COMPASS, sensors(SENSOR_MAG));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_BARO
|
#ifdef USE_BARO
|
||||||
setTaskEnabled(TASK_BARO, sensors(SENSOR_BARO));
|
setTaskEnabled(TASK_BARO, sensors(SENSOR_BARO));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_BARO) || defined(USE_GPS)
|
#if defined(USE_BARO) || defined(USE_GPS)
|
||||||
setTaskEnabled(TASK_ALTITUDE, sensors(SENSOR_BARO) || featureIsEnabled(FEATURE_GPS));
|
setTaskEnabled(TASK_ALTITUDE, sensors(SENSOR_BARO) || featureIsEnabled(FEATURE_GPS));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_DASHBOARD
|
#ifdef USE_DASHBOARD
|
||||||
setTaskEnabled(TASK_DASHBOARD, featureIsEnabled(FEATURE_DASHBOARD));
|
setTaskEnabled(TASK_DASHBOARD, featureIsEnabled(FEATURE_DASHBOARD));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_TELEMETRY
|
#ifdef USE_TELEMETRY
|
||||||
if (featureIsEnabled(FEATURE_TELEMETRY)) {
|
if (featureIsEnabled(FEATURE_TELEMETRY)) {
|
||||||
setTaskEnabled(TASK_TELEMETRY, true);
|
setTaskEnabled(TASK_TELEMETRY, true);
|
||||||
|
@ -311,27 +294,35 @@ void fcTasksInit(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_LED_STRIP
|
#ifdef USE_LED_STRIP
|
||||||
setTaskEnabled(TASK_LEDSTRIP, featureIsEnabled(FEATURE_LED_STRIP));
|
setTaskEnabled(TASK_LEDSTRIP, featureIsEnabled(FEATURE_LED_STRIP));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_TRANSPONDER
|
#ifdef USE_TRANSPONDER
|
||||||
setTaskEnabled(TASK_TRANSPONDER, featureIsEnabled(FEATURE_TRANSPONDER));
|
setTaskEnabled(TASK_TRANSPONDER, featureIsEnabled(FEATURE_TRANSPONDER));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_OSD
|
#ifdef USE_OSD
|
||||||
setTaskEnabled(TASK_OSD, featureIsEnabled(FEATURE_OSD) && osdInitialized());
|
setTaskEnabled(TASK_OSD, featureIsEnabled(FEATURE_OSD) && osdInitialized());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_BST
|
#ifdef USE_BST
|
||||||
setTaskEnabled(TASK_BST_MASTER_PROCESS, true);
|
setTaskEnabled(TASK_BST_MASTER_PROCESS, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_ESC_SENSOR
|
#ifdef USE_ESC_SENSOR
|
||||||
setTaskEnabled(TASK_ESC_SENSOR, featureIsEnabled(FEATURE_ESC_SENSOR));
|
setTaskEnabled(TASK_ESC_SENSOR, featureIsEnabled(FEATURE_ESC_SENSOR));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_ADC_INTERNAL
|
#ifdef USE_ADC_INTERNAL
|
||||||
setTaskEnabled(TASK_ADC_INTERNAL, true);
|
setTaskEnabled(TASK_ADC_INTERNAL, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_PINIOBOX
|
#ifdef USE_PINIOBOX
|
||||||
setTaskEnabled(TASK_PINIOBOX, true);
|
setTaskEnabled(TASK_PINIOBOX, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_CMS
|
#ifdef USE_CMS
|
||||||
#ifdef USE_MSP_DISPLAYPORT
|
#ifdef USE_MSP_DISPLAYPORT
|
||||||
setTaskEnabled(TASK_CMS, true);
|
setTaskEnabled(TASK_CMS, true);
|
||||||
|
@ -339,18 +330,20 @@ void fcTasksInit(void)
|
||||||
setTaskEnabled(TASK_CMS, featureIsEnabled(FEATURE_OSD) || featureIsEnabled(FEATURE_DASHBOARD));
|
setTaskEnabled(TASK_CMS, featureIsEnabled(FEATURE_OSD) || featureIsEnabled(FEATURE_DASHBOARD));
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_VTX_CONTROL
|
#ifdef USE_VTX_CONTROL
|
||||||
#if defined(USE_VTX_RTC6705) || defined(USE_VTX_SMARTAUDIO) || defined(USE_VTX_TRAMP)
|
#if defined(USE_VTX_RTC6705) || defined(USE_VTX_SMARTAUDIO) || defined(USE_VTX_TRAMP)
|
||||||
setTaskEnabled(TASK_VTXCTRL, true);
|
setTaskEnabled(TASK_VTXCTRL, true);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_CAMERA_CONTROL
|
#ifdef USE_CAMERA_CONTROL
|
||||||
setTaskEnabled(TASK_CAMCTRL, true);
|
setTaskEnabled(TASK_CAMCTRL, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_RCDEVICE
|
#ifdef USE_RCDEVICE
|
||||||
setTaskEnabled(TASK_RCDEVICE, rcdeviceIsEnabled());
|
setTaskEnabled(TASK_RCDEVICE, rcdeviceIsEnabled());
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cfTask_t cfTasks[TASK_COUNT] = {
|
cfTask_t cfTasks[TASK_COUNT] = {
|
||||||
|
@ -373,14 +366,8 @@ cfTask_t cfTasks[TASK_COUNT] = {
|
||||||
[TASK_SERIAL] = {
|
[TASK_SERIAL] = {
|
||||||
.taskName = "SERIAL",
|
.taskName = "SERIAL",
|
||||||
.taskFunc = taskHandleSerial,
|
.taskFunc = taskHandleSerial,
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
.checkFunc = taskSerialCheck,
|
|
||||||
.desiredPeriod = TASK_PERIOD_HZ(100),
|
|
||||||
.staticPriority = TASK_PRIORITY_REALTIME,
|
|
||||||
#else
|
|
||||||
.desiredPeriod = TASK_PERIOD_HZ(100), // 100 Hz should be enough to flush up to 115 bytes @ 115200 baud
|
.desiredPeriod = TASK_PERIOD_HZ(100), // 100 Hz should be enough to flush up to 115 bytes @ 115200 baud
|
||||||
.staticPriority = TASK_PRIORITY_LOW,
|
.staticPriority = TASK_PRIORITY_LOW,
|
||||||
#endif
|
|
||||||
},
|
},
|
||||||
|
|
||||||
[TASK_BATTERY_ALERTS] = {
|
[TASK_BATTERY_ALERTS] = {
|
||||||
|
@ -421,17 +408,6 @@ cfTask_t cfTasks[TASK_COUNT] = {
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
[TASK_OSD_SLAVE] = {
|
|
||||||
.taskName = "OSD_SLAVE",
|
|
||||||
.checkFunc = osdSlaveCheck,
|
|
||||||
.taskFunc = osdSlaveUpdate,
|
|
||||||
.desiredPeriod = TASK_PERIOD_HZ(60), // 60 Hz
|
|
||||||
.staticPriority = TASK_PRIORITY_HIGH,
|
|
||||||
},
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
[TASK_GYROPID] = {
|
[TASK_GYROPID] = {
|
||||||
.taskName = "PID",
|
.taskName = "PID",
|
||||||
.subTaskName = "GYRO",
|
.subTaskName = "GYRO",
|
||||||
|
@ -621,5 +597,4 @@ cfTask_t cfTasks[TASK_COUNT] = {
|
||||||
.staticPriority = TASK_PRIORITY_IDLE
|
.staticPriority = TASK_PRIORITY_IDLE
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -147,9 +147,7 @@ typedef struct pidProfile_s {
|
||||||
uint8_t abs_control_error_limit; // Limit to the accumulated error
|
uint8_t abs_control_error_limit; // Limit to the accumulated error
|
||||||
} pidProfile_t;
|
} pidProfile_t;
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
PG_DECLARE_ARRAY(pidProfile_t, MAX_PROFILE_COUNT, pidProfiles);
|
PG_DECLARE_ARRAY(pidProfile_t, MAX_PROFILE_COUNT, pidProfiles);
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct pidConfig_s {
|
typedef struct pidConfig_s {
|
||||||
uint8_t pid_process_denom; // Processing denominator for PID controller vs gyro sampling rate
|
uint8_t pid_process_denom; // Processing denominator for PID controller vs gyro sampling rate
|
||||||
|
|
|
@ -142,8 +142,6 @@ enum {
|
||||||
|
|
||||||
static uint8_t rebootMode;
|
static uint8_t rebootMode;
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MSP_SDCARD_STATE_NOT_PRESENT = 0,
|
MSP_SDCARD_STATE_NOT_PRESENT = 0,
|
||||||
MSP_SDCARD_STATE_FATAL = 1,
|
MSP_SDCARD_STATE_FATAL = 1,
|
||||||
|
@ -162,7 +160,6 @@ typedef enum {
|
||||||
} mspFlashFsFlags_e;
|
} mspFlashFsFlags_e;
|
||||||
|
|
||||||
#define RATEPROFILE_MASK (1 << 7)
|
#define RATEPROFILE_MASK (1 << 7)
|
||||||
#endif //USE_OSD_SLAVE
|
|
||||||
|
|
||||||
#define RTC_NOT_SUPPORTED 0xff
|
#define RTC_NOT_SUPPORTED 0xff
|
||||||
|
|
||||||
|
@ -242,9 +239,7 @@ static void mspRebootFn(serialPort_t *serialPort)
|
||||||
{
|
{
|
||||||
UNUSED(serialPort);
|
UNUSED(serialPort);
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
stopPwmAllMotors();
|
stopPwmAllMotors();
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (rebootMode) {
|
switch (rebootMode) {
|
||||||
case MSP_REBOOT_FIRMWARE:
|
case MSP_REBOOT_FIRMWARE:
|
||||||
|
@ -270,7 +265,6 @@ static void mspRebootFn(serialPort_t *serialPort)
|
||||||
while (true) ;
|
while (true) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
static void serializeSDCardSummaryReply(sbuf_t *dst)
|
static void serializeSDCardSummaryReply(sbuf_t *dst)
|
||||||
{
|
{
|
||||||
#ifdef USE_SDCARD
|
#ifdef USE_SDCARD
|
||||||
|
@ -434,7 +428,6 @@ static void serializeDataflashReadReply(sbuf_t *dst, uint32_t address, const uin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // USE_FLASHFS
|
#endif // USE_FLASHFS
|
||||||
#endif // USE_OSD_SLAVE
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns true if the command was processd, false otherwise.
|
* Returns true if the command was processd, false otherwise.
|
||||||
|
@ -469,14 +462,10 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce
|
||||||
#else
|
#else
|
||||||
sbufWriteU16(dst, 0); // No other build targets currently have hardware revision detection.
|
sbufWriteU16(dst, 0); // No other build targets currently have hardware revision detection.
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
sbufWriteU8(dst, 1); // 1 == OSD
|
|
||||||
#else
|
|
||||||
#if defined(USE_OSD) && defined(USE_MAX7456)
|
#if defined(USE_OSD) && defined(USE_MAX7456)
|
||||||
sbufWriteU8(dst, 2); // 2 == FC with OSD
|
sbufWriteU8(dst, 2); // 2 == FC with OSD
|
||||||
#else
|
#else
|
||||||
sbufWriteU8(dst, 0); // 0 == FC
|
sbufWriteU8(dst, 0); // 0 == FC
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
// Board communication capabilities (uint8)
|
// Board communication capabilities (uint8)
|
||||||
// Bit 0: 1 iff the board has VCP
|
// Bit 0: 1 iff the board has VCP
|
||||||
|
@ -523,11 +512,7 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce
|
||||||
case MSP_ANALOG:
|
case MSP_ANALOG:
|
||||||
sbufWriteU8(dst, (uint8_t)constrain(getBatteryVoltage(), 0, 255));
|
sbufWriteU8(dst, (uint8_t)constrain(getBatteryVoltage(), 0, 255));
|
||||||
sbufWriteU16(dst, (uint16_t)constrain(getMAhDrawn(), 0, 0xFFFF)); // milliamp hours drawn from battery
|
sbufWriteU16(dst, (uint16_t)constrain(getMAhDrawn(), 0, 0xFFFF)); // milliamp hours drawn from battery
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
sbufWriteU16(dst, 0); // rssi
|
|
||||||
#else
|
|
||||||
sbufWriteU16(dst, getRssi());
|
sbufWriteU16(dst, getRssi());
|
||||||
#endif
|
|
||||||
sbufWriteU16(dst, (int16_t)constrain(getAmperage(), -0x8000, 0x7FFF)); // send current in 0.01 A steps, range is -320A to 320A
|
sbufWriteU16(dst, (int16_t)constrain(getAmperage(), -0x8000, 0x7FFF)); // send current in 0.01 A steps, range is -320A to 320A
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -699,7 +684,7 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce
|
||||||
|
|
||||||
case MSP_OSD_CONFIG: {
|
case MSP_OSD_CONFIG: {
|
||||||
#define OSD_FLAGS_OSD_FEATURE (1 << 0)
|
#define OSD_FLAGS_OSD_FEATURE (1 << 0)
|
||||||
#define OSD_FLAGS_OSD_SLAVE (1 << 1)
|
//#define OSD_FLAGS_OSD_SLAVE (1 << 1)
|
||||||
#define OSD_FLAGS_RESERVED_1 (1 << 2)
|
#define OSD_FLAGS_RESERVED_1 (1 << 2)
|
||||||
#define OSD_FLAGS_RESERVED_2 (1 << 3)
|
#define OSD_FLAGS_RESERVED_2 (1 << 3)
|
||||||
#define OSD_FLAGS_OSD_HARDWARE_MAX_7456 (1 << 4)
|
#define OSD_FLAGS_OSD_HARDWARE_MAX_7456 (1 << 4)
|
||||||
|
@ -708,9 +693,6 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce
|
||||||
#if defined(USE_OSD)
|
#if defined(USE_OSD)
|
||||||
osdFlags |= OSD_FLAGS_OSD_FEATURE;
|
osdFlags |= OSD_FLAGS_OSD_FEATURE;
|
||||||
#endif
|
#endif
|
||||||
#if defined(USE_OSD_SLAVE)
|
|
||||||
osdFlags |= OSD_FLAGS_OSD_SLAVE;
|
|
||||||
#endif
|
|
||||||
#ifdef USE_MAX7456
|
#ifdef USE_MAX7456
|
||||||
osdFlags |= OSD_FLAGS_OSD_HARDWARE_MAX_7456;
|
osdFlags |= OSD_FLAGS_OSD_HARDWARE_MAX_7456;
|
||||||
#endif
|
#endif
|
||||||
|
@ -769,38 +751,6 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst)
|
|
||||||
{
|
|
||||||
switch (cmdMSP) {
|
|
||||||
case MSP_STATUS_EX:
|
|
||||||
case MSP_STATUS:
|
|
||||||
sbufWriteU16(dst, getTaskDeltaTime(TASK_SERIAL));
|
|
||||||
#ifdef USE_I2C
|
|
||||||
sbufWriteU16(dst, i2cGetErrorCounter());
|
|
||||||
#else
|
|
||||||
sbufWriteU16(dst, 0);
|
|
||||||
#endif
|
|
||||||
sbufWriteU16(dst, 0); // sensors
|
|
||||||
sbufWriteU32(dst, 0); // flight modes
|
|
||||||
sbufWriteU8(dst, 0); // profile
|
|
||||||
sbufWriteU16(dst, constrain(averageSystemLoadPercent, 0, 100));
|
|
||||||
if (cmdMSP == MSP_STATUS_EX) {
|
|
||||||
sbufWriteU8(dst, 1); // max profiles
|
|
||||||
sbufWriteU8(dst, 0); // control rate profile
|
|
||||||
} else {
|
|
||||||
sbufWriteU16(dst, 0); // gyro cycle time
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst)
|
static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst)
|
||||||
{
|
{
|
||||||
bool unsupportedCommand = false;
|
bool unsupportedCommand = false;
|
||||||
|
@ -1435,16 +1385,11 @@ static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst)
|
||||||
}
|
}
|
||||||
return !unsupportedCommand;
|
return !unsupportedCommand;
|
||||||
}
|
}
|
||||||
#endif // USE_OSD_SLAVE
|
|
||||||
|
|
||||||
static mspResult_e mspFcProcessOutCommandWithArg(uint8_t cmdMSP, sbuf_t *src, sbuf_t *dst, mspPostProcessFnPtr *mspPostProcessFn)
|
static mspResult_e mspFcProcessOutCommandWithArg(uint8_t cmdMSP, sbuf_t *src, sbuf_t *dst, mspPostProcessFnPtr *mspPostProcessFn)
|
||||||
{
|
{
|
||||||
#if defined(USE_OSD_SLAVE)
|
|
||||||
UNUSED(dst);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (cmdMSP) {
|
switch (cmdMSP) {
|
||||||
#if !defined(USE_OSD_SLAVE)
|
|
||||||
case MSP_BOXNAMES:
|
case MSP_BOXNAMES:
|
||||||
{
|
{
|
||||||
const int page = sbufBytesRemaining(src) ? sbufReadU8(src) : 0;
|
const int page = sbufBytesRemaining(src) ? sbufReadU8(src) : 0;
|
||||||
|
@ -1457,7 +1402,6 @@ static mspResult_e mspFcProcessOutCommandWithArg(uint8_t cmdMSP, sbuf_t *src, sb
|
||||||
serializeBoxReply(dst, page, &serializeBoxPermanentIdFn);
|
serializeBoxReply(dst, page, &serializeBoxPermanentIdFn);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
case MSP_REBOOT:
|
case MSP_REBOOT:
|
||||||
if (sbufBytesRemaining(src)) {
|
if (sbufBytesRemaining(src)) {
|
||||||
rebootMode = sbufReadU8(src);
|
rebootMode = sbufReadU8(src);
|
||||||
|
@ -1555,34 +1499,6 @@ static void mspFcDataFlashReadCommand(sbuf_t *dst, sbuf_t *src)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
|
|
||||||
{
|
|
||||||
UNUSED(cmdMSP);
|
|
||||||
UNUSED(src);
|
|
||||||
|
|
||||||
switch(cmdMSP) {
|
|
||||||
case MSP_RESET_CONF:
|
|
||||||
resetEEPROM();
|
|
||||||
readEEPROM();
|
|
||||||
break;
|
|
||||||
case MSP_EEPROM_WRITE:
|
|
||||||
if (featureMaskIsCopied) {
|
|
||||||
writeEEPROMWithFeatures(featureMaskCopy);
|
|
||||||
} else {
|
|
||||||
writeEEPROM();
|
|
||||||
}
|
|
||||||
readEEPROM();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// we do not know how to handle the (valid) message, indicate error MSP $M!
|
|
||||||
return MSP_RESULT_ERROR;
|
|
||||||
}
|
|
||||||
return MSP_RESULT_ACK;
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
|
static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
@ -2401,7 +2317,6 @@ static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
|
||||||
}
|
}
|
||||||
return MSP_RESULT_ACK;
|
return MSP_RESULT_ACK;
|
||||||
}
|
}
|
||||||
#endif // USE_OSD_SLAVE
|
|
||||||
|
|
||||||
static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src, mspPostProcessFnPtr *mspPostProcessFn)
|
static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src, mspPostProcessFnPtr *mspPostProcessFn)
|
||||||
{
|
{
|
||||||
|
@ -2505,7 +2420,7 @@ static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src, mspPos
|
||||||
batteryConfigMutable()->currentMeterSource = sbufReadU8(src);
|
batteryConfigMutable()->currentMeterSource = sbufReadU8(src);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if defined(USE_OSD) || defined (USE_OSD_SLAVE)
|
#if defined(USE_OSD)
|
||||||
case MSP_SET_OSD_CONFIG:
|
case MSP_SET_OSD_CONFIG:
|
||||||
{
|
{
|
||||||
const uint8_t addr = sbufReadU8(src);
|
const uint8_t addr = sbufReadU8(src);
|
||||||
|
@ -2579,7 +2494,7 @@ static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src, mspPos
|
||||||
#else
|
#else
|
||||||
return MSP_RESULT_ERROR;
|
return MSP_RESULT_ERROR;
|
||||||
#endif
|
#endif
|
||||||
#endif // OSD || USE_OSD_SLAVE
|
#endif // OSD
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return mspProcessInCommand(cmdMSP, src);
|
return mspProcessInCommand(cmdMSP, src);
|
||||||
|
@ -2628,7 +2543,6 @@ void mspFcProcessReply(mspPacket_t *reply)
|
||||||
UNUSED(src); // potentially unused depending on compile options.
|
UNUSED(src); // potentially unused depending on compile options.
|
||||||
|
|
||||||
switch (reply->cmd) {
|
switch (reply->cmd) {
|
||||||
#ifndef OSD_SLAVE
|
|
||||||
case MSP_ANALOG:
|
case MSP_ANALOG:
|
||||||
{
|
{
|
||||||
uint8_t batteryVoltage = sbufReadU8(src);
|
uint8_t batteryVoltage = sbufReadU8(src);
|
||||||
|
@ -2646,50 +2560,10 @@ void mspFcProcessReply(mspPacket_t *reply)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
case MSP_DISPLAYPORT:
|
|
||||||
{
|
|
||||||
osdSlaveIsLocked = true; // lock it as soon as a MSP_DISPLAYPORT message is received to prevent accidental CLI/DFU mode.
|
|
||||||
|
|
||||||
const int subCmd = sbufReadU8(src);
|
|
||||||
|
|
||||||
switch (subCmd) {
|
|
||||||
case 0: // HEARTBEAT
|
|
||||||
osdSlaveHeartbeat();
|
|
||||||
break;
|
|
||||||
case 1: // RELEASE
|
|
||||||
break;
|
|
||||||
case 2: // CLEAR
|
|
||||||
osdSlaveClearScreen();
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
#define MSP_OSD_MAX_STRING_LENGTH 30 // FIXME move this
|
|
||||||
const uint8_t y = sbufReadU8(src); // row
|
|
||||||
const uint8_t x = sbufReadU8(src); // column
|
|
||||||
sbufReadU8(src); // reserved
|
|
||||||
char buf[MSP_OSD_MAX_STRING_LENGTH + 1];
|
|
||||||
const int len = MIN(sbufBytesRemaining(src), MSP_OSD_MAX_STRING_LENGTH);
|
|
||||||
sbufReadData(src, &buf, len);
|
|
||||||
buf[len] = 0;
|
|
||||||
osdSlaveWrite(x, y, buf);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
osdSlaveDrawScreen();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mspInit(void)
|
void mspInit(void)
|
||||||
{
|
{
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
initActiveBoxIds();
|
initActiveBoxIds();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,6 @@
|
||||||
#include "pg/piniobox.h"
|
#include "pg/piniobox.h"
|
||||||
|
|
||||||
|
|
||||||
#ifndef USE_OSD_SLAVE
|
|
||||||
// permanent IDs must uniquely identify BOX meaning, DO NOT REUSE THEM!
|
// permanent IDs must uniquely identify BOX meaning, DO NOT REUSE THEM!
|
||||||
static const box_t boxes[CHECKBOX_ITEM_COUNT] = {
|
static const box_t boxes[CHECKBOX_ITEM_COUNT] = {
|
||||||
{ BOXARM, "ARM", 0 },
|
{ BOXARM, "ARM", 0 },
|
||||||
|
@ -343,4 +342,3 @@ int packFlightModeFlags(boxBitmask_t *mspFlightModeFlags)
|
||||||
// return count of used bits
|
// return count of used bits
|
||||||
return mspBoxIdx;
|
return mspBoxIdx;
|
||||||
}
|
}
|
||||||
#endif // USE_OSD_SLAVE
|
|
||||||
|
|
|
@ -166,11 +166,7 @@ static const displayPortVTable_t max7456VTable = {
|
||||||
displayPort_t *max7456DisplayPortInit(const vcdProfile_t *vcdProfile)
|
displayPort_t *max7456DisplayPortInit(const vcdProfile_t *vcdProfile)
|
||||||
{
|
{
|
||||||
if (
|
if (
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
!max7456Init(max7456Config(), vcdProfile, false)
|
|
||||||
#else
|
|
||||||
!max7456Init(max7456Config(), vcdProfile, systemConfig()->cpu_overclock)
|
!max7456Init(max7456Config(), vcdProfile, systemConfig()->cpu_overclock)
|
||||||
#endif
|
|
||||||
) {
|
) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,9 +104,6 @@ typedef enum {
|
||||||
#ifdef USE_OSD
|
#ifdef USE_OSD
|
||||||
TASK_OSD,
|
TASK_OSD,
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_OSD_SLAVE
|
|
||||||
TASK_OSD_SLAVE,
|
|
||||||
#endif
|
|
||||||
#ifdef USE_BST
|
#ifdef USE_BST
|
||||||
TASK_BST_MASTER_PROCESS,
|
TASK_BST_MASTER_PROCESS,
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue