FX: Add telemetry delay for warnings

* telemetry delay for FX protocol warnings

* Update Protocols_Details.md

---------

Co-authored-by: dellclient <dellclient>
This commit is contained in:
MRC3742
2026-07-16 04:11:51 -04:00
committed by GitHub
parent 699e796a01
commit fc8730976c
2 changed files with 20 additions and 3 deletions

View File

@@ -282,7 +282,7 @@ uint16_t FX_callback()
{
#ifdef FX_HUB_TELEMETRY
bool rx=false;
static uint8_t telem_count = 0;
switch(phase)
{
case FX_DATA:
@@ -319,6 +319,8 @@ uint16_t FX_callback()
if(XN297_ReadPayload(packet_in, FX_QF012_RX_PAYLOAD_SIZE))
{//Good CRC
telemetry_link = 1;
telemetry_lost = 0;
telem_count = 0;
if ( sub_protocol == FX_BM26 )
v_lipo1 = packet_in[0] < packet_in[2] ? 60:81; // packets: AA 00 55 -> 55 00 AA = low voltage 3.7V
else
@@ -330,6 +332,19 @@ uint16_t FX_callback()
}
debugln();
}
if(telem_count > 4*63) // Around 3.5 sec with no telemetry
telemetry_lost = 1;
else
{
telem_count++;
if(!telemetry_lost && (telem_count & 0x3F) == 0)
{// Should have received a telem packet but... Send telem to the radio to keep it alive
telemetry_link = 1;
#if 0
debugln("Miss");
#endif
}
}
phase++;
return FX9630_WRITE_TIME;
default: //FX_RX
@@ -362,6 +377,7 @@ void FX_init()
bind_counter=FX_BIND_COUNT;
#ifdef FX_HUB_TELEMETRY
RX_RSSI = 100; // Dummy value
telemetry_lost = 1;
phase = FX_DATA;
#endif
}

View File

@@ -1871,7 +1871,7 @@ FX9630 and FX9603 Gyro: -100%=6G small throw, 0%=6G large throw, +100%=3D
QIDI-550 Gyro: -100%=3D, 0%=6G, +100%=Torque
### Sub_protocol Q560 - *3*
Model: QIDI-560
Model: QIDI-560, QIDI-580 (Cirrus SR22)
CH1|CH2|CH3|CH4|CH5|CH6|CH7
---|---|---|---|---|---|---
@@ -1879,7 +1879,8 @@ A|E|T|R|FLIP|GYRO|LEDs
FLIP is a toggle channel meaning that -100% to +100% is a command and +100% to -100% is also a command
Gyro: -100%=6G, 0%=3D+Gyro, +100%=3D
- GYRO QIDI-560: -100%=6G, 0%=3D+Gyro, +100%=3D
- GYRO QIDI-580: -100%=6G, 0%=6G+Inverted, +100%=3D+Gyro
### Sub_protocol QF012 - *4*
Model: QF012 SBD Dauntless