mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-16 12:55:19 +03:00
Merge pull request #11129 from AlienWiiBF/FRSky_D8_Fix
Fix FrSky D8 protocol bind issues
This commit is contained in:
commit
a63172cc1f
3 changed files with 14 additions and 6 deletions
|
@ -229,7 +229,8 @@ rx_spi_received_e frSkyDHandlePacket(uint8_t * const packet, uint8_t * const pro
|
||||||
timeoutUs = 1;
|
timeoutUs = 1;
|
||||||
if (packet[0] == 0x11) {
|
if (packet[0] == 0x11) {
|
||||||
if ((packet[1] == rxCc2500SpiConfig()->bindTxId[0]) &&
|
if ((packet[1] == rxCc2500SpiConfig()->bindTxId[0]) &&
|
||||||
(packet[2] == rxCc2500SpiConfig()->bindTxId[1])) {
|
(packet[2] == rxCc2500SpiConfig()->bindTxId[1]) &&
|
||||||
|
(packet[5] == rxCc2500SpiConfig()->bindTxId[2])) {
|
||||||
rxSpiLedOn();
|
rxSpiLedOn();
|
||||||
nextChannel(1);
|
nextChannel(1);
|
||||||
cc2500setRssiDbm(packet[18]);
|
cc2500setRssiDbm(packet[18]);
|
||||||
|
|
|
@ -339,9 +339,14 @@ static bool getBind(uint8_t *packet)
|
||||||
if (packet[5] == 0x00) {
|
if (packet[5] == 0x00) {
|
||||||
rxCc2500SpiConfigMutable()->bindTxId[0] = packet[3];
|
rxCc2500SpiConfigMutable()->bindTxId[0] = packet[3];
|
||||||
rxCc2500SpiConfigMutable()->bindTxId[1] = packet[4];
|
rxCc2500SpiConfigMutable()->bindTxId[1] = packet[4];
|
||||||
|
if (spiProtocol == RX_SPI_FRSKY_D) {
|
||||||
|
rxCc2500SpiConfigMutable()->bindTxId[2] = packet[17];
|
||||||
|
rxCc2500SpiConfigMutable()->rxNum = 0;
|
||||||
|
} else {
|
||||||
rxCc2500SpiConfigMutable()->bindTxId[2] = packet[11];
|
rxCc2500SpiConfigMutable()->bindTxId[2] = packet[11];
|
||||||
rxCc2500SpiConfigMutable()->rxNum = packet[12];
|
rxCc2500SpiConfigMutable()->rxNum = packet[12];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
for (uint8_t n = 0; n < 5; n++) {
|
for (uint8_t n = 0; n < 5; n++) {
|
||||||
rxCc2500SpiConfigMutable()->bindHopData[packet[5] + n] = (packet[5] + n) >= 47 ? 0 : packet[6 + n];
|
rxCc2500SpiConfigMutable()->bindHopData[packet[5] + n] = (packet[5] + n) >= 47 ? 0 : packet[6 + n];
|
||||||
}
|
}
|
||||||
|
@ -491,6 +496,7 @@ bool frSkySpiInit(const rxSpiConfig_t *rxSpiConfig, rxRuntimeState_t *rxRuntimeS
|
||||||
|
|
||||||
handlePacket = frSkyDHandlePacket;
|
handlePacket = frSkyDHandlePacket;
|
||||||
setRcData = frSkyDSetRcData;
|
setRcData = frSkyDSetRcData;
|
||||||
|
packetLength = FRSKY_RX_D8_LENGTH;
|
||||||
frSkyDInit();
|
frSkyDInit();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -33,9 +33,10 @@
|
||||||
|
|
||||||
#define MAX_MISSING_PKT 100
|
#define MAX_MISSING_PKT 100
|
||||||
|
|
||||||
#define FRSKY_RX_D16FCC_LENGTH 0x1d + 3
|
#define FRSKY_RX_D8_LENGTH (0x11 + 3)
|
||||||
#define FRSKY_RX_D16LBT_LENGTH 0x20 + 3
|
#define FRSKY_RX_D16FCC_LENGTH (0x1d + 3)
|
||||||
#define FRSKY_RX_D16v2_LENGTH 0x1d + 3
|
#define FRSKY_RX_D16LBT_LENGTH (0x20 + 3)
|
||||||
|
#define FRSKY_RX_D16v2_LENGTH (0x1d + 3)
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
STATE_INIT = 0,
|
STATE_INIT = 0,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue