Merge against latest 2.3

This commit is contained in:
Bertrand Songis
2019-09-17 13:28:42 +02:00
247 changed files with 35085 additions and 42445 deletions
+19 -26
View File
@@ -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;
}