mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-10 15:48:10 +00:00
RX protocols: abort RX bind as requested
This commit is contained in:
parent
fdd357619b
commit
660282db2e
@ -104,6 +104,7 @@ uint16_t AFHDS2A_Rx_callback()
|
|||||||
|
|
||||||
switch(phase) {
|
switch(phase) {
|
||||||
case AFHDS2A_RX_BIND1:
|
case AFHDS2A_RX_BIND1:
|
||||||
|
if(IS_BIND_DONE) return initAFHDS2A_Rx(); // Abort bind
|
||||||
if (AFHDS2A_Rx_data_ready()) {
|
if (AFHDS2A_Rx_data_ready()) {
|
||||||
A7105_ReadData(AFHDS2A_RX_TXPACKET_SIZE);
|
A7105_ReadData(AFHDS2A_RX_TXPACKET_SIZE);
|
||||||
if ((packet[0] == 0xbb && packet[9] == 0x01) || (packet[0] == 0xbc && packet[9] <= 0x02)) {
|
if ((packet[0] == 0xbb && packet[9] == 0x01) || (packet[0] == 0xbc && packet[9] <= 0x02)) {
|
||||||
@ -118,6 +119,7 @@ uint16_t AFHDS2A_Rx_callback()
|
|||||||
return 10000;
|
return 10000;
|
||||||
|
|
||||||
case AFHDS2A_RX_BIND2:
|
case AFHDS2A_RX_BIND2:
|
||||||
|
if(IS_BIND_DONE) return initAFHDS2A_Rx(); // Abort bind
|
||||||
// got 2nd bind packet from tx ?
|
// got 2nd bind packet from tx ?
|
||||||
if (AFHDS2A_Rx_data_ready()) {
|
if (AFHDS2A_Rx_data_ready()) {
|
||||||
A7105_ReadData(AFHDS2A_RX_TXPACKET_SIZE);
|
A7105_ReadData(AFHDS2A_RX_TXPACKET_SIZE);
|
||||||
@ -143,6 +145,7 @@ uint16_t AFHDS2A_Rx_callback()
|
|||||||
packet[9] = 0x01;
|
packet[9] = 0x01;
|
||||||
packet[10] = 0x00;
|
packet[10] = 0x00;
|
||||||
memset(&packet[11], 0xFF, 26);
|
memset(&packet[11], 0xFF, 26);
|
||||||
|
A7105_SetTxRxMode(TX_EN);
|
||||||
A7105_WriteData(AFHDS2A_RX_RXPACKET_SIZE, packet_count++ & 1 ? 0x0D : 0x8C);
|
A7105_WriteData(AFHDS2A_RX_RXPACKET_SIZE, packet_count++ & 1 ? 0x0D : 0x8C);
|
||||||
phase |= AFHDS2A_RX_WAIT_WRITE;
|
phase |= AFHDS2A_RX_WAIT_WRITE;
|
||||||
return 1700;
|
return 1700;
|
||||||
@ -153,6 +156,7 @@ uint16_t AFHDS2A_Rx_callback()
|
|||||||
while (micros() - pps_timer < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
while (micros() - pps_timer < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
||||||
if (!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
if (!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
||||||
break;
|
break;
|
||||||
|
A7105_SetTxRxMode(RX_EN);
|
||||||
A7105_Strobe(A7105_RX);
|
A7105_Strobe(A7105_RX);
|
||||||
phase &= ~AFHDS2A_RX_WAIT_WRITE;
|
phase &= ~AFHDS2A_RX_WAIT_WRITE;
|
||||||
return 10000;
|
return 10000;
|
||||||
|
@ -129,6 +129,7 @@ uint16_t Bayang_Rx_callback()
|
|||||||
|
|
||||||
switch (phase) {
|
switch (phase) {
|
||||||
case BAYANG_RX_BIND:
|
case BAYANG_RX_BIND:
|
||||||
|
if(IS_BIND_DONE) return initBayang_Rx(); // Abort bind
|
||||||
if (NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_RX_DR)) {
|
if (NRF24L01_ReadReg(NRF24L01_07_STATUS) & _BV(NRF24L01_07_RX_DR)) {
|
||||||
// data received from TX
|
// data received from TX
|
||||||
if (XN297_ReadPayload(packet, BAYANG_RX_PACKET_SIZE) && ( packet[0] == 0xA4 || packet[0] == 0xA2 ) && Bayang_Rx_check_validity()) {
|
if (XN297_ReadPayload(packet, BAYANG_RX_PACKET_SIZE) && ( packet[0] == 0xA4 || packet[0] == 0xA2 ) && Bayang_Rx_check_validity()) {
|
||||||
|
@ -383,6 +383,8 @@ uint16_t FrSky_Rx_callback()
|
|||||||
static int8_t tune_low, tune_high;
|
static int8_t tune_low, tune_high;
|
||||||
uint8_t len, ch;
|
uint8_t len, ch;
|
||||||
|
|
||||||
|
if(IS_BIND_DONE && phase != FRSKY_RX_DATA) return initFrSky_Rx(); // Abort bind
|
||||||
|
|
||||||
if ((prev_option != option) && (phase >= FRSKY_RX_DATA))
|
if ((prev_option != option) && (phase >= FRSKY_RX_DATA))
|
||||||
{
|
{
|
||||||
if (option == 0)
|
if (option == 0)
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#define VERSION_MAJOR 1
|
#define VERSION_MAJOR 1
|
||||||
#define VERSION_MINOR 3
|
#define VERSION_MINOR 3
|
||||||
#define VERSION_REVISION 1
|
#define VERSION_REVISION 1
|
||||||
#define VERSION_PATCH_LEVEL 49
|
#define VERSION_PATCH_LEVEL 50
|
||||||
|
|
||||||
//******************
|
//******************
|
||||||
// Protocols
|
// Protocols
|
||||||
|
Loading…
x
Reference in New Issue
Block a user