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 #ifdef FX_HUB_TELEMETRY
bool rx=false; bool rx=false;
static uint8_t telem_count = 0;
switch(phase) switch(phase)
{ {
case FX_DATA: case FX_DATA:
@@ -319,6 +319,8 @@ uint16_t FX_callback()
if(XN297_ReadPayload(packet_in, FX_QF012_RX_PAYLOAD_SIZE)) if(XN297_ReadPayload(packet_in, FX_QF012_RX_PAYLOAD_SIZE))
{//Good CRC {//Good CRC
telemetry_link = 1; telemetry_link = 1;
telemetry_lost = 0;
telem_count = 0;
if ( sub_protocol == FX_BM26 ) 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 v_lipo1 = packet_in[0] < packet_in[2] ? 60:81; // packets: AA 00 55 -> 55 00 AA = low voltage 3.7V
else else
@@ -330,6 +332,19 @@ uint16_t FX_callback()
} }
debugln(); 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++; phase++;
return FX9630_WRITE_TIME; return FX9630_WRITE_TIME;
default: //FX_RX default: //FX_RX
@@ -362,6 +377,7 @@ void FX_init()
bind_counter=FX_BIND_COUNT; bind_counter=FX_BIND_COUNT;
#ifdef FX_HUB_TELEMETRY #ifdef FX_HUB_TELEMETRY
RX_RSSI = 100; // Dummy value RX_RSSI = 100; // Dummy value
telemetry_lost = 1;
phase = FX_DATA; phase = FX_DATA;
#endif #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 QIDI-550 Gyro: -100%=3D, 0%=6G, +100%=Torque
### Sub_protocol Q560 - *3* ### Sub_protocol Q560 - *3*
Model: QIDI-560 Model: QIDI-560, QIDI-580 (Cirrus SR22)
CH1|CH2|CH3|CH4|CH5|CH6|CH7 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 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* ### Sub_protocol QF012 - *4*
Model: QF012 SBD Dauntless Model: QF012 SBD Dauntless