WLV8TX small changes and save few bytes

This commit is contained in:
pascallanger
2026-08-05 00:48:46 +02:00
parent 97fcd0bde0
commit 79b09468ac
6 changed files with 24 additions and 25 deletions

View File

@@ -167,7 +167,7 @@
74,3,RadioLink,RC4G,0,CH5,FS_CH1,FS_CH2,FS_CH3,FS_CH4
74,4,RadioLink,Dumbo_P,0,CH5,CH6,CH7,CH8GY,CH9,CH10,n-a,n-a,n-a,n-a,n-a,n-a
76,0,Realacc,R11,1,Flip,Light,Calib,HLess,RTH,ThCut,Rotat
76,1,Realacc,WLV8Tx,0,ST_Tr
76,1,Realacc,WLV8TX,0,ST_Tr
50,0,Redpine,Fast,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
50,1,Redpine,Slow,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
21,0,Futaba,SFHSS,0,CH5,CH6,CH7,CH8

View File

@@ -73,7 +73,7 @@
73,Kyosho,FHSS,Hype
74,RadioLink,Surface,Air,DumboRC,RC4G,Dumbo_P
75,---
76,Realacc,R11,WL-V8Tx
76,Realacc,R11,WLV8TX
77,OMP
78,M-Link
79,WFLY,RF20x

View File

@@ -182,7 +182,7 @@ const char STR_SUBTYPE_HOTT[] = "\x07""Sync\0 ""No_Sync";
const char STR_SUBTYPE_PELIKAN[] = "\x05""Pro\0 ""Lite\0""SCX24";
const char STR_SUBTYPE_V761[] = "\x05""3ch\0 ""4ch\0 ""TOPRC";
const char STR_SUBTYPE_RLINK[] = "\x07""Surface""Air\0 ""DumboRC""RC4G\0 ""Dumbo_P";
const char STR_SUBTYPE_REALACC[] = "\x07""R11\0 ""WL-V8Tx";
const char STR_SUBTYPE_REALACC[] = "\x06""R11\0 ""WLV8TX";
const char STR_SUBTYPE_KYOSHO[] = "\x04""FHSS""Hype";
const char STR_SUBTYPE_KYOSHO2[] = "\x05""KT-17";
const char STR_SUBTYPE_KYOSHO3[] = "\x03""ASF";

View File

