Merge against latest 2.3
This commit is contained in:
@@ -21,14 +21,9 @@
|
||||
#include "opentx.h"
|
||||
|
||||
uint8_t telemetryStreaming = 0;
|
||||
uint8_t R9ModuleStreaming = 0;
|
||||
uint8_t telemetryRxBuffer[TELEMETRY_RX_PACKET_SIZE]; // Receive buffer. 9 bytes (full packet), worst case 18 bytes with byte-stuffing (+1)
|
||||
uint8_t telemetryRxBufferCount = 0;
|
||||
|
||||
#if defined(WS_HOW_HIGH)
|
||||
uint8_t wshhStreaming = 0;
|
||||
#endif
|
||||
|
||||
uint8_t telemetryState = TELEMETRY_INIT;
|
||||
|
||||
TelemetryData telemetryData;
|
||||
@@ -153,20 +148,21 @@ void telemetryWakeup()
|
||||
|
||||
SCHEDULE_NEXT_ALARMS_CHECK(1/*second*/);
|
||||
|
||||
bool sensor_lost = false;
|
||||
bool sensorLost = false;
|
||||
for (int i=0; i<MAX_TELEMETRY_SENSORS; i++) {
|
||||
if (isTelemetryFieldAvailable(i)) {
|
||||
TelemetryItem & item = telemetryItems[i];
|
||||
if (item.hasReceiveTime() && item.getDelaySinceLastValue() > TELEMETRY_VALUE_OLD_THRESHOLD) {
|
||||
if (item.timeout == 0) {
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->unit != UNIT_DATETIME) {
|
||||
item.setOld();
|
||||
sensor_lost = true;
|
||||
sensorLost = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (sensor_lost && TELEMETRY_STREAMING() && !g_model.rssiAlarms.disabled) {
|
||||
|
||||
if (sensorLost && TELEMETRY_STREAMING() && !g_model.rssiAlarms.disabled) {
|
||||
audioEvent(AU_SENSOR_LOST);
|
||||
}
|
||||
|
||||
@@ -210,43 +206,40 @@ void telemetryWakeup()
|
||||
|
||||
void telemetryInterrupt10ms()
|
||||
{
|
||||
|
||||
if (TELEMETRY_STREAMING()) {
|
||||
if (telemetryStreaming > 0) {
|
||||
bool tick160ms = (telemetryStreaming & 0x0F) == 0;
|
||||
for (int i=0; i<MAX_TELEMETRY_SENSORS; i++) {
|
||||
const TelemetrySensor & sensor = g_model.telemetrySensors[i];
|
||||
if (sensor.type == TELEM_TYPE_CALCULATED) {
|
||||
telemetryItems[i].per10ms(sensor);
|
||||
}
|
||||
if (tick160ms && telemetryItems[i].timeout > 0) {
|
||||
telemetryItems[i].timeout--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(WS_HOW_HIGH)
|
||||
if (wshhStreaming > 0) {
|
||||
wshhStreaming--;
|
||||
}
|
||||
#endif
|
||||
if (R9ModuleStreaming > 0) {
|
||||
R9ModuleStreaming--;
|
||||
}
|
||||
if (telemetryStreaming > 0) {
|
||||
telemetryStreaming--;
|
||||
}
|
||||
else {
|
||||
#if !defined(SIMU)
|
||||
telemetryData.rssi.reset();
|
||||
#endif
|
||||
for (auto & telemetryItem: telemetryItems) {
|
||||
if (telemetryItem.isAvailable()) {
|
||||
telemetryItem.setOld();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void telemetryReset()
|
||||
{
|
||||
memclear(&telemetryData, sizeof(telemetryData));
|
||||
telemetryData.clear();
|
||||
|
||||
for (int index=0; index<MAX_TELEMETRY_SENSORS; index++) {
|
||||
telemetryItems[index].clear();
|
||||
for (auto & telemetryItem : telemetryItems) {
|
||||
telemetryItem.clear();
|
||||
}
|
||||
|
||||
telemetryStreaming = 0; // reset counter only if valid frsky packets are being detected
|
||||
telemetryStreaming = 0; // reset counter only if valid telemetry packets are being detected
|
||||
|
||||
telemetryState = TELEMETRY_INIT;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user