mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-14 12:13:44 +00:00
XN297L emu scramble option
This commit is contained in:
parent
e96186015d
commit
3f77f59c8a
@ -19,7 +19,7 @@
|
|||||||
#define VERSION_MAJOR 1
|
#define VERSION_MAJOR 1
|
||||||
#define VERSION_MINOR 2
|
#define VERSION_MINOR 2
|
||||||
#define VERSION_REVISION 1
|
#define VERSION_REVISION 1
|
||||||
#define VERSION_PATCH_LEVEL 56
|
#define VERSION_PATCH_LEVEL 57
|
||||||
|
|
||||||
//******************
|
//******************
|
||||||
// Protocols
|
// Protocols
|
||||||
|
@ -389,8 +389,7 @@ void XN297_WritePayload(uint8_t* msg, uint8_t len)
|
|||||||
for (uint8_t i = 0; i < len; ++i)
|
for (uint8_t i = 0; i < len; ++i)
|
||||||
{
|
{
|
||||||
// bit-reverse bytes in packet
|
// bit-reverse bytes in packet
|
||||||
uint8_t b_out = bit_reverse(msg[i]);
|
buf[last] = bit_reverse(msg[i]);
|
||||||
buf[last] = b_out;
|
|
||||||
if(xn297_scramble_enabled)
|
if(xn297_scramble_enabled)
|
||||||
buf[last] ^= xn297_scramble[xn297_addr_len+i];
|
buf[last] ^= xn297_scramble[xn297_addr_len+i];
|
||||||
last++;
|
last++;
|
||||||
@ -411,7 +410,6 @@ void XN297_WritePayload(uint8_t* msg, uint8_t len)
|
|||||||
NRF24L01_WritePayload(buf, last);
|
NRF24L01_WritePayload(buf, last);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void XN297_WriteEnhancedPayload(uint8_t* msg, uint8_t len, uint8_t noack)
|
void XN297_WriteEnhancedPayload(uint8_t* msg, uint8_t len, uint8_t noack)
|
||||||
{
|
{
|
||||||
uint8_t packet[32];
|
uint8_t packet[32];
|
||||||
|
@ -292,7 +292,6 @@ static void __attribute__((unused)) Q303_init()
|
|||||||
case CX35:
|
case CX35:
|
||||||
case CX10D:
|
case CX10D:
|
||||||
case CX10WD:
|
case CX10WD:
|
||||||
XN297_SetScrambledMode(XN297_SCRAMBLED);
|
|
||||||
NRF24L01_SetBitrate(NRF24L01_BR_1M);
|
NRF24L01_SetBitrate(NRF24L01_BR_1M);
|
||||||
break;
|
break;
|
||||||
case Q303:
|
case Q303:
|
||||||
|
@ -66,6 +66,7 @@ static void __attribute__((unused)) XN297L_Init()
|
|||||||
|
|
||||||
CC2500_SetTxRxMode(TX_EN);
|
CC2500_SetTxRxMode(TX_EN);
|
||||||
CC2500_SetPower();
|
CC2500_SetPower();
|
||||||
|
xn297_scramble_enabled=XN297_SCRAMBLED; //enabled by default
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __attribute__((unused)) XN297L_SetTXAddr(const uint8_t* addr, uint8_t len)
|
static void __attribute__((unused)) XN297L_SetTXAddr(const uint8_t* addr, uint8_t len)
|
||||||
@ -84,22 +85,31 @@ static void __attribute__((unused)) XN297L_WritePayload(uint8_t* msg, uint8_t le
|
|||||||
static const uint16_t initial = 0xb5d2;
|
static const uint16_t initial = 0xb5d2;
|
||||||
|
|
||||||
// address
|
// address
|
||||||
for (i = 0; i < xn297_addr_len; ++i) {
|
for (i = 0; i < xn297_addr_len; ++i)
|
||||||
buf[last++] = xn297_tx_addr[xn297_addr_len - i - 1] ^ xn297_scramble[i];
|
{
|
||||||
|
buf[last] = xn297_tx_addr[xn297_addr_len - i - 1];
|
||||||
|
if(xn297_scramble_enabled)
|
||||||
|
buf[last] ^= xn297_scramble[i];
|
||||||
|
last++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// payload
|
// payload
|
||||||
for (i = 0; i < len; ++i) {
|
for (i = 0; i < len; ++i) {
|
||||||
// bit-reverse bytes in packet
|
// bit-reverse bytes in packet
|
||||||
uint8_t b_out = bit_reverse(msg[i]);
|
buf[last] = bit_reverse(msg[i]);
|
||||||
buf[last++] = b_out ^ xn297_scramble[xn297_addr_len + i];
|
if(xn297_scramble_enabled)
|
||||||
|
buf[last] ^= xn297_scramble[xn297_addr_len+i];
|
||||||
|
last++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// crc
|
// crc
|
||||||
uint16_t crc = initial;
|
uint16_t crc = initial;
|
||||||
for (uint8_t i = 0; i < last; ++i)
|
for (uint8_t i = 0; i < last; ++i)
|
||||||
crc = crc16_update(crc, buf[i], 8);
|
crc = crc16_update(crc, buf[i], 8);
|
||||||
crc ^= pgm_read_word(&xn297_crc_xorout_scrambled[xn297_addr_len - 3 + len]);
|
if(xn297_scramble_enabled)
|
||||||
|
crc ^= pgm_read_word(&xn297_crc_xorout_scrambled[xn297_addr_len - 3 + len]);
|
||||||
|
else
|
||||||
|
crc ^= pgm_read_word(&xn297_crc_xorout[xn297_addr_len - 3 + len]);
|
||||||
buf[last++] = crc >> 8;
|
buf[last++] = crc >> 8;
|
||||||
buf[last++] = crc & 0xff;
|
buf[last++] = crc & 0xff;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user