save raw freq, add location

This commit is contained in:
Wolfgang Hottgenroth
2019-11-12 14:43:38 +01:00
parent 6a13da024d
commit 08c76f13de
4 changed files with 31 additions and 8 deletions

View File

@ -5,6 +5,7 @@
#include <stdio.h>
#include <unistd.h>
#include <libconfig.h>
#include <math.h>
#include "LS7366R.h"
#include "influx.h"
@ -77,6 +78,7 @@ int main (void) {
if (! config_lookup_float(&cfg, EPSILON_KEY, &epsilon)) {
epsilon = DEFAULT_EPSILON;
}
fprintf(stderr, "CONFIG: epsilon=%f\n", epsilon);
double lastF = 0;
@ -86,18 +88,19 @@ int main (void) {
uint32_t diff = ringbufferGet();
double f = 1.0 / (((double) diff) / 1000000.0);
double fRaw = f;
int valid = settled ? 1 : 0;
double gradient = abs(f - lastF);
if (settled && (gradient > epsilon)) {
logmsg(LOG_INFO, "Current f=%f, last f=%f, gradient too large, skipped\n", f, lastF);
double gradient = f - lastF;
if (settled && (fabs(gradient) > epsilon)) {
logmsg(LOG_INFO, "Current f=%f, last f=%f, gradient too large, invalid\n", f, lastF);
skipped++;
f = lastF;
valid = 0;
}
lastF = f;
// printf("%f, %d\n", f, valid);
influxAddFrequency(f, gradient, valid);
influxAddFrequency(fRaw, f, gradient, valid);
ledTick++;
if (ledTick == 50) {