Merge pull request #1413 from opentx/projectkk2glider/telemetry_enhancements

Unfiltered value used for writing into telemetry log
This commit is contained in:
Bertrand Songis
2014-07-01 16:01:03 +02:00
3 changed files with 15 additions and 8 deletions
+5 -1
View File
@@ -200,13 +200,17 @@ void writeLogs()
#if defined(FRSKY)
#if defined(CPUARM)
f_printf(&g_oLogFile, "%d,%d,", frskyData.swr.value, frskyData.rssi[0].value);
f_printf(&g_oLogFile, "%d,%d,", frskyData.swr.raw, frskyData.rssi[0].raw);
#else
f_printf(&g_oLogFile, "%d,%d,%d,", frskyStreaming, frskyData.rssi[0].value, frskyData.rssi[1].value);
#endif
for (uint8_t i=0; i<MAX_FRSKY_A_CHANNELS; i++) {
#if defined(CPUARM)
int16_t converted_value = applyChannelRatio(i, frskyData.analog[i].raw);
#else
int16_t converted_value = applyChannelRatio(i, frskyData.analog[i].value);
#endif
f_printf(&g_oLogFile, "%d.%02d,", converted_value/100, converted_value%100);
}
#endif
+6 -4
View File
@@ -84,16 +84,18 @@ void FrskyValueWithMin::set(uint8_t value)
this->value = value;
}
else {
unsigned int sum = 0;
//calculate the average from values[], raw, value
unsigned int sum = values[0];
for (int i=0; i<TELEMETRY_AVERAGE_COUNT-1; i++) {
uint8_t tmp = values[i+1];
values[i] = tmp;
sum += tmp;
}
values[TELEMETRY_AVERAGE_COUNT-1] = value;
sum += value;
this->value = sum/TELEMETRY_AVERAGE_COUNT;
values[TELEMETRY_AVERAGE_COUNT-1] = raw;
sum += raw + value;
this->value = sum/(TELEMETRY_AVERAGE_COUNT+2);
}
raw = value;
#else
if (this->value == 0) {
this->value = value;
+4 -3
View File
@@ -70,12 +70,13 @@ extern uint8_t telemetryState;
#endif
#if defined(CPUARM)
#define TELEMETRY_AVERAGE_COUNT 4
#define TELEMETRY_AVERAGE_COUNT 2 //we actually average two more readings!
class FrskyValueWithMin {
public:
uint8_t value;
uint8_t min;
uint8_t value; //fitered value (average of last TELEMETRY_AVERAGE_COUNT+2 values)
uint8_t min;
uint8_t values[TELEMETRY_AVERAGE_COUNT];
uint8_t raw; //raw value (unfiltered)
void set(uint8_t value);
};
#else