1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 06:15:16 +03:00

decouple failsafe from the rest of the system.

Note: the pwm_common driver has a dependency on the main failsafe code,
the solution is probably to move some of the code into rx_pwm.
This commit is contained in:
Dominic Clifton 2014-04-21 00:46:16 +01:00
parent aef28c1c08
commit e969d184e6
29 changed files with 224 additions and 119 deletions

View file

@ -6,13 +6,22 @@
#include "platform.h"
#include "rx_common.h"
#include "config.h"
#include "failsafe.h"
#include "rx_pwm.h"
#include "rx_sbus.h"
#include "rx_spektrum.h"
#include "rx_sumd.h"
#include "rx_common.h"
void pwmRxInit(rxRuntimeConfig_t *rxRuntimeConfig, failsafe_t *failsafe, rcReadRawDataPtr *callback);
void sbusInit(rxConfig_t *initialRxConfig, rxRuntimeConfig_t *rxRuntimeConfig, failsafe_t *initialFailsafe, rcReadRawDataPtr *callback);
void spektrumInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, failsafe_t *initialFailsafe, rcReadRawDataPtr *callback);
void sumdInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, failsafe_t *initialFailsafe, rcReadRawDataPtr *callback);
const char rcChannelLetters[] = "AERT1234";
int16_t lookupPitchRollRC[PITCH_LOOKUP_LENGTH]; // lookup table for expo & RC rate PITCH+ROLL
@ -25,7 +34,9 @@ rcReadRawDataPtr rcReadRawFunc = NULL; // receive data from default (pwm/ppm) o
rxRuntimeConfig_t rxRuntimeConfig;
void rxInit(rxConfig_t *rxConfig)
void serialRxInit(rxConfig_t *rxConfig, failsafe_t *failsafe);
void rxInit(rxConfig_t *rxConfig, failsafe_t *failsafe)
{
uint8_t i;
@ -34,24 +45,24 @@ void rxInit(rxConfig_t *rxConfig)
}
if (feature(FEATURE_SERIALRX)) {
serialRxInit(rxConfig);
serialRxInit(rxConfig, failsafe);
} else {
pwmRxInit(&rxRuntimeConfig, &rcReadRawFunc);
pwmRxInit(&rxRuntimeConfig, failsafe, &rcReadRawFunc);
}
}
void serialRxInit(rxConfig_t *rxConfig)
void serialRxInit(rxConfig_t *rxConfig, failsafe_t *failsafe)
{
switch (rxConfig->serialrx_type) {
case SERIALRX_SPEKTRUM1024:
case SERIALRX_SPEKTRUM2048:
spektrumInit(rxConfig, &rxRuntimeConfig, &rcReadRawFunc);
spektrumInit(rxConfig, &rxRuntimeConfig, failsafe, &rcReadRawFunc);
break;
case SERIALRX_SBUS:
sbusInit(rxConfig, &rxRuntimeConfig, &rcReadRawFunc);
sbusInit(rxConfig, &rxRuntimeConfig, failsafe, &rcReadRawFunc);
break;
case SERIALRX_SUMD:
sumdInit(rxConfig, &rxRuntimeConfig, &rcReadRawFunc);
sumdInit(rxConfig, &rxRuntimeConfig, failsafe, &rcReadRawFunc);
break;
}
}