Better alignment of serial and SPI receiver code
This commit is contained in:
parent
c44e0796ae
commit
1273ce8923
|
@ -32,6 +32,7 @@
|
|||
#include "drivers/rx_xn297.h"
|
||||
#include "drivers/system.h"
|
||||
|
||||
#include "rx/rx.h"
|
||||
#include "rx/rx_spi.h"
|
||||
#include "rx/nrf24_cx10.h"
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "drivers/rx_xn297.h"
|
||||
#include "drivers/system.h"
|
||||
|
||||
#include "rx/rx.h"
|
||||
#include "rx/rx_spi.h"
|
||||
#include "rx/nrf24_h8_3d.h"
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include "drivers/rx_nrf24l01.h"
|
||||
#include "drivers/system.h"
|
||||
|
||||
#include "rx/rx.h"
|
||||
#include "rx/rx_spi.h"
|
||||
#include "rx/nrf24_inav.h"
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "drivers/rx_nrf24l01.h"
|
||||
#include "drivers/system.h"
|
||||
|
||||
#include "rx/rx.h"
|
||||
#include "rx/rx_spi.h"
|
||||
#include "rx/nrf24_syma.h"
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "drivers/rx_nrf24l01.h"
|
||||
#include "drivers/system.h"
|
||||
|
||||
#include "rx/rx.h"
|
||||
#include "rx/rx_spi.h"
|
||||
#include "rx/nrf24_v202.h"
|
||||
|
||||
|
|
|
@ -200,8 +200,7 @@ void rxInit(const rxConfig_t *rxConfig, const modeActivationCondition_t *modeAct
|
|||
#ifdef USE_RX_SPI
|
||||
if (feature(FEATURE_RX_SPI)) {
|
||||
rxRefreshRate = 10000;
|
||||
const rx_spi_type_e spiType = feature(FEATURE_SOFTSPI) ? RX_SPI_SOFTSPI : RX_SPI_HARDSPI;
|
||||
const bool enabled = rxSpiInit(spiType, rxConfig, &rxRuntimeConfig, &rcReadRawFunc);
|
||||
const bool enabled = rxSpiInit(rxConfig, &rxRuntimeConfig, &rcReadRawFunc);
|
||||
if (!enabled) {
|
||||
featureClear(FEATURE_RX_SPI);
|
||||
rcReadRawFunc = nullReadRawRC;
|
||||
|
@ -354,11 +353,12 @@ bool rxUpdate(uint32_t currentTime)
|
|||
|
||||
#ifdef USE_RX_SPI
|
||||
if (feature(FEATURE_RX_SPI)) {
|
||||
rxDataReceived = rxSpiDataReceived();
|
||||
if (rxDataReceived) {
|
||||
rxSignalReceived = true;
|
||||
const uint8_t frameStatus = rxSpiFrameStatus();
|
||||
if (frameStatus & RX_FRAME_COMPLETE) {
|
||||
rxDataReceived = true;
|
||||
rxIsInFailsafeMode = false;
|
||||
needRxSignalBefore = currentTime + DELAY_10_HZ;
|
||||
rxSignalReceived = true;
|
||||
needRxSignalBefore = currentTime + DELAY_5_HZ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -25,6 +25,10 @@
|
|||
#include "build/build_config.h"
|
||||
|
||||
#include "drivers/rx_nrf24l01.h"
|
||||
|
||||
#include "config/config.h"
|
||||
#include "config/feature.h"
|
||||
|
||||
#include "rx/rx.h"
|
||||
#include "rx/rx_spi.h"
|
||||
#include "rx/nrf24_cx10.h"
|
||||
|
@ -110,21 +114,23 @@ STATIC_UNIT_TESTED bool rxSpiSetProtocol(rx_spi_protocol_e protocol)
|
|||
* Called from updateRx in rx.c, updateRx called from taskUpdateRxCheck.
|
||||
* If taskUpdateRxCheck returns true, then taskUpdateRxMain will shortly be called.
|
||||
*/
|
||||
bool rxSpiDataReceived(void)
|
||||
uint8_t rxSpiFrameStatus(void)
|
||||
{
|
||||
if (protocolDataReceived(rxSpiPayload) == RX_SPI_RECEIVED_DATA) {
|
||||
rxSpiNewPacketAvailable = true;
|
||||
return true;
|
||||
return RX_FRAME_COMPLETE;
|
||||
}
|
||||
return false;
|
||||
return RX_FRAME_PENDING;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set and initialize the RX protocol
|
||||
*/
|
||||
bool rxSpiInit(rx_spi_type_e spiType, const rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback)
|
||||
bool rxSpiInit(const rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback)
|
||||
{
|
||||
bool ret = false;
|
||||
|
||||
const rx_spi_type_e spiType = feature(FEATURE_SOFTSPI) ? RX_SPI_SOFTSPI : RX_SPI_HARDSPI;
|
||||
rxSpiDeviceInit(spiType);
|
||||
if (rxSpiSetProtocol(rxConfig->rx_spi_protocol)) {
|
||||
protocolInit(rxConfig, rxRuntimeConfig);
|
||||
|
|
|
@ -20,8 +20,6 @@
|
|||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "rx/rx.h"
|
||||
|
||||
typedef enum {
|
||||
NRF24RX_V202_250K = 0,
|
||||
NRF24RX_V202_1M,
|
||||
|
@ -70,7 +68,5 @@ typedef enum {
|
|||
#define RC_CHANNEL_HEADLESS RC_SPI_AUX5
|
||||
#define RC_CHANNEL_RTH RC_SPI_AUX6 // return to home
|
||||
|
||||
bool rxSpiDataReceived(void);
|
||||
struct rxConfig_s;
|
||||
struct rxRuntimeConfig_s;
|
||||
bool rxSpiInit(rx_spi_type_e spiType, const struct rxConfig_s *rxConfig, struct rxRuntimeConfig_s *rxRuntimeConfig, rcReadRawDataPtr *callback);
|
||||
uint8_t rxSpiFrameStatus(void);
|
||||
bool rxSpiInit(const rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback);
|
||||
|
|
|
@ -81,8 +81,8 @@
|
|||
#define USE_RX_SYMA
|
||||
#define USE_RX_V202
|
||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_SYMA_X5
|
||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_SYMA_X5C
|
||||
#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_INAV
|
||||
#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_SYMA_X5C
|
||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_INAV
|
||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_H8_3D
|
||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_CX10A
|
||||
//#define RX_SPI_DEFAULT_PROTOCOL NRF24RX_V202_1M
|
||||
|
|
Loading…
Reference in New Issue