@@ -42,8 +42,6 @@ enum
REALACC_WLV8TX_DATA
};
static uint8_t realacc_phase;
static bool realacc_wlv8tx_rx_b3;
#endif
static uint8_t realacc_bind_packet[REALACC_BIND_PAYLOAD_SIZE];
@@ -100,7 +98,7 @@ static void __attribute__((unused)) REALACC_send_packet()
static void __attribute__((unused)) REALACC_send_bind_packet()
{
#ifndef MULTI_AIR
if(sub_protocol == REALACC_WLV8TX && realacc_wlv8tx_rx_b3)
if(sub_protocol == REALACC_WLV8TX && rx_id[0])
{ // WLV8TX bind sent after RX packet B3 acknowledged
packet[0] = 0xB4;
packet[1] = rx_id[1];
@@ -187,21 +185,21 @@ static void __attribute__((unused)) REALACC_wlv8tx_process_rx()
if(len != 3)
return;
if(packet_in[0] == 0xB3 && !realacc_wlv8tx_rx_b3)
if(packet_in[0] == 0xB3 && !rx_id[0])
{
realacc_wlv8tx_rx_b3 = true;
rx_id[0] = 0x01;
rx_id[1] = packet_in[1];
rx_id[2] = packet_in[2];
rx_tx_addr[2] ^= packet_in[1];
rx_tx_addr[3] ^= packet_in[2];
rx_tx_addr[3] |= 0x80;
}
else if(packet_in[0] == 0xB5 && realacc_wlv8tx_rx_b3)
else if(packet_in[0] == 0xB5 && rx_id[0])
{
BIND_DONE;
XN297_SetTXAddr(rx_tx_addr, 4);
XN297_SetTxRxMode(TXRX_OFF);
realacc_phase = REALACC_WLV8TX_DATA;
bind_phase = REALACC_WLV8TX_DATA;
}
}
#endif
@@ -222,34 +220,34 @@ uint16_t REALACC_callback()
#else
if(sub_protocol == REALACC_WLV8TX)
{
if(realacc_phase == REALACC_WLV8TX_DATA)
if(bind_phase == REALACC_WLV8TX_DATA)
{
XN297_SetTxRxMode(TX_EN);
REALACC_send_packet();
return WLV8TX_PACKET_PERIOD;
}
if(realacc_phase == REALACC_WLV8TX_BIND_RX_SETUP)
if(bind_phase == REALACC_WLV8TX_BIND_RX_SETUP)
{
XN297_SetTxRxMode(TXRX_OFF);
XN297_SetTxRxMode(RX_EN);
realacc_phase = REALACC_WLV8TX_BIND_RX_CHECK;
bind_phase = REALACC_WLV8TX_BIND_RX_CHECK;
return WLV8TX_PACKET_PERIOD/3;
}
if(realacc_phase == REALACC_WLV8TX_BIND_RX_CHECK)
if(bind_phase == REALACC_WLV8TX_BIND_RX_CHECK)
{
REALACC_wlv8tx_process_rx();
if(realacc_phase == REALACC_WLV8TX_DATA)
if(bind_phase == REALACC_WLV8TX_DATA)
return WLV8TX_PACKET_PERIOD;
realacc_phase = REALACC_WLV8TX_BIND_TX;
bind_phase = REALACC_WLV8TX_BIND_TX;
return WLV8TX_PACKET_PERIOD/3;
}
//Bind Phase
XN297_SetTxRxMode(TXRX_OFF);
XN297_SetTxRxMode(TX_EN);
REALACC_send_bind_packet();
realacc_phase = REALACC_WLV8TX_BIND_RX_SETUP;
bind_phase = REALACC_WLV8TX_BIND_RX_SETUP;
return WLV8TX_PACKET_PERIOD/3;
}
#endif
@@ -277,10 +275,10 @@ void REALACC_init()
#ifndef MULTI_AIR
if(sub_protocol == REALACC_WLV8TX)
{
rx_id[0] = 0; // realacc_wlv8tx_rx_b3
rx_id[1] = 0;
rx_id[2] = 0;
realacc_wlv8tx_rx_b3 = false;
realacc_phase = REALACC_WLV8TX_BIND_TX;
bind_phase = REALACC_WLV8TX_BIND_TX;
memcpy(packet, realacc_bind_packet, 4);
packet[3] |= 0x80;
XN297_SetRXAddr(packet, 4);

View File

@@ -829,7 +829,8 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= {
PROTO_Q90C
NONE
PROTO_REALACC
NONE
REALACC_R11
REALACC_WLV8TX
PROTO_REDPINE
RED_FAST
RED_SLOW

View File

@@ -139,7 +139,7 @@ CFlie|AIR|38|CFlie||||||||NRF24L01|
[Q303](Protocols_Details.md#Q303---31)||31|Q303|CX35|CX10D|CX10WD|||||NRF24L01|XN297
[Q90C](Protocols_Details.md#Q90C---72)||72|Q90C*||||||||NRF24L01|XN297
[RadioLink](Protocols_Details.md#RadioLink---74)||74|Surface|Air|DumboRC|RC4G|Dumbo_P||||CC2500|
[Realacc](Protocols_Details.md#Realacc---76)||76|R11|WL-V8Tx|||||||NRF24L01|
[Realacc](Protocols_Details.md#Realacc---76)||76|R11|WLV8TX|||||||NRF24L01|
[Redpine](Protocols_Details.md#Redpine---50)||50|FAST|SLOW|||||||NRF24L01|XN297
[Scanner](Protocols_Details.md#Scanner---54)||54|||||||||CC2500|
[Scorpio](Protocols_Details.md#Scorpio---94)||94|||||||||CYRF6936|
@@ -2342,7 +2342,7 @@ CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11
---|---|---|---|---|---|---|---|---|----|----
A|E|T|R|FLIP|LIGHT|CALIB|HLESS|RTH|THR_CUT|ROTATE
### Sub_protocol WL-V8Tx - *1*
### Sub_protocol WLV8TX - *1*
Models: WLtoys 284019A, 284191, Cars using V8 Transmitter