Yuxiang multi IDs/Freqs

This commit is contained in:
pascallanger 2025-02-06 11:57:40 +01:00
parent 58bfd3b8b0
commit b6f78e93a0
2 changed files with 33 additions and 13 deletions

View File

@ -19,7 +19,7 @@
#define VERSION_MAJOR 1 #define VERSION_MAJOR 1
#define VERSION_MINOR 3 #define VERSION_MINOR 3
#define VERSION_REVISION 4 #define VERSION_REVISION 4
#define VERSION_PATCH_LEVEL 29 #define VERSION_PATCH_LEVEL 30
#define MODE_SERIAL 0 #define MODE_SERIAL 0

View File

@ -17,12 +17,12 @@ Multiprotocol is distributed in the hope that it will be useful,
#include "iface_xn297.h" #include "iface_xn297.h"
#define YUXIANG_FORCE_ID //#define YUXIANG_FORCE_ID
#define YUXIANG_PACKET_PERIOD 12422 #define YUXIANG_PACKET_PERIOD 12422
#define YUXIANG_PACKET_SIZE 9 #define YUXIANG_PACKET_SIZE 9
#define YUXIANG_BIND_COUNT 150 #define YUXIANG_BIND_COUNT 150
#define YUXIANG_BIND_FREQ 0x30 #define YUXIANG_BIND_FREQ 0x30 //48
#define YUXIANG_RF_NUM_CHANNELS 4 #define YUXIANG_RF_NUM_CHANNELS 4
#define YUXIANG_WRITE_TIME 1000 #define YUXIANG_WRITE_TIME 1000
@ -118,23 +118,43 @@ static void __attribute__((unused)) YUXIANG_RF_init()
static void __attribute__((unused)) YUXIANG_initialize_txid() static void __attribute__((unused)) YUXIANG_initialize_txid()
{ {
#ifdef YUXIANG_FORCE_ID //Modify address to influence hop
if(rx_tx_addr[3] & 0x01) rx_tx_addr[0] += RX_num;
{//TX1 //Calc hop
memcpy(rx_tx_addr,(uint8_t *)"\xB3\x13\x36\xDD",4); //rx_tx_addr[4]=0xD9 uint8_t val;
memcpy(hopping_frequency,(uint8_t *)"\x49\x32\x35\x42",4); for(uint8_t i=0; i<4; i++)
{
val = i*0x06;
if(i) val |= 0x01;
val += rx_tx_addr[0];
val &= 0x1F;
val += 47;
if(val < 50)
val = 50;
if(val > 62 && val < 66)
val = 62;
hopping_frequency[i] = val;
} }
else
{//TX2 #ifdef YUXIANG_FORCE_ID
switch(RX_num)
{
case 0://TX1
memcpy(rx_tx_addr,(uint8_t *)"\xB3\x13\x36\xDD",4); //rx_tx_addr[4]=0xD9
memcpy(hopping_frequency,(uint8_t *)"\x42\x49\x32\x35",4); //66,73,50,53
break;
case 1://TX2
memcpy(rx_tx_addr,(uint8_t *)"\xEB\x13\x36\xAC",4); //rx_tx_addr[4]=0xE0 memcpy(rx_tx_addr,(uint8_t *)"\xEB\x13\x36\xAC",4); //rx_tx_addr[4]=0xE0
memcpy(hopping_frequency,(uint8_t *)"\x4D\x3A\x3E\x47",4); memcpy(hopping_frequency,(uint8_t *)"\x47\x4D\x3A\x3E",4); //58,62,71,77
break;
} }
#endif #endif
uint8_t sum=0; uint8_t sum=0;
for(uint8_t i=0; i<4; i++) for(uint8_t i=0; i<4; i++)
sum += rx_tx_addr[i]; sum += rx_tx_addr[i];
rx_tx_addr[4] = sum; rx_tx_addr[4] = sum;
debugln("ID: %02X %02X %02X %02X %02X , HOP: %02X %02X %02X %02X",rx_tx_addr[0],rx_tx_addr[1],rx_tx_addr[2],rx_tx_addr[3],rx_tx_addr[4],hopping_frequency[0],hopping_frequency[1],hopping_frequency[2],hopping_frequency[3]); debugln("ID: %02X %02X %02X %02X %02X , HOP: %2d %2d %2d %2d",rx_tx_addr[0],rx_tx_addr[1],rx_tx_addr[2],rx_tx_addr[3],rx_tx_addr[4],hopping_frequency[0],hopping_frequency[1],hopping_frequency[2],hopping_frequency[3]);
} }
uint16_t YUXIANG_callback() uint16_t YUXIANG_callback()