LOSI multi ID

This commit is contained in:
pascallanger 2023-11-30 16:02:58 +01:00
parent d419e2b344
commit 11db967b8a

View File

@ -17,7 +17,7 @@
#include "iface_cyrf6936.h" #include "iface_cyrf6936.h"
#define LOSI_FORCE_ID //#define LOSI_FORCE_ID
const uint8_t LOSI_data_code[][8] = { const uint8_t LOSI_data_code[][8] = {
//(Freq-1)%5=0 //(Freq-1)%5=0
@ -152,7 +152,7 @@ uint16_t LOSI_callback()
{ {
BIND_DONE; BIND_DONE;
// Load normal data code // Load normal data code
CYRF_ConfigDataCode(LOSI_data_code[(((hopping_frequency[0] - 1) % 5) << 3) + num_ch], 16); CYRF_ConfigDataCode(LOSI_data_code[(((hopping_frequency[0] - 1) % 5) << 3) + ((rx_tx_addr[0] + rx_tx_addr[1] + rx_tx_addr[2]) % 8)], 16);
packet_period = 19738; packet_period = 19738;
} }
} }
@ -167,6 +167,14 @@ void LOSI_init()
CYRF_FindBestChannels(hopping_frequency, 1, 0, 0x07, 0x4F); // 0x07 and 0x4F are unknown limits, this routine resets the CRC Seed to 0 CYRF_FindBestChannels(hopping_frequency, 1, 0, 0x07, 0x4F); // 0x07 and 0x4F are unknown limits, this routine resets the CRC Seed to 0
hopping_frequency[0] |= 1; // Only odd channels are used, integrated in CYRF code... hopping_frequency[0] |= 1; // Only odd channels are used, integrated in CYRF code...
rx_tx_addr[0] = 0x56;
rx_tx_addr[1] = 0x52;
rx_tx_addr[2] = 0x23;
rx_tx_addr[3] = 0x8A;
crc8 = 0;
crc8 = (uint16_t)LOSI_check(((rx_tx_addr[2]&0x0F) << 8) + rx_tx_addr[3]) >> 12;
#ifdef LOSI_FORCE_ID #ifdef LOSI_FORCE_ID
/* /*
rx_tx_addr[0] = 0x47; rx_tx_addr[0] = 0x47;
@ -196,6 +204,8 @@ void LOSI_init()
//{ 0xC3, 0x0E, 0x01, 0x16, 0x0E, 0x32, 0x06, 0xBA, 0xE0, 0x83, 0x01, 0xFA, 0xAB, 0x3E, 0x8F, 0xAC } //{ 0xC3, 0x0E, 0x01, 0x16, 0x0E, 0x32, 0x06, 0xBA, 0xE0, 0x83, 0x01, 0xFA, 0xAB, 0x3E, 0x8F, 0xAC }
// Note: crc8=00..0F and num_ch=00..07 // Note: crc8=00..0F and num_ch=00..07
// num_ch = ((rx_tx_addr[0] + rx_tx_addr[1] + rx_tx_addr[2]) % 8);
// crc8 = (uint16_t)LOSI_check(((rx_tx_addr[2]&0x0F) << 8) + rx_tx_addr[3]) >> 12;
#endif #endif
CYRF_ConfigRFChannel(hopping_frequency[0]); CYRF_ConfigRFChannel(hopping_frequency[0]);