mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 08:15:30 +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;
|
||||
}
|
||||
|
||||
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
|
||||
|
|
|
@ -88,3 +88,4 @@ bool crsfRxInit(const struct rxConfig_s *initialRxConfig, struct rxRuntimeState_
|
|||
void crsfRxUpdateBaudrate(uint32_t baudrate);
|
||||
bool crsfRxUseNegotiatedBaud(void);
|
||||
bool crsfRxIsActive(void);
|
||||
void crsfRxBind(void);
|
||||
|
|
|
@ -60,9 +60,14 @@ typedef enum {
|
|||
} crsfFrameType_e;
|
||||
|
||||
enum {
|
||||
CRSF_COMMAND_SUBCMD_RX = 0x10, // receiver command
|
||||
CRSF_COMMAND_SUBCMD_GENERAL = 0x0A, // general command
|
||||
};
|
||||
|
||||
enum {
|
||||
CRSF_COMMAND_SUBCMD_RX_BIND = 0x01, // bind command
|
||||
};
|
||||
|
||||
enum {
|
||||
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
|
||||
|
|
|
@ -24,12 +24,13 @@
|
|||
|
||||
#include "rx/rx_spi_common.h"
|
||||
#include "rx/srxl2.h"
|
||||
#include "rx/crsf.h"
|
||||
|
||||
#include "rx_bind.h"
|
||||
|
||||
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);
|
||||
#endif
|
||||
|
||||
|
@ -40,6 +41,14 @@ static bool doRxBind(bool doBind)
|
|||
switch (rxRuntimeState.serialrxProvider) {
|
||||
default:
|
||||
return false;
|
||||
#if defined(USE_RX_CRSF)
|
||||
case SERIALRX_CRSF:
|
||||
if (doBind) {
|
||||
crsfRxBind();
|
||||
}
|
||||
|
||||
break;
|
||||
#endif
|
||||
#if defined(USE_SERIALRX_SRXL2)
|
||||
case SERIALRX_SRXL2:
|
||||
if (doBind) {
|
||||
|
|
|
@ -153,6 +153,7 @@
|
|||
#define USE_RX_SPI
|
||||
|
||||
#define USE_RX_CC2500
|
||||
#define USE_RX_CRSF
|
||||
#define USE_RX_EXPRESSLRS
|
||||
#define USE_RX_SX1280
|
||||
#define USE_RX_SX127X
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue