[Crossfire] There was a NO DATA remaining in the telemetry screens

This commit is contained in:
Bertrand Songis
2016-04-26 23:53:30 +02:00
parent fd72c22cf5
commit e04dfb7b7e
6 changed files with 12 additions and 7 deletions
+6 -1
View File
@@ -141,9 +141,14 @@ void processCrossfireTelemetryFrame()
processCrossfireTelemetryValue(GPS_SATELLITES_INDEX, value);
break;
case LINK_ID:
telemetryStreaming = TELEMETRY_TIMEOUT10ms;
for (int i=0; i<10; i++) {
if (getCrossfireTelemetryValue<1>(3+i, value))
if (getCrossfireTelemetryValue<1>(3+i, value)) {
processCrossfireTelemetryValue(i, value);
if (i == 2) {
telemetryData.rssi.set(value);
}
}
}
break;
case BATTERY_ID:
-1
View File
@@ -28,7 +28,6 @@
#define FRSKY_SPORT_PACKET_SIZE 9
#define FRSKY_TIMEOUT10ms 100 // 1 second
#define WSHH_TIMEOUT10ms 60 // 600ms
#define FRSKY_SPORT_AVERAGING 4
+1 -1
View File
@@ -246,7 +246,7 @@ void frskyDProcessPacket(uint8_t *packet)
telemetryData.analog[TELEM_ANA_A2].set(packet[2], g_model.frsky.channels[TELEM_ANA_A2].type);
telemetryData.rssi[0].set(packet[3]);
telemetryData.rssi[1].set(packet[4] / 2);
telemetryStreaming = FRSKY_TIMEOUT10ms; // reset counter only if valid frsky packets are being detected
telemetryStreaming = TELEMETRY_TIMEOUT10ms; // reset counter only if valid packets are being detected
link_counter += 256 / FRSKY_D_AVERAGING;
#if defined(VARIO)
uint8_t varioSource = g_model.frsky.varioSource - VARIO_SOURCE_A1;
+1 -1
View File
@@ -74,7 +74,7 @@ void frskyDProcessPacket(uint8_t *packet)
setTelemetryValue(TELEM_PROTO_FRSKY_D, D_A2_ID, 0, 0, packet[2], UNIT_VOLTS, 0);
setTelemetryValue(TELEM_PROTO_FRSKY_D, D_RSSI_ID, 0, 0, packet[3], UNIT_RAW, 0);
telemetryData.rssi.set(packet[3]);
telemetryStreaming = FRSKY_TIMEOUT10ms; // reset counter only if valid frsky packets are being detected
telemetryStreaming = TELEMETRY_TIMEOUT10ms; // reset counter only if valid packets are being detected
break;
}
+1 -1
View File
@@ -213,7 +213,7 @@ void processSportPacket(uint8_t * packet)
uint32_t data = SPORT_DATA_S32(packet);
if (id == RSSI_ID) {
telemetryStreaming = FRSKY_TIMEOUT10ms; // reset counter only if valid frsky packets are being detected
telemetryStreaming = TELEMETRY_TIMEOUT10ms; // reset counter only if valid packets are being detected
data = SPORT_DATA_U8(packet);
if (data == 0)
telemetryData.rssi.reset();
+3 -2
View File
@@ -59,7 +59,9 @@ enum TelemetryStates {
extern uint8_t telemetryState;
#endif
#define TELEMETRY_RX_PACKET_SIZE 19 // 9 bytes (full packet), worst case 18 bytes with byte-stuffing (+1)
#define TELEMETRY_TIMEOUT10ms 100 // 1 second
#define TELEMETRY_RX_PACKET_SIZE 19 // 9 bytes (full packet), worst case 18 bytes with byte-stuffing (+1)
extern uint8_t telemetryRxBuffer[TELEMETRY_RX_PACKET_SIZE];
extern uint8_t telemetryRxBufferCount;
@@ -68,7 +70,6 @@ extern uint8_t telemetryRxBufferCount;
#define TELEMETRY_VALUE_OLD_THRESHOLD 150 /*15 seconds*/
#define TELEMETRY_VALUE_UNAVAILABLE 255
#define TELEMETRY_VALUE_OLD 254
#define TELEMETRY_AVERAGE_COUNT 3
enum {