code beautifying, extended filtering discarded, better adjust epsilon

This commit is contained in:
Wolfgang Hottgenroth
2019-11-14 14:41:20 +01:00
parent 2dd586d7e4
commit 5ef114b634
4 changed files with 20 additions and 13 deletions

View File

@ -88,24 +88,26 @@ int main (void) {
double lastF = 0;
bool settled = false;
uint8_t ledTick = 0;
while (1) {
uint32_t diff = ringbufferGet();
uint32_t period = ringbufferGet();
double f = 1.0 / (((double) diff) / 1000000.0);
double fRaw = f;
double fRaw = 1.0 / (((double) period) / 1000000.0);
int valid = settled ? 1 : 0;
double gradient = f - lastF;
double gradient = fRaw - lastF;
double fSmoothed = fRaw;
if (settled && (fabs(gradient) > epsilon)) {
logmsg(LOG_INFO, "Current f=%f, last f=%f, gradient %f too large, invalid\n", f, lastF, gradient);
logmsg(LOG_INFO, "Current f=%f, last f=%f, gradient %f too large, invalid\n", fRaw, lastF, gradient);
skipped++;
f = lastF;
fSmoothed = lastF;
valid = 0;
} else {
lastF = fRaw;
}
lastF = f;
// printf("%f, %d\n", f, valid);
if (settled) {
influxAddFrequency(fRaw, f, gradient, valid);
influxAddFrequency(period, fRaw, fSmoothed, gradient, valid);
}
ledTick++;