diff --git a/Multiprotocol/FrSkyX_cc2500.ino b/Multiprotocol/FrSkyX_cc2500.ino index 4a1be44..68de29e 100644 --- a/Multiprotocol/FrSkyX_cc2500.ino +++ b/Multiprotocol/FrSkyX_cc2500.ino @@ -85,6 +85,11 @@ static void __attribute__((unused)) FrSkyX_build_bind_packet() // uint8_t limit = (sub_protocol & 2 ) ? 31 : 28 ; memset(&packet[13], 0, limit - 13); + if(binding_idx&0x01) + memcpy(&packet[13],(void *)"\x55\xAA\x5A\xA5",4); // Telem off + if(binding_idx&0x02) + memcpy(&packet[17],(void *)"\x55\xAA\x5A\xA5",4); // CH9-16 + // uint16_t lcrc = FrSkyX_crc(&packet[3], limit-3); // packet[limit++] = lcrc >> 8; @@ -431,6 +436,7 @@ uint16_t initFrSkyX() SportHead=SportTail=0; // empty data buffer #endif FrSkyX_RX_Seq = 0 ; // Seq 0 to start with + binding_idx=0; // CH1-8 and Telem on return 10000; } #endif \ No newline at end of file diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index 8e91747..6bc00b4 100644 --- a/Multiprotocol/Multiprotocol.h +++ b/Multiprotocol/Multiprotocol.h @@ -19,7 +19,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 3 #define VERSION_REVISION 0 -#define VERSION_PATCH_LEVEL 47 +#define VERSION_PATCH_LEVEL 48 //****************** // Protocols @@ -298,6 +298,13 @@ enum ESKY150 ESKY150_4CH = 0, ESKY150_7CH = 1, }; +enum XN297DUMP +{ + XN297DUMP_250K = 0, + XN297DUMP_1M = 1, + XN297DUMP_2M = 2, + XN297DUMP_AUTO = 3, +}; #define NONE 0 #define P_HIGH 1 diff --git a/Multiprotocol/Multiprotocol.ino b/Multiprotocol/Multiprotocol.ino index 7848abd..545c717 100644 --- a/Multiprotocol/Multiprotocol.ino +++ b/Multiprotocol/Multiprotocol.ino @@ -1709,6 +1709,12 @@ void update_serial_data() #endif if(rx_len>27) { // Data available for the current protocol + #ifdef FRSKYX_CC2500_INO + if(protocol==PROTO_FRSKYX && rx_len==28) + {//Protocol waiting for 1 byte during bind + binding_idx=rx_ok_buff[27]; + } + #endif #ifdef SPORT_SEND if(protocol==PROTO_FRSKYX && rx_len==35) {//Protocol waiting for 8 bytes