From a983f4b3254d7a71a3213a93631b4e1de287e0d4 Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Mon, 25 Sep 2017 07:04:13 +0100 Subject: [PATCH] Tidy use of USE_OSD_SLAVE --- src/main/fc/config.c | 6 +- src/main/fc/config.h | 17 +- src/main/fc/fc_init.c | 6 +- src/main/fc/fc_msp.c | 94 +++++------ src/main/fc/fc_msp.h | 3 +- src/main/fc/fc_tasks.c | 249 ++++++++++++---------------- src/main/fc/fc_tasks.h | 1 - src/main/flight/pid.h | 5 +- src/main/osd_slave/osd_slave_init.c | 4 +- 9 files changed, 166 insertions(+), 219 deletions(-) diff --git a/src/main/fc/config.c b/src/main/fc/config.c index 2e67640b51..8ea883224d 100755 --- a/src/main/fc/config.c +++ b/src/main/fc/config.c @@ -279,7 +279,7 @@ uint16_t getCurrentMinthrottle(void) { return motorConfig()->minthrottle; } -#endif +#endif // USE_OSD_SLAVE void resetConfigs(void) { @@ -319,7 +319,7 @@ void activateConfig(void) setAccelerationFilter(accelerometerConfig()->acc_lpf_hz); imuConfigure(throttleCorrectionConfig()->throttle_correction_angle); -#endif +#endif // USE_OSD_SLAVE } void validateAndFixConfig(void) @@ -592,7 +592,7 @@ void validateAndFixGyroConfig(void) } } } -#endif +#endif // USE_OSD_SLAVE void readEEPROM(void) { diff --git a/src/main/fc/config.h b/src/main/fc/config.h index d4460900fb..f5de9fd5f7 100644 --- a/src/main/fc/config.h +++ b/src/main/fc/config.h @@ -63,7 +63,13 @@ typedef struct pilotConfig_s { char name[MAX_NAME_LENGTH + 1]; } pilotConfig_t; -#ifndef USE_OSD_SLAVE +#ifdef USE_OSD_SLAVE +typedef struct systemConfig_s { + uint8_t debug_mode; + uint8_t task_statistics; + char boardIdentifier[sizeof(TARGET_BOARD_IDENTIFIER) + 1]; +} systemConfig_t; +#else typedef struct systemConfig_s { uint8_t pidProfileIndex; uint8_t activeRateProfile; @@ -75,15 +81,8 @@ typedef struct systemConfig_s { uint8_t powerOnArmingGraceTime; // in seconds char boardIdentifier[sizeof(TARGET_BOARD_IDENTIFIER) + 1]; } systemConfig_t; -#endif +#endif // USE_OSD_SLAVE -#ifdef USE_OSD_SLAVE -typedef struct systemConfig_s { - uint8_t debug_mode; - uint8_t task_statistics; - char boardIdentifier[sizeof(TARGET_BOARD_IDENTIFIER) + 1]; -} systemConfig_t; -#endif PG_DECLARE(pilotConfig_t, pilotConfig); PG_DECLARE(systemConfig_t, systemConfig); diff --git a/src/main/fc/fc_init.c b/src/main/fc/fc_init.c index 011d5b317f..1071c5001c 100644 --- a/src/main/fc/fc_init.c +++ b/src/main/fc/fc_init.c @@ -532,7 +532,7 @@ void init(void) imuInit(); - mspFcInit(); + mspInit(); mspSerialInit(); #ifdef USE_CLI @@ -724,11 +724,7 @@ void init(void) setArmingDisabled(ARMING_DISABLED_BOOT_GRACE_TIME); -#ifdef USE_OSD_SLAVE - osdSlaveTasksInit(); -#else fcTasksInit(); -#endif systemState |= SYSTEM_STATE_READY; } diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c index 8869842cb8..51872632b8 100644 --- a/src/main/fc/fc_msp.c +++ b/src/main/fc/fc_msp.c @@ -675,7 +675,7 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce } #ifdef USE_OSD_SLAVE -static bool mspOsdSlaveProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst) +static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst) { switch (cmdMSP) { case MSP_STATUS_EX: @@ -703,10 +703,10 @@ static bool mspOsdSlaveProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst) } return true; } -#endif -#ifndef USE_OSD_SLAVE -static bool mspFcProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst) +#else + +static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst) { switch (cmdMSP) { case MSP_STATUS_EX: @@ -743,7 +743,7 @@ static bool mspFcProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst) // 1 byte, flag count sbufWriteU8(dst, NUM_ARMING_DISABLE_FLAGS); // 4 bytes, flags - uint32_t armingDisableFlags = getArmingDisableFlags(); + const uint32_t armingDisableFlags = getArmingDisableFlags(); sbufWriteU32(dst, armingDisableFlags); } break; @@ -1246,7 +1246,7 @@ static mspResult_e mspFcProcessOutCommandWithArg(uint8_t cmdMSP, sbuf_t *arg, sb } return MSP_RESULT_ACK; } -#endif +#endif // USE_OSD_SLAVE #ifdef GPS static void mspFcWpCommand(sbuf_t *dst, sbuf_t *src) @@ -1295,15 +1295,16 @@ static void mspFcDataFlashReadCommand(sbuf_t *dst, sbuf_t *src) #endif #ifdef USE_OSD_SLAVE -static mspResult_e mspOsdSlaveProcessInCommand(uint8_t cmdMSP, sbuf_t *src) { +static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src) +{ UNUSED(cmdMSP); UNUSED(src); return MSP_RESULT_ERROR; } -#endif -#ifndef USE_OSD_SLAVE -static mspResult_e mspFcProcessInCommand(uint8_t cmdMSP, sbuf_t *src) +#else + +static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src) { uint32_t i; uint8_t value; @@ -1928,7 +1929,7 @@ static mspResult_e mspFcProcessInCommand(uint8_t cmdMSP, sbuf_t *src) } return MSP_RESULT_ACK; } -#endif +#endif // USE_OSD_SLAVE static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src) { @@ -2103,11 +2104,7 @@ static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src) #endif // OSD || USE_OSD_SLAVE default: -#ifdef USE_OSD_SLAVE - return mspOsdSlaveProcessInCommand(cmdMSP, src); -#else - return mspFcProcessInCommand(cmdMSP, src); -#endif + return mspProcessInCommand(cmdMSP, src); } return MSP_RESULT_ACK; } @@ -2126,16 +2123,12 @@ mspResult_e mspFcProcessCommand(mspPacket_t *cmd, mspPacket_t *reply, mspPostPro if (mspCommonProcessOutCommand(cmdMSP, dst, mspPostProcessFn)) { ret = MSP_RESULT_ACK; -#ifndef USE_OSD_SLAVE - } else if (mspFcProcessOutCommand(cmdMSP, dst)) { + } else if (mspProcessOutCommand(cmdMSP, dst)) { ret = MSP_RESULT_ACK; +#ifndef USE_OSD_SLAVE } else if ((ret = mspFcProcessOutCommandWithArg(cmdMSP, src, dst)) != MSP_RESULT_CMD_UNKNOWN) { /* ret */; #endif -#ifdef USE_OSD_SLAVE - } else if (mspOsdSlaveProcessOutCommand(cmdMSP, dst)) { - ret = MSP_RESULT_ACK; -#endif #ifdef USE_SERIAL_4WAY_BLHELI_INTERFACE } else if (cmdMSP == MSP_SET_4WAY_IF) { mspFc4waySerialCommand(dst, src, mspPostProcessFn); @@ -2180,8 +2173,8 @@ void mspFcProcessReply(mspPacket_t *reply) #ifdef USE_MSP_CURRENT_METER currentMeterMSPSet(amperage, mAhDrawn); #endif - break; } + break; #endif #ifdef USE_OSD_SLAVE @@ -2189,56 +2182,47 @@ void mspFcProcessReply(mspPacket_t *reply) { osdSlaveIsLocked = true; // lock it as soon as a MSP_DISPLAYPORT message is received to prevent accidental CLI/DFU mode. - int subCmd = sbufReadU8(src); + const int subCmd = sbufReadU8(src); switch (subCmd) { - case 0: // HEARTBEAT - //debug[0]++; - osdSlaveHeartbeat(); - break; - case 1: // RELEASE - //debug[1]++; - break; - case 2: // CLEAR - //debug[2]++; - osdSlaveClearScreen(); - break; - case 3: { + case 0: // HEARTBEAT + //debug[0]++; + osdSlaveHeartbeat(); + break; + case 1: // RELEASE + //debug[1]++; + break; + case 2: // CLEAR + //debug[2]++; + osdSlaveClearScreen(); + break; + case 3: + { //debug[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 - const uint8_t reserved = sbufReadU8(src); - UNUSED(reserved); - + 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; + case 4: + osdSlaveDrawScreen(); + break; } - break; } + break; #endif } } -#ifdef USE_OSD_SLAVE -void mspOsdSlaveInit(void) -{ -} -#else -void mspFcInit(void) +void mspInit(void) { +#ifndef USE_OSD_SLAVE initActiveBoxIds(); +#endif } -#endif // USE_OSD_SLAVE diff --git a/src/main/fc/fc_msp.h b/src/main/fc/fc_msp.h index 3697100c0f..964ff70469 100644 --- a/src/main/fc/fc_msp.h +++ b/src/main/fc/fc_msp.h @@ -19,8 +19,7 @@ #include "msp/msp.h" -void mspFcInit(void); -void mspOsdSlaveInit(void); +void mspInit(void); mspResult_e mspFcProcessCommand(mspPacket_t *cmd, mspPacket_t *reply, mspPostProcessFnPtr *mspPostProcessFn); void mspFcProcessReply(mspPacket_t *reply); diff --git a/src/main/fc/fc_tasks.c b/src/main/fc/fc_tasks.c index 3af829bf9c..48d080a4cd 100644 --- a/src/main/fc/fc_tasks.c +++ b/src/main/fc/fc_tasks.c @@ -21,36 +21,32 @@ #include -#include "cms/cms.h" - #include "build/debug.h" -#include "common/axis.h" +#include "cms/cms.h" + #include "common/color.h" #include "common/utils.h" -#include "common/filter.h" #include "config/feature.h" -#include "config/parameter_group.h" -#include "config/parameter_group_ids.h" -#include "drivers/sensor.h" #include "drivers/accgyro/accgyro.h" +#include "drivers/camera_control.h" #include "drivers/compass/compass.h" +#include "drivers/sensor.h" #include "drivers/serial.h" #include "drivers/stack_check.h" -#include "drivers/vtx_common.h" #include "drivers/transponder_ir.h" -#include "drivers/camera_control.h" +#include "drivers/vtx_common.h" +#include "fc/cli.h" #include "fc/config.h" +#include "fc/fc_core.h" +#include "fc/fc_dispatch.h" #include "fc/fc_msp.h" #include "fc/fc_tasks.h" -#include "fc/fc_core.h" #include "fc/rc_controls.h" #include "fc/runtime_config.h" -#include "fc/cli.h" -#include "fc/fc_dispatch.h" #include "flight/altitude.h" #include "flight/imu.h" @@ -63,6 +59,7 @@ #include "io/ledstrip.h" #include "io/osd.h" #include "io/osd_slave.h" +#include "io/rcsplit.h" #include "io/serial.h" #include "io/transponder_ir.h" #include "io/vtx_tramp.h" // Will be gone @@ -71,21 +68,19 @@ #include "rx/rx.h" -#include "sensors/sensors.h" #include "sensors/acceleration.h" #include "sensors/barometer.h" #include "sensors/battery.h" #include "sensors/compass.h" -#include "sensors/gyro.h" -#include "sensors/sonar.h" #include "sensors/esc_sensor.h" +#include "sensors/gyro.h" +#include "sensors/sensors.h" +#include "sensors/sonar.h" #include "scheduler/scheduler.h" #include "telemetry/telemetry.h" -#include "io/osd_slave.h" -#include "io/rcsplit.h" #ifdef USE_BST void taskBstMasterProcess(timeUs_t currentTimeUs); @@ -95,17 +90,9 @@ void taskBstMasterProcess(timeUs_t currentTimeUs); #define TASK_PERIOD_MS(ms) ((ms) * 1000) #define TASK_PERIOD_US(us) (us) -#ifndef USE_OSD_SLAVE -static void taskUpdateAccelerometer(timeUs_t currentTimeUs) +bool taskSerialCheck(timeUs_t currentTimeUs, timeDelta_t currentDeltaTimeUs) { UNUSED(currentTimeUs); - - accUpdate(&accelerometerConfigMutable()->accelerometerTrims); -} -#endif - -bool taskSerialCheck(timeUs_t currentTimeUs, timeDelta_t currentDeltaTimeUs) { - UNUSED(currentTimeUs); UNUSED(currentDeltaTimeUs); return mspSerialWaiting(); @@ -140,6 +127,13 @@ void taskBatteryAlerts(timeUs_t currentTimeUs) } #ifndef USE_OSD_SLAVE +static void taskUpdateAccelerometer(timeUs_t currentTimeUs) +{ + UNUSED(currentTimeUs); + + accUpdate(&accelerometerConfigMutable()->accelerometerTrims); +} + static void taskUpdateRxMain(timeUs_t currentTimeUs) { processRx(currentTimeUs); @@ -227,39 +221,13 @@ void taskVtxControl(uint32_t currentTime) } #endif -#ifdef USE_OSD_SLAVE -void osdSlaveTasksInit(void) -{ - schedulerInit(); - setTaskEnabled(TASK_SERIAL, true); - - bool useBatteryVoltage = batteryConfig()->voltageMeterSource != VOLTAGE_METER_NONE; - setTaskEnabled(TASK_BATTERY_VOLTAGE, useBatteryVoltage); - bool useBatteryCurrent = batteryConfig()->currentMeterSource != CURRENT_METER_NONE; - setTaskEnabled(TASK_BATTERY_CURRENT, useBatteryCurrent); - - bool useBatteryAlerts = (batteryConfig()->useVBatAlerts || batteryConfig()->useConsumptionAlerts); - setTaskEnabled(TASK_BATTERY_ALERTS, (useBatteryVoltage || useBatteryCurrent) && useBatteryAlerts); - -#ifdef TRANSPONDER - setTaskEnabled(TASK_TRANSPONDER, feature(FEATURE_TRANSPONDER)); -#endif - - setTaskEnabled(TASK_OSD_SLAVE, true); - -#ifdef STACK_CHECK - setTaskEnabled(TASK_STACK_CHECK, true); -#endif -} -#endif - -#ifndef USE_OSD_SLAVE #ifdef USE_CAMERA_CONTROL void taskCameraControl(uint32_t currentTime) { - if (ARMING_FLAG(ARMED)) + if (ARMING_FLAG(ARMED)) { return; + } cameraControlProcess(currentTime); } @@ -268,7 +236,30 @@ void taskCameraControl(uint32_t currentTime) void fcTasksInit(void) { schedulerInit(); + setTaskEnabled(TASK_SERIAL, true); + const bool useBatteryVoltage = batteryConfig()->voltageMeterSource != VOLTAGE_METER_NONE; + setTaskEnabled(TASK_BATTERY_VOLTAGE, useBatteryVoltage); + const bool useBatteryCurrent = batteryConfig()->currentMeterSource != CURRENT_METER_NONE; + setTaskEnabled(TASK_BATTERY_CURRENT, useBatteryCurrent); +#ifdef USE_OSD_SLAVE + const bool useBatteryAlerts = batteryConfig()->useVBatAlerts || batteryConfig()->useConsumptionAlerts; +#else + const bool useBatteryAlerts = batteryConfig()->useVBatAlerts || batteryConfig()->useConsumptionAlerts || feature(FEATURE_OSD); +#endif + setTaskEnabled(TASK_BATTERY_ALERTS, (useBatteryVoltage || useBatteryCurrent) && useBatteryAlerts); + +#ifdef TRANSPONDER + setTaskEnabled(TASK_TRANSPONDER, feature(FEATURE_TRANSPONDER)); +#endif + +#ifdef STACK_CHECK + setTaskEnabled(TASK_STACK_CHECK, true); +#endif + +#ifdef USE_OSD_SLAVE + setTaskEnabled(TASK_OSD_SLAVE, true); +#else if (sensors(SENSOR_GYRO)) { rescheduleTask(TASK_GYROPID, gyro.targetLooptime); setTaskEnabled(TASK_GYROPID, true); @@ -280,16 +271,9 @@ void fcTasksInit(void) } setTaskEnabled(TASK_ATTITUDE, sensors(SENSOR_ACC)); - setTaskEnabled(TASK_SERIAL, true); + rescheduleTask(TASK_SERIAL, TASK_PERIOD_HZ(serialConfig()->serial_update_rate_hz)); - bool useBatteryVoltage = batteryConfig()->voltageMeterSource != VOLTAGE_METER_NONE; - setTaskEnabled(TASK_BATTERY_VOLTAGE, useBatteryVoltage); - bool useBatteryCurrent = batteryConfig()->currentMeterSource != CURRENT_METER_NONE; - setTaskEnabled(TASK_BATTERY_CURRENT, useBatteryCurrent); - - bool useBatteryAlerts = batteryConfig()->useVBatAlerts || batteryConfig()->useConsumptionAlerts || feature(FEATURE_OSD); - setTaskEnabled(TASK_BATTERY_ALERTS, (useBatteryVoltage || useBatteryCurrent) && useBatteryAlerts); setTaskEnabled(TASK_RX, true); @@ -341,9 +325,6 @@ void fcTasksInit(void) #ifdef OSD setTaskEnabled(TASK_OSD, feature(FEATURE_OSD)); #endif -#ifdef USE_OSD_SLAVE - setTaskEnabled(TASK_OSD_SLAVE, true); -#endif #ifdef USE_BST setTaskEnabled(TASK_BST_MASTER_PROCESS, true); #endif @@ -357,9 +338,6 @@ void fcTasksInit(void) setTaskEnabled(TASK_CMS, feature(FEATURE_OSD) || feature(FEATURE_DASHBOARD)); #endif #endif -#ifdef STACK_CHECK - setTaskEnabled(TASK_STACK_CHECK, true); -#endif #ifdef VTX_CONTROL #if defined(VTX_RTC6705) || defined(VTX_SMARTAUDIO) || defined(VTX_TRAMP) setTaskEnabled(TASK_VTXCTRL, true); @@ -371,8 +349,8 @@ void fcTasksInit(void) #ifdef USE_RCSPLIT setTaskEnabled(TASK_RCSPLIT, rcSplitIsEnabled()); #endif -} #endif +} cfTask_t cfTasks[TASK_COUNT] = { [TASK_SYSTEM] = { @@ -382,7 +360,68 @@ cfTask_t cfTasks[TASK_COUNT] = { .staticPriority = TASK_PRIORITY_MEDIUM_HIGH, }, -#ifndef USE_OSD_SLAVE + [TASK_SERIAL] = { + .taskName = "SERIAL", + .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 + .staticPriority = TASK_PRIORITY_LOW, +#endif + }, + + [TASK_BATTERY_ALERTS] = { + .taskName = "BATTERY_ALERTS", + .taskFunc = taskBatteryAlerts, + .desiredPeriod = TASK_PERIOD_HZ(5), // 5 Hz + .staticPriority = TASK_PRIORITY_MEDIUM, + }, + + [TASK_BATTERY_VOLTAGE] = { + .taskName = "BATTERY_VOLTAGE", + .taskFunc = batteryUpdateVoltage, + .desiredPeriod = TASK_PERIOD_HZ(50), + .staticPriority = TASK_PRIORITY_MEDIUM, + }, + [TASK_BATTERY_CURRENT] = { + .taskName = "BATTERY_CURRENT", + .taskFunc = batteryUpdateCurrentMeter, + .desiredPeriod = TASK_PERIOD_HZ(50), + .staticPriority = TASK_PRIORITY_MEDIUM, + }, + +#ifdef TRANSPONDER + [TASK_TRANSPONDER] = { + .taskName = "TRANSPONDER", + .taskFunc = transponderUpdate, + .desiredPeriod = TASK_PERIOD_HZ(250), // 250 Hz, 4ms + .staticPriority = TASK_PRIORITY_LOW, + }, +#endif + +#ifdef STACK_CHECK + [TASK_STACK_CHECK] = { + .taskName = "STACKCHECK", + .taskFunc = taskStackCheck, + .desiredPeriod = TASK_PERIOD_HZ(10), // 10 Hz + .staticPriority = TASK_PRIORITY_IDLE, + }, +#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] = { .taskName = "PID", .subTaskName = "GYRO", @@ -412,50 +451,13 @@ cfTask_t cfTasks[TASK_COUNT] = { .desiredPeriod = TASK_PERIOD_HZ(50), // If event-based scheduling doesn't work, fallback to periodic scheduling .staticPriority = TASK_PRIORITY_HIGH, }, -#endif - [TASK_SERIAL] = { - .taskName = "SERIAL", - .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 - .staticPriority = TASK_PRIORITY_LOW, -#endif - }, - -#ifndef USE_OSD_SLAVE [TASK_DISPATCH] = { .taskName = "DISPATCH", .taskFunc = dispatchProcess, .desiredPeriod = TASK_PERIOD_HZ(1000), .staticPriority = TASK_PRIORITY_HIGH, }, -#endif - - [TASK_BATTERY_ALERTS] = { - .taskName = "BATTERY_ALERTS", - .taskFunc = taskBatteryAlerts, - .desiredPeriod = TASK_PERIOD_HZ(5), // 5 Hz - .staticPriority = TASK_PRIORITY_MEDIUM, - }, - - [TASK_BATTERY_VOLTAGE] = { - .taskName = "BATTERY_VOLTAGE", - .taskFunc = batteryUpdateVoltage, - .desiredPeriod = TASK_PERIOD_HZ(50), - .staticPriority = TASK_PRIORITY_MEDIUM, - }, - [TASK_BATTERY_CURRENT] = { - .taskName = "BATTERY_CURRENT", - .taskFunc = batteryUpdateCurrentMeter, - .desiredPeriod = TASK_PERIOD_HZ(50), - .staticPriority = TASK_PRIORITY_MEDIUM, - }, -#ifndef USE_OSD_SLAVE #ifdef BEEPER [TASK_BEEPER] = { @@ -510,18 +512,7 @@ cfTask_t cfTasks[TASK_COUNT] = { .staticPriority = TASK_PRIORITY_LOW, }, #endif -#endif -#ifdef TRANSPONDER - [TASK_TRANSPONDER] = { - .taskName = "TRANSPONDER", - .taskFunc = transponderUpdate, - .desiredPeriod = TASK_PERIOD_HZ(250), // 250 Hz, 4ms - .staticPriority = TASK_PRIORITY_LOW, - }, -#endif - -#ifndef USE_OSD_SLAVE #ifdef USE_DASHBOARD [TASK_DASHBOARD] = { .taskName = "DASHBOARD", @@ -530,6 +521,7 @@ cfTask_t cfTasks[TASK_COUNT] = { .staticPriority = TASK_PRIORITY_LOW, }, #endif + #ifdef OSD [TASK_OSD] = { .taskName = "OSD", @@ -538,19 +530,7 @@ cfTask_t cfTasks[TASK_COUNT] = { .staticPriority = TASK_PRIORITY_LOW, }, #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, - }, -#endif - -#ifndef USE_OSD_SLAVE #ifdef TELEMETRY [TASK_TELEMETRY] = { .taskName = "TELEMETRY", @@ -596,15 +576,6 @@ cfTask_t cfTasks[TASK_COUNT] = { }, #endif -#ifdef STACK_CHECK - [TASK_STACK_CHECK] = { - .taskName = "STACKCHECK", - .taskFunc = taskStackCheck, - .desiredPeriod = TASK_PERIOD_HZ(10), // 10 Hz - .staticPriority = TASK_PRIORITY_IDLE, - }, -#endif - #ifdef VTX_CONTROL [TASK_VTXCTRL] = { .taskName = "VTXCTRL", diff --git a/src/main/fc/fc_tasks.h b/src/main/fc/fc_tasks.h index 5abc2b26d1..16db100bb6 100644 --- a/src/main/fc/fc_tasks.h +++ b/src/main/fc/fc_tasks.h @@ -20,4 +20,3 @@ #define LOOPTIME_SUSPEND_TIME 3 // Prevent too long busy wait times void fcTasksInit(void); -void osdSlaveTasksInit(void); diff --git a/src/main/flight/pid.h b/src/main/flight/pid.h index c48a5eecff..f6f26c9d91 100644 --- a/src/main/flight/pid.h +++ b/src/main/flight/pid.h @@ -17,7 +17,6 @@ #pragma once -#ifndef USE_OSD_SLAVE #include #include "common/time.h" #include "config/parameter_group.h" @@ -108,7 +107,9 @@ typedef struct pidProfile_s { uint16_t itermLimit; } pidProfile_t; +#ifndef USE_OSD_SLAVE PG_DECLARE_ARRAY(pidProfile_t, MAX_PROFILE_COUNT, pidProfiles); +#endif typedef struct pidConfig_s { uint8_t pid_process_denom; // Processing denominator for PID controller vs gyro sampling rate @@ -133,5 +134,3 @@ void pidInitFilters(const pidProfile_t *pidProfile); void pidInitConfig(const pidProfile_t *pidProfile); void pidInit(const pidProfile_t *pidProfile); void pidCopyProfile(uint8_t dstPidProfileIndex, uint8_t srcPidProfileIndex); - -#endif diff --git a/src/main/osd_slave/osd_slave_init.c b/src/main/osd_slave/osd_slave_init.c index 176408c6ce..a5abd5268a 100644 --- a/src/main/osd_slave/osd_slave_init.c +++ b/src/main/osd_slave/osd_slave_init.c @@ -244,7 +244,7 @@ void init(void) LED0_OFF; LED1_OFF; - mspOsdSlaveInit(); + mspInit(); mspSerialInit(); #ifdef USE_CLI @@ -287,7 +287,7 @@ void init(void) // Latch active features AGAIN since some may be modified by init(). latchActiveFeatures(); - osdSlaveTasksInit(); + fcTasksInit(); systemState |= SYSTEM_STATE_READY; }