diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index 9bed66a..8b8e15f 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 62 +#define VERSION_PATCH_LEVEL 63 //****************** // Protocols diff --git a/Multiprotocol/XK_nrf24l01.ino b/Multiprotocol/XK_nrf24l01.ino index 27faa46..91797d2 100644 --- a/Multiprotocol/XK_nrf24l01.ino +++ b/Multiprotocol/XK_nrf24l01.ino @@ -18,7 +18,7 @@ Multiprotocol is distributed in the hope that it will be useful, #include "iface_xn297l.h" -#define FORCE_XK_ORIGINAL_ID +//#define FORCE_XK_ORIGINAL_ID #define XK_INITIAL_WAIT 500 #define XK_PACKET_PERIOD 4000 @@ -58,16 +58,16 @@ static void __attribute__((unused)) XK_send_packet() { uint16_t val=convert_channel_10b(THROTTLE); packet[0] = val>>2; // 0..255 - packet[12] |= val & 2; + //packet[12] |= val & 2; val=XK_convert_channel(RUDDER); packet[1] = val>>2; - packet[12] |= (val & 2)<<2; + //packet[12] |= (val & 2)<<2; val=XK_convert_channel(ELEVATOR); packet[2] = val>>2; - packet[13] |= val & 2; + //packet[13] |= val & 2; val=XK_convert_channel(AILERON); packet[3] = val>>2; - packet[13] |= (val & 2)<<2; + //packet[13] |= (val & 2)<<2; memset(&packet[4],0x40,3); // Trims @@ -91,16 +91,16 @@ static void __attribute__((unused)) XK_send_packet() crc+=packet[i]; packet[15]=crc; - debug("C: %02X, P:",hopping_frequency[(IS_BIND_IN_PROGRESS?0:XK_RF_BIND_NUM_CHANNELS)+(hopping_frequency_no>>1)]); +// debug("C: %02X, P:",hopping_frequency[(IS_BIND_IN_PROGRESS?0:XK_RF_BIND_NUM_CHANNELS)+(hopping_frequency_no>>1)]); XN297L_Hopping((IS_BIND_IN_PROGRESS?0:XK_RF_BIND_NUM_CHANNELS)+(hopping_frequency_no>>1)); hopping_frequency_no++; if(hopping_frequency_no >= (IS_BIND_IN_PROGRESS?XK_RF_BIND_NUM_CHANNELS*2:XK_RF_NUM_CHANNELS*2)) hopping_frequency_no=0; XN297L_WritePayload(packet, XK_PAYLOAD_SIZE); - for(uint8_t i=0; i>5)&0x03); +// debug("start=%d, addr=",start); + for(uint8_t i=0; i<5; i++) + { + rx_tx_addr[i]=pgm_read_byte_near( &XK_tx_addr[ start + i ] ); +// debug("%02X ", rx_tx_addr[ i ]); + } +// debugln(""); + + #ifdef FORCE_XK_ORIGINAL_ID + switch(RX_num%2) + { + default: + //TX1 X8 X450 + //GID + packet[7]=0x04; + packet[8]=0x15; + packet[9]=0x22; + //Normal hop + memcpy(&hopping_frequency[XK_RF_BIND_NUM_CHANNELS],(uint8_t*)"\x3B\x48\x40\x49", XK_RF_NUM_CHANNELS); // freq and order verified + //Normal packet address + memcpy(rx_tx_addr,(uint8_t*)"\x2C\x96\x2A\xA9\x32",5); + break; + case 1: + //TX2 X4 X420 + //GID + packet[7]=0x13; + packet[8]=0x24; + packet[9]=0x18; + //Normal hop + memcpy(&hopping_frequency[XK_RF_BIND_NUM_CHANNELS],(uint8_t*)"\x36\x41\x37\x4E", XK_RF_NUM_CHANNELS); // freq ok and order from xn297dump auto + //Normal packet address + memcpy(rx_tx_addr,(uint8_t*)"\xA6\x83\xEB\x4B\xC9",5); + break; + } + #endif } static void __attribute__((unused)) XK_init()