1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 08:15:30 +03:00

Removed a number of static config pointers

This commit is contained in:
Martin Budden 2017-02-01 12:58:29 +00:00
parent a3951a3340
commit 5851b21e4a
26 changed files with 67 additions and 173 deletions

View file

@ -904,16 +904,12 @@ void activateConfig(void)
&currentProfile->pidProfile
);
#ifdef TELEMETRY
telemetryUseConfig(&masterConfig.telemetryConfig);
#endif
#ifdef GPS
gpsUseProfile(&masterConfig.gpsProfile);
gpsUsePIDs(&currentProfile->pidProfile);
#endif
useFailsafeConfig(&masterConfig.failsafeConfig);
failsafeReset();
setAccelerationTrims(&accelerometerConfigMutable()->accZero);
setAccelerationFilter(accelerometerConfig()->acc_lpf_hz);
@ -942,10 +938,6 @@ void activateConfig(void)
&masterConfig.rcControlsConfig,
&masterConfig.motorConfig
);
#ifdef BARO
useBarometerConfig(&masterConfig.barometerConfig);
#endif
}
void validateAndFixConfig(void)

View file

@ -259,16 +259,16 @@ void init(void)
timerInit(); // timer must be initialized before any channel is allocated
#if defined(AVOID_UART1_FOR_PWM_PPM)
serialInit(serialConfig(), feature(FEATURE_SOFTSERIAL),
serialInit(feature(FEATURE_SOFTSERIAL),
feature(FEATURE_RX_PPM) || feature(FEATURE_RX_PARALLEL_PWM) ? SERIAL_PORT_USART1 : SERIAL_PORT_NONE);
#elif defined(AVOID_UART2_FOR_PWM_PPM)
serialInit(serialConfig(), feature(FEATURE_SOFTSERIAL),
serialInit(feature(FEATURE_SOFTSERIAL),
feature(FEATURE_RX_PPM) || feature(FEATURE_RX_PARALLEL_PWM) ? SERIAL_PORT_USART2 : SERIAL_PORT_NONE);
#elif defined(AVOID_UART3_FOR_PWM_PPM)
serialInit(serialConfig(), feature(FEATURE_SOFTSERIAL),
serialInit(feature(FEATURE_SOFTSERIAL),
feature(FEATURE_RX_PPM) || feature(FEATURE_RX_PARALLEL_PWM) ? SERIAL_PORT_USART3 : SERIAL_PORT_NONE);
#else
serialInit(serialConfig(), feature(FEATURE_SOFTSERIAL), SERIAL_PORT_NONE);
serialInit(feature(FEATURE_SOFTSERIAL), SERIAL_PORT_NONE);
#endif
mixerInit(mixerConfig()->mixerMode, masterConfig.customMotorMixer);
@ -443,7 +443,7 @@ void init(void)
cliInit(serialConfig());
#endif
failsafeInit(rxConfig(), flight3DConfig()->deadband3d_throttle);
failsafeInit(flight3DConfig()->deadband3d_throttle);
rxInit(rxConfig(), modeActivationProfile()->modeActivationConditions);

View file

@ -204,7 +204,7 @@ static void taskTelemetry(timeUs_t currentTimeUs)
telemetryCheckState();
if (!cliMode && feature(FEATURE_TELEMETRY)) {
telemetryProcess(currentTimeUs, rxConfig(), flight3DConfig()->deadband3d_throttle);
telemetryProcess(currentTimeUs);
}
}
#endif

View file

@ -43,9 +43,9 @@
/*
* Usage:
*
* failsafeInit() and useFailsafeConfig() must be called before the other methods are used.
* failsafeInit() and resetFailsafe() must be called before the other methods are used.
*
* failsafeInit() and useFailsafeConfig() can be called in any order.
* failsafeInit() and resetFailsafe() can be called in any order.
* failsafeInit() should only be called once.
*
* enable() should be called after system initialisation.
@ -53,16 +53,14 @@
static failsafeState_t failsafeState;
#ifndef USE_PARAMETER_GROPUS
static const failsafeConfig_t *failsafeConfig;
static const rxConfig_t *rxConfig;
#endif
static uint16_t deadband3dThrottle; // default throttle deadband from MIDRC
static void failsafeReset(void)
/*
* Should called when the failsafe config needs to be changed - e.g. a different profile has been selected.
*/
void failsafeReset(void)
{
failsafeState.rxDataFailurePeriod = PERIOD_RXDATA_FAILURE + failsafeConfig->failsafe_delay * MILLIS_PER_TENTH_SECOND;
failsafeState.rxDataFailurePeriod = PERIOD_RXDATA_FAILURE + failsafeConfig()->failsafe_delay * MILLIS_PER_TENTH_SECOND;
failsafeState.validRxDataReceivedAt = 0;
failsafeState.validRxDataFailedAt = 0;
failsafeState.throttleLowPeriod = 0;
@ -73,27 +71,8 @@ static void failsafeReset(void)
failsafeState.rxLinkState = FAILSAFE_RXLINK_DOWN;
}
/*
* Should called when the failsafe config needs to be changed - e.g. a different profile has been selected.
*/
void useFailsafeConfig(const failsafeConfig_t *failsafeConfigToUse)
void failsafeInit(uint16_t deadband3d_throttle)
{
#ifdef USE_PARAMETER_GROUPS
(void)(failsafeConfigToUse);
#else
failsafeConfig = failsafeConfigToUse;
#endif
failsafeReset();
}
void failsafeInit(const rxConfig_t *intialRxConfig, uint16_t deadband3d_throttle)
{
#ifdef USE_PARAMETER_GROUPS
(void)(intialRxConfig);
#else
rxConfig = intialRxConfig;
#endif
deadband3dThrottle = deadband3d_throttle;
failsafeState.events = 0;
failsafeState.monitoring = false;
@ -131,7 +110,7 @@ static void failsafeActivate(void)
failsafeState.active = true;
failsafeState.phase = FAILSAFE_LANDING;
ENABLE_FLIGHT_MODE(FAILSAFE_MODE);
failsafeState.landingShouldBeFinishedAt = millis() + failsafeConfig->failsafe_off_delay * MILLIS_PER_TENTH_SECOND;
failsafeState.landingShouldBeFinishedAt = millis() + failsafeConfig()->failsafe_off_delay * MILLIS_PER_TENTH_SECOND;
failsafeState.events++;
}
@ -139,9 +118,9 @@ static void failsafeActivate(void)
static void failsafeApplyControlInput(void)
{
for (int i = 0; i < 3; i++) {
rcData[i] = rxConfig->midrc;
rcData[i] = rxConfig()->midrc;
}
rcData[THROTTLE] = failsafeConfig->failsafe_throttle;
rcData[THROTTLE] = failsafeConfig()->failsafe_throttle;
}
bool failsafeIsReceivingRxData(void)
@ -201,11 +180,11 @@ void failsafeUpdateState(void)
case FAILSAFE_IDLE:
if (armed) {
// Track throttle command below minimum time
if (THROTTLE_HIGH == calculateThrottleStatus(rxConfig, deadband3dThrottle)) {
failsafeState.throttleLowPeriod = millis() + failsafeConfig->failsafe_throttle_low_delay * MILLIS_PER_TENTH_SECOND;
if (THROTTLE_HIGH == calculateThrottleStatus(rxConfig(), deadband3dThrottle)) {
failsafeState.throttleLowPeriod = millis() + failsafeConfig()->failsafe_throttle_low_delay * MILLIS_PER_TENTH_SECOND;
}
// Kill switch logic (must be independent of receivingRxData to skip PERIOD_RXDATA_FAILURE delay before disarming)
if (failsafeSwitchIsOn && failsafeConfig->failsafe_kill_switch) {
if (failsafeSwitchIsOn && failsafeConfig()->failsafe_kill_switch) {
// KillswitchEvent: failsafe switch is configured as KILL switch and is switched ON
failsafeActivate();
failsafeState.phase = FAILSAFE_LANDED; // skip auto-landing procedure
@ -238,7 +217,7 @@ void failsafeUpdateState(void)
if (receivingRxData) {
failsafeState.phase = FAILSAFE_RX_LOSS_RECOVERED;
} else {
switch (failsafeConfig->failsafe_procedure) {
switch (failsafeConfig()->failsafe_procedure) {
default:
case FAILSAFE_PROCEDURE_AUTO_LANDING:
// Stabilize, and set Throttle to specified level
@ -300,7 +279,7 @@ void failsafeUpdateState(void)
// Entering IDLE with the requirement that throttle first must be at min_check for failsafe_throttle_low_delay period.
// This is to prevent that JustDisarm is activated on the next iteration.
// Because that would have the effect of shutting down failsafe handling on intermittent connections.
failsafeState.throttleLowPeriod = millis() + failsafeConfig->failsafe_throttle_low_delay * MILLIS_PER_TENTH_SECOND;
failsafeState.throttleLowPeriod = millis() + failsafeConfig()->failsafe_throttle_low_delay * MILLIS_PER_TENTH_SECOND;
failsafeState.phase = FAILSAFE_IDLE;
failsafeState.active = false;
DISABLE_FLIGHT_MODE(FAILSAFE_MODE);

View file

@ -74,9 +74,8 @@ typedef struct failsafeState_s {
failsafeRxLinkState_e rxLinkState;
} failsafeState_t;
struct rxConfig_s;
void failsafeInit(const struct rxConfig_s *intialRxConfig, uint16_t deadband3d_throttle);
void useFailsafeConfig(const failsafeConfig_t *failsafeConfigToUse);
void failsafeInit(uint16_t deadband3d_throttle);
void failsafeReset(void);
void failsafeStartMonitoring(void);
void failsafeUpdateState(void);

View file

@ -54,7 +54,6 @@
#include "telemetry/telemetry.h"
#endif
static const serialConfig_t *serialConfig;
static serialPortUsage_t serialPortUsageList[SERIAL_PORT_COUNT];
const serialPortIdentifier_e serialPortIdentifiers[SERIAL_PORT_COUNT] = {
@ -396,16 +395,12 @@ void closeSerialPort(serialPort_t *serialPort)
serialPortUsage->serialPort = NULL;
}
void serialInit(const serialConfig_t *initialSerialConfig, bool softserialEnabled, serialPortIdentifier_e serialPortToDisable)
void serialInit(bool softserialEnabled, serialPortIdentifier_e serialPortToDisable)
{
uint8_t index;
serialConfig = initialSerialConfig;
serialPortCount = SERIAL_PORT_COUNT;
memset(&serialPortUsageList, 0, sizeof(serialPortUsageList));
for (index = 0; index < SERIAL_PORT_COUNT; index++) {
for (int index = 0; index < SERIAL_PORT_COUNT; index++) {
serialPortUsageList[index].identifier = serialPortIdentifiers[index];
if (serialPortToDisable != SERIAL_PORT_NONE) {
@ -471,7 +466,7 @@ void serialEvaluateNonMspData(serialPort_t *serialPort, uint8_t receivedChar)
cliEnter(serialPort);
}
#endif
if (receivedChar == serialConfig->reboot_character) {
if (receivedChar == serialConfig()->reboot_character) {
systemResetToBootloader();
}
}
@ -488,8 +483,7 @@ static void nopConsumer(uint8_t data)
arbitrary serial passthrough "proxy". Optional callbacks can be given to allow
for specialized data processing.
*/
void serialPassthrough(serialPort_t *left, serialPort_t *right, serialConsumer
*leftC, serialConsumer *rightC)
void serialPassthrough(serialPort_t *left, serialPort_t *right, serialConsumer *leftC, serialConsumer *rightC)
{
waitForSerialPortToFinishTransmitting(left);
waitForSerialPortToFinishTransmitting(right);

View file

@ -122,7 +122,7 @@ typedef void serialConsumer(uint8_t);
//
// configuration
//
void serialInit(const serialConfig_t *initialSerialConfig, bool softserialEnabled, serialPortIdentifier_e serialPortToDisable);
void serialInit(bool softserialEnabled, serialPortIdentifier_e serialPortToDisable);
void serialRemovePort(serialPortIdentifier_e identifier);
uint8_t serialGetAvailablePortCount(void);
bool serialIsPortAvailable(serialPortIdentifier_e identifier);

View file

@ -407,10 +407,8 @@ static uint16_t jetiExBusReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uin
-----------------------------------------------
*/
void initJetiExBusTelemetry(telemetryConfig_t *initialTelemetryConfig)
void initJetiExBusTelemetry(void)
{
UNUSED(initialTelemetryConfig);
// Init Ex Bus Frame header
jetiExBusTelemetryFrame[EXBUS_HEADER_SYNC] = 0x3B; // Startbytes
jetiExBusTelemetryFrame[EXBUS_HEADER_REQ] = 0x01;
@ -427,7 +425,6 @@ void initJetiExBusTelemetry(telemetryConfig_t *initialTelemetryConfig)
jetiExTelemetryFrame[EXTEL_HEADER_RES] = 0x00; // reserved, by default 0x00
}
void createExTelemetrieTextMessage(uint8_t *exMessage, uint8_t messageID, const exBusSensor_t *sensor)
{
uint8_t labelLength = strlen(sensor->label);

View file

@ -246,13 +246,13 @@ retry:
return true;
}
bool accInit(const accelerometerConfig_t *accelerometerConfig, uint32_t gyroSamplingInverval)
bool accInit(uint32_t gyroSamplingInverval)
{
memset(&acc, 0, sizeof(acc));
// copy over the common gyro mpu settings
acc.dev.mpuConfiguration = gyro.dev.mpuConfiguration;
acc.dev.mpuDetectionResult = gyro.dev.mpuDetectionResult;
if (!accDetect(&acc.dev, accelerometerConfig->acc_hardware)) {
if (!accDetect(&acc.dev, accelerometerConfig()->acc_hardware)) {
return false;
}
acc.dev.acc_1G = 256; // set default

View file

@ -69,7 +69,7 @@ typedef struct accelerometerConfig_s {
PG_DECLARE(accelerometerConfig_t, accelerometerConfig);
bool accInit(const accelerometerConfig_t *accelerometerConfig, uint32_t gyroTargetLooptime);
bool accInit(uint32_t gyroTargetLooptime);
bool isAccelerationCalibrationComplete(void);
void accSetCalibrationCycles(uint16_t calibrationCyclesRequired);
void resetRollAndPitchTrims(rollAndPitchTrims_t *rollAndPitchTrims);

View file

@ -54,10 +54,6 @@ static int32_t baroGroundAltitude = 0;
static int32_t baroGroundPressure = 0;
static uint32_t baroPressureSum = 0;
#ifndef USE_PARAMETER_GROUPS
static const barometerConfig_t *barometerConfig;
#endif
bool baroDetect(baroDev_t *dev, baroSensor_e baroHardwareToUse)
{
// Detect what pressure sensors are available. baro->update() is set to sensor-specific update function
@ -124,15 +120,6 @@ bool baroDetect(baroDev_t *dev, baroSensor_e baroHardwareToUse)
return true;
}
void useBarometerConfig(const barometerConfig_t *barometerConfigToUse)
{
#ifdef USE_PARAMETER_GROUPS
(void)(barometerConfigToUse);
#else
barometerConfig = barometerConfigToUse;
#endif
}
bool isBaroCalibrationComplete(void)
{
return calibratingB == 0;

View file

@ -49,7 +49,6 @@ typedef struct baro_s {
extern baro_t baro;
bool baroDetect(baroDev_t *dev, baroSensor_e baroHardwareToUse);
void useBarometerConfig(const barometerConfig_t *barometerConfigToUse);
bool isBaroCalibrationComplete(void);
void baroSetCalibrationCycles(uint16_t calibrationCyclesRequired);
uint32_t baroUpdate(void);

View file

@ -146,12 +146,12 @@ retry:
return true;
}
void compassInit(const compassConfig_t *compassConfig)
void compassInit(void)
{
// initialize and calibration. turn on led during mag calibration (calibration routine blinks it)
// calculate magnetic declination
const int16_t deg = compassConfig->mag_declination / 100;
const int16_t min = compassConfig->mag_declination % 100;
const int16_t deg = compassConfig()->mag_declination / 100;
const int16_t min = compassConfig()->mag_declination % 100;
mag.magneticDeclination = (deg + ((float)min * (1.0f / 60.0f))) * 10; // heading is in 0.1deg units
LED1_ON;
mag.dev.init();

View file

@ -50,7 +50,7 @@ typedef struct compassConfig_s {
PG_DECLARE(compassConfig_t, compassConfig);
bool compassDetect(magDev_t *dev, magSensor_e magHardwareToUse);
void compassInit(const compassConfig_t *compassConfig);
void compassInit(void);
union flightDynamicsTrims_u;
void compassUpdate(uint32_t currentTime, union flightDynamicsTrims_u *magZero);

View file

@ -61,12 +61,12 @@ bool sensorsAutodetect(void)
return false;
}
accInit(accelerometerConfig(), gyro.targetLooptime);
accInit(gyro.targetLooptime);
mag.magneticDeclination = 0.0f; // TODO investigate if this is actually needed if there is no mag sensor or if the value stored in the config should be used.
#ifdef MAG
if (compassDetect(&mag.dev, compassConfig()->mag_hardware)) {
compassInit(compassConfig());
compassInit();
}
#endif

View file

@ -74,9 +74,6 @@ static serialPortConfig_t *portConfig;
#define FRSKY_BAUDRATE 9600
#define FRSKY_INITIAL_PORT_MODE MODE_TX
#ifndef USE_PARAMETER_GROUPS
static const telemetryConfig_t *telemetryConfig;
#endif
static bool frskyTelemetryEnabled = false;
static portSharing_e frskyPortSharing;
@ -457,13 +454,8 @@ static void sendHeading(void)
serialize16(0);
}
void initFrSkyTelemetry(const telemetryConfig_t *initialTelemetryConfig)
void initFrSkyTelemetry(void)
{
#ifdef USE_PARAMETER_GROUPS
UNUSED(initialTelemetryConfig);
#else
telemetryConfig = initialTelemetryConfig;
#endif
portConfig = findSerialPortConfig(FUNCTION_TELEMETRY_FRSKY);
frskyPortSharing = determinePortSharing(portConfig, FUNCTION_TELEMETRY_FRSKY);
}
@ -515,7 +507,7 @@ void checkFrSkyTelemetryState(void)
}
}
void handleFrSkyTelemetry(const rxConfig_t *rxConfig, uint16_t deadband3d_throttle)
void handleFrSkyTelemetry(void)
{
if (!frskyTelemetryEnabled) {
return;
@ -546,7 +538,7 @@ void handleFrSkyTelemetry(const rxConfig_t *rxConfig, uint16_t deadband3d_thrott
if ((cycleNum % 8) == 0) { // Sent every 1s
sendTemperature1();
sendThrottleOrBatterySizeAsRpm(rxConfig, deadband3d_throttle);
sendThrottleOrBatterySizeAsRpm(rxConfig(), flight3DConfig()->deadband3d_throttle);
if ((feature(FEATURE_VBAT) || feature(FEATURE_ESC_SENSOR)) && batteryCellCount > 0) {
sendVoltage();

View file

@ -22,12 +22,10 @@ typedef enum {
FRSKY_VFAS_PRECISION_HIGH
} frskyVFasPrecision_e;
struct rxConfig_s;
void handleFrSkyTelemetry(const struct rxConfig_s *rxConfig, uint16_t deadband3d_throttle);
void handleFrSkyTelemetry(void);
void checkFrSkyTelemetryState(void);
struct telemetryConfig_s;
void initFrSkyTelemetry(const struct telemetryConfig_s *telemetryConfig);
void initFrSkyTelemetry(void);
void configureFrSkyTelemetryPort(void);
void freeFrSkyTelemetryPort(void);

View file

@ -112,9 +112,6 @@ static uint8_t hottMsgCrc;
static serialPort_t *hottPort = NULL;
static serialPortConfig_t *portConfig;
#ifndef USE_PARAMETER_GROUPS
static const telemetryConfig_t *telemetryConfig;
#endif
static bool hottTelemetryEnabled = false;
static portSharing_e hottPortSharing;
@ -295,13 +292,8 @@ void freeHoTTTelemetryPort(void)
hottTelemetryEnabled = false;
}
void initHoTTTelemetry(const telemetryConfig_t *initialTelemetryConfig)
void initHoTTTelemetry(void)
{
#ifdef USE_PARAMETER_GROUPS
UNUSED(initialTelemetryConfig);
#else
telemetryConfig = initialTelemetryConfig;
#endif
portConfig = findSerialPortConfig(FUNCTION_TELEMETRY_HOTT);
hottPortSharing = determinePortSharing(portConfig, FUNCTION_TELEMETRY_HOTT);

View file

@ -490,7 +490,7 @@ typedef struct HOTT_AIRESC_MSG_s {
void handleHoTTTelemetry(timeUs_t currentTimeUs);
void checkHoTTTelemetryState(void);
void initHoTTTelemetry(const telemetryConfig_t *telemetryConfig);
void initHoTTTelemetry(void);
void configureHoTTTelemetryPort(void);
void freeHoTTTelemetryPort(void);

View file

@ -17,7 +17,6 @@
#pragma once
struct telemetryConfig_s;
void initJetiExBusTelemetry(struct telemetryConfig_s *initialTelemetryConfig);
void initJetiExBusTelemetry(void);
void checkJetiExBusTelemetryState(void);
void handleJetiExBusTelemetry(void);

View file

@ -81,9 +81,6 @@
static serialPort_t *ltmPort;
static serialPortConfig_t *portConfig;
#ifndef USE_PARAMETER_GROUPS
static const telemetryConfig_t *telemetryConfig;
#endif
static bool ltmEnabled;
static portSharing_e ltmPortSharing;
static uint8_t ltm_crc;
@ -271,13 +268,8 @@ void freeLtmTelemetryPort(void)
ltmEnabled = false;
}
void initLtmTelemetry(const telemetryConfig_t *initialTelemetryConfig)
void initLtmTelemetry(void)
{
#ifdef USE_PARAMETER_GROUPS
UNUSED(initialTelemetryConfig);
#else
telemetryConfig = initialTelemetryConfig;
#endif
portConfig = findSerialPortConfig(FUNCTION_TELEMETRY_LTM);
ltmPortSharing = determinePortSharing(portConfig, FUNCTION_TELEMETRY_LTM);
}

View file

@ -19,8 +19,7 @@
#pragma once
struct telemetryConfig_s;
void initLtmTelemetry(const struct telemetryConfig_s *initialTelemetryConfig);
void initLtmTelemetry(void);
void handleLtmTelemetry(void);
void checkLtmTelemetryState(void);

View file

@ -150,9 +150,6 @@ const uint16_t frSkyDataIdTable[] = {
static serialPort_t *smartPortSerialPort = NULL; // The 'SmartPort'(tm) Port.
static serialPortConfig_t *portConfig;
#ifndef USE_PARAMETER_GROUPS
static const telemetryConfig_t *telemetryConfig;
#endif
static bool smartPortTelemetryEnabled = false;
static portSharing_e smartPortPortSharing;
@ -306,13 +303,8 @@ static void smartPortSendPackage(uint16_t id, uint32_t val)
smartPortSendPackageEx(FSSP_DATA_FRAME,payload);
}
void initSmartPortTelemetry(const telemetryConfig_t *initialTelemetryConfig)
void initSmartPortTelemetry(void)
{
#ifdef USE_PARAMETER_GROUPS
UNUSED(initialTelemetryConfig);
#else
telemetryConfig = initialTelemetryConfig;
#endif
portConfig = findSerialPortConfig(FUNCTION_TELEMETRY_SMARTPORT);
smartPortPortSharing = determinePortSharing(portConfig, FUNCTION_TELEMETRY_SMARTPORT);
}

View file

@ -7,7 +7,7 @@
#pragma once
void initSmartPortTelemetry(const telemetryConfig_t *);
void initSmartPortTelemetry(void);
void handleSmartPortTelemetry(void);
void checkSmartPortTelemetryState(void);

View file

@ -53,35 +53,23 @@
#include "telemetry/srxl.h"
#include "telemetry/ibus.h"
#ifndef USE_PARAMETER_GROUPS
static telemetryConfig_t *telemetryConfig;
#endif
void telemetryUseConfig(telemetryConfig_t *telemetryConfigToUse)
{
#ifdef USE_PARAMETER_GROUPS
UNUSED(telemetryConfigToUse);
#else
telemetryConfig = telemetryConfigToUse;
#endif
}
void telemetryInit(void)
{
#ifdef TELEMETRY_FRSKY
initFrSkyTelemetry(telemetryConfig());
initFrSkyTelemetry();
#endif
#ifdef TELEMETRY_HOTT
initHoTTTelemetry(telemetryConfig());
initHoTTTelemetry();
#endif
#ifdef TELEMETRY_SMARTPORT
initSmartPortTelemetry(telemetryConfig());
initSmartPortTelemetry();
#endif
#ifdef TELEMETRY_LTM
initLtmTelemetry(telemetryConfig());
initLtmTelemetry();
#endif
#ifdef TELEMETRY_JETIEXBUS
initJetiExBusTelemetry(telemetryConfig());
initJetiExBusTelemetry();
#endif
#ifdef TELEMETRY_MAVLINK
initMAVLinkTelemetry();
@ -151,13 +139,10 @@ void telemetryCheckState(void)
#endif
}
void telemetryProcess(uint32_t currentTime, const rxConfig_t *rxConfig, uint16_t deadband3d_throttle)
void telemetryProcess(uint32_t currentTime)
{
#ifdef TELEMETRY_FRSKY
handleFrSkyTelemetry(rxConfig, deadband3d_throttle);
#else
UNUSED(rxConfig);
UNUSED(deadband3d_throttle);
handleFrSkyTelemetry();
#endif
#ifdef TELEMETRY_HOTT
handleHoTTTelemetry(currentTime);

View file

@ -38,11 +38,11 @@ typedef enum {
} frskyUnit_e;
typedef struct telemetryConfig_s {
float gpsNoFixLatitude;
float gpsNoFixLongitude;
uint8_t telemetry_switch; // Use aux channel to change serial output & baudrate( MSP / Telemetry ). It disables automatic switching to Telemetry when armed.
uint8_t telemetry_inversion; // also shared with smartport inversion
uint8_t sportHalfDuplex;
float gpsNoFixLatitude;
float gpsNoFixLongitude;
frskyGpsCoordFormat_e frsky_coordinate_format;
frskyUnit_e frsky_unit;
uint8_t frsky_vfas_precision;
@ -54,18 +54,16 @@ typedef struct telemetryConfig_s {
PG_DECLARE(telemetryConfig_t, telemetryConfig);
void telemetryInit(void);
bool telemetryCheckRxPortShared(const serialPortConfig_t *portConfig);
#define TELEMETRY_SHAREABLE_PORT_FUNCTIONS_MASK (FUNCTION_TELEMETRY_FRSKY | FUNCTION_TELEMETRY_LTM | FUNCTION_TELEMETRY_MAVLINK)
extern serialPort_t *telemetrySharedPort;
void telemetryInit(void);
bool telemetryCheckRxPortShared(const serialPortConfig_t *portConfig);
void telemetryCheckState(void);
struct rxConfig_s;
void telemetryProcess(uint32_t currentTime, const struct rxConfig_s *rxConfig, uint16_t deadband3d_throttle);
void telemetryProcess(uint32_t currentTime);
bool telemetryDetermineEnabledState(portSharing_e portSharing);
void telemetryUseConfig(telemetryConfig_t *telemetryConfig);
#define TELEMETRY_SHAREABLE_PORT_FUNCTIONS_MASK (FUNCTION_TELEMETRY_FRSKY | FUNCTION_TELEMETRY_LTM | FUNCTION_TELEMETRY_MAVLINK)
void releaseSharedTelemetryPorts(void);