mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 15:58:12 +00:00
Fix XN297Dump enhanced payload detection
This commit is contained in:
parent
09f39ea60f
commit
c52ac2cefc
@ -119,14 +119,18 @@ static boolean __attribute__((unused)) XN297Dump_process_packet(void)
|
||||
}
|
||||
|
||||
//Try enhanced payload
|
||||
crc = 0xb5d2;
|
||||
uint16_t crc_save = 0xb5d2;
|
||||
packet_length=0;
|
||||
for (uint8_t i = 0; i < XN297DUMP_MAX_PACKET_LEN-XN297DUMP_CRC_LENGTH; i++)
|
||||
{
|
||||
packet_sc[i]=packet[i]^xn297_scramble[i];
|
||||
crc = crc_save;
|
||||
crc16_update( packet[i], 8);
|
||||
crc_save = crc;
|
||||
crc16_update( packet[i+1] & 0xC0, 2);
|
||||
crcxored=(packet[i+1]<<10)|(packet[i+2]<<2)|(packet[i+3]>>6) ;
|
||||
if(i>=3)
|
||||
{
|
||||
if((crc ^ pgm_read_word(&xn297_crc_xorout_scrambled_enhanced[i - 3])) == crcxored)
|
||||
{ // Found a valid CRC for the enhanced payload mode
|
||||
packet_length=i;
|
||||
@ -144,6 +148,7 @@ static boolean __attribute__((unused)) XN297Dump_process_packet(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(packet_length!=0)
|
||||
{ // Found a valid CRC for the enhanced payload mode
|
||||
enhanced=true;
|
||||
@ -324,7 +329,7 @@ static uint16_t XN297Dump_callback()
|
||||
switch(bitrate)
|
||||
{
|
||||
case XN297DUMP_250K:
|
||||
XN297_Configure(XN297_CRCEN, scramble?XN297_SCRAMBLED:XN297_UNSCRAMBLED, XN297_250K);
|
||||
XN297_Configure(XN297_CRCEN, scramble?XN297_SCRAMBLED:XN297_UNSCRAMBLED, XN297_250K, true);
|
||||
debug("250K");
|
||||
break;
|
||||
case XN297DUMP_2M:
|
||||
|
@ -53,7 +53,7 @@ const uint16_t xn297_crc_xorout_enhanced[] = {
|
||||
0xABFC, 0xE68E, 0x0DE7, 0x28A2, 0x1965 };
|
||||
#endif
|
||||
|
||||
static bool __attribute__((unused)) XN297_Configure(bool crc_en, bool scramble_en, bool bitrate)
|
||||
static bool __attribute__((unused)) XN297_Configure(bool crc_en, bool scramble_en, bool bitrate, bool force_nrf)
|
||||
{
|
||||
xn297_crc = crc_en;
|
||||
xn297_scramble_enabled = scramble_en;
|
||||
@ -61,7 +61,7 @@ static bool __attribute__((unused)) XN297_Configure(bool crc_en, bool scramble_e
|
||||
xn297_rf = XN297_NRF;
|
||||
|
||||
#if defined(NRF24L01_INSTALLED) and defined(CC2500_INSTALLED)
|
||||
if(bitrate == XN297_1M)
|
||||
if(bitrate == XN297_1M || force_nrf)
|
||||
xn297_rf = XN297_NRF; // Use NRF24L01
|
||||
else
|
||||
xn297_rf = XN297_CC2500; // Use CC2500
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
//////////////
|
||||
// Functions
|
||||
static bool __attribute__((unused)) XN297_Configure(bool, bool, bool);
|
||||
static bool __attribute__((unused)) XN297_Configure(bool, bool, bool, bool force_nrf=false);
|
||||
static void __attribute__((unused)) XN297_SetTXAddr(const uint8_t*, uint8_t);
|
||||
static void __attribute__((unused)) XN297_SetRXAddr(const uint8_t*, uint8_t);
|
||||
static void __attribute__((unused)) XN297_SetTxRxMode(enum TXRX_State);
|
||||
|
Loading…
x
Reference in New Issue
Block a user