mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-24 00:35:39 +03:00
Allow CRSF RX binding via cli (#13119)
This commit is contained in:
parent
b199e65000
commit
c41e2f2680
5 changed files with 35 additions and 1 deletions
|
@ -681,4 +681,22 @@ bool crsfRxIsActive(void)
|
||||||
{
|
{
|
||||||
return serialPort != NULL;
|
return serialPort != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void crsfRxBind(void)
|
||||||
|
{
|
||||||
|
if (serialPort != NULL) {
|
||||||
|
uint8_t bindFrame[] = {
|
||||||
|
CRSF_SYNC_BYTE,
|
||||||
|
0x07, // frame length
|
||||||
|
CRSF_FRAMETYPE_COMMAND,
|
||||||
|
CRSF_ADDRESS_CRSF_RECEIVER,
|
||||||
|
CRSF_ADDRESS_FLIGHT_CONTROLLER,
|
||||||
|
CRSF_COMMAND_SUBCMD_RX,
|
||||||
|
CRSF_COMMAND_SUBCMD_RX_BIND,
|
||||||
|
0x9E, // Command CRC8
|
||||||
|
0xE8, // Packet CRC8
|
||||||
|
};
|
||||||
|
serialWriteBuf(serialPort, bindFrame, 9);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -88,3 +88,4 @@ bool crsfRxInit(const struct rxConfig_s *initialRxConfig, struct rxRuntimeState_
|
||||||
void crsfRxUpdateBaudrate(uint32_t baudrate);
|
void crsfRxUpdateBaudrate(uint32_t baudrate);
|
||||||
bool crsfRxUseNegotiatedBaud(void);
|
bool crsfRxUseNegotiatedBaud(void);
|
||||||
bool crsfRxIsActive(void);
|
bool crsfRxIsActive(void);
|
||||||
|
void crsfRxBind(void);
|
||||||
|
|
|
@ -60,9 +60,14 @@ typedef enum {
|
||||||
} crsfFrameType_e;
|
} crsfFrameType_e;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
CRSF_COMMAND_SUBCMD_RX = 0x10, // receiver command
|
||||||
CRSF_COMMAND_SUBCMD_GENERAL = 0x0A, // general command
|
CRSF_COMMAND_SUBCMD_GENERAL = 0x0A, // general command
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
CRSF_COMMAND_SUBCMD_RX_BIND = 0x01, // bind command
|
||||||
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CRSF_COMMAND_SUBCMD_GENERAL_CRSF_SPEED_PROPOSAL = 0x70, // proposed new CRSF port speed
|
CRSF_COMMAND_SUBCMD_GENERAL_CRSF_SPEED_PROPOSAL = 0x70, // proposed new CRSF port speed
|
||||||
CRSF_COMMAND_SUBCMD_GENERAL_CRSF_SPEED_RESPONSE = 0x71, // response to the proposed CRSF port speed
|
CRSF_COMMAND_SUBCMD_GENERAL_CRSF_SPEED_RESPONSE = 0x71, // response to the proposed CRSF port speed
|
||||||
|
|
|
@ -24,12 +24,13 @@
|
||||||
|
|
||||||
#include "rx/rx_spi_common.h"
|
#include "rx/rx_spi_common.h"
|
||||||
#include "rx/srxl2.h"
|
#include "rx/srxl2.h"
|
||||||
|
#include "rx/crsf.h"
|
||||||
|
|
||||||
#include "rx_bind.h"
|
#include "rx_bind.h"
|
||||||
|
|
||||||
static bool doRxBind(bool doBind)
|
static bool doRxBind(bool doBind)
|
||||||
{
|
{
|
||||||
#if !defined(USE_SERIALRX_SRXL2) && !defined(USE_RX_FRSKY_SPI) && !defined(USE_RX_SFHSS_SPI) && !defined(USE_RX_FLYSKY) && !defined(USE_RX_SPEKTRUM) && !defined(USE_RX_EXPRESSLRS)
|
#if !defined(USE_SERIALRX_SRXL2) && !defined(USE_RX_FRSKY_SPI) && !defined(USE_RX_SFHSS_SPI) && !defined(USE_RX_FLYSKY) && !defined(USE_RX_SPEKTRUM) && !defined(USE_RX_EXPRESSLRS) && !defined(USE_RX_CRSF)
|
||||||
UNUSED(doBind);
|
UNUSED(doBind);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -40,6 +41,14 @@ static bool doRxBind(bool doBind)
|
||||||
switch (rxRuntimeState.serialrxProvider) {
|
switch (rxRuntimeState.serialrxProvider) {
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
#if defined(USE_RX_CRSF)
|
||||||
|
case SERIALRX_CRSF:
|
||||||
|
if (doBind) {
|
||||||
|
crsfRxBind();
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#if defined(USE_SERIALRX_SRXL2)
|
#if defined(USE_SERIALRX_SRXL2)
|
||||||
case SERIALRX_SRXL2:
|
case SERIALRX_SRXL2:
|
||||||
if (doBind) {
|
if (doBind) {
|
||||||
|
|
|
@ -153,6 +153,7 @@
|
||||||
#define USE_RX_SPI
|
#define USE_RX_SPI
|
||||||
|
|
||||||
#define USE_RX_CC2500
|
#define USE_RX_CC2500
|
||||||
|
#define USE_RX_CRSF
|
||||||
#define USE_RX_EXPRESSLRS
|
#define USE_RX_EXPRESSLRS
|
||||||
#define USE_RX_SX1280
|
#define USE_RX_SX1280
|
||||||
#define USE_RX_SX127X
|
#define USE_RX_SX127X
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue