From 8688f251051fd0e12453f513b248f1c3e4f4dc7b Mon Sep 17 00:00:00 2001 From: Julian Picht Date: Mon, 26 Dec 2016 23:47:12 +0100 Subject: try to document disambiguator --- tools/disambiguate/Makefile | 2 +- tools/disambiguate/disambiguate.c | 29 +++++++++++++++++------------ 2 files changed, 18 insertions(+), 13 deletions(-) (limited to 'tools') diff --git a/tools/disambiguate/Makefile b/tools/disambiguate/Makefile index b06f50d..ef4e84c 100644 --- a/tools/disambiguate/Makefile +++ b/tools/disambiguate/Makefile @@ -1,5 +1,5 @@ disambiguate: disambiguate.c ../../src/disambiguator.c - gcc -Wall -Wextra -Werror -g -o $@ $^ -lm + gcc -I../../src -Wall -Wextra -Werror -g -o $@ $^ -lm test: disambiguate ./disambiguate | head -n 100 diff --git a/tools/disambiguate/disambiguate.c b/tools/disambiguate/disambiguate.c index 7e46625..4fa0758 100644 --- a/tools/disambiguate/disambiguate.c +++ b/tools/disambiguate/disambiguate.c @@ -6,51 +6,56 @@ #include #include #include -#include "../../include/disambiguator.h" +#include "disambiguator.h" int main() { - FILE * f = fopen( "raw_light_data_from_watchman.sorted.csv", "r" ); + FILE * f = fopen( "new_lightcap_data.csv", "r" ); if (f == NULL) { fprintf(stderr, "ERROR OPENING INPUT FILE\n"); return -1; } - long last = 0, lastl = 0; + uint32_t last = 0, lastl = 0; - disambiguator d; + struct disambiguator d; disambiguator_init(&d); for (;;) { char controller[10]; int sensor; int unknown; - int length; - long time; + uint32_t length; + uint32_t time; - if (fscanf(f, "%s %d %d %d %li", controller, &sensor, &unknown, &length, &time) != 5) { + if (fscanf(f, "%s %d %d %d %d", controller, &sensor, &unknown, &length, &time) != 5) { break; } if (lastl > time) { - printf("BACKWARDS: %li %li\n", lastl, time); + //printf("BACKWARDS: %li %li\n", lastl, time); } lastl = time; + if (strcmp(controller, "HMD") != 0) continue; switch (disambiguator_step(&d, time, length)) { default: case P_UNKNOWN: - //printf("UNKN %s %2d %li %d\n", controller, sensor, time - last, length); + //printf("UNKN %s %2d %d %d\n", controller, sensor, time - last, length); continue; case P_SYNC: { double l = length; char cc = round(l / 500) - 6; int ll = (length+125)/250; - printf("SYNC %s %2d %10li %5d %c%d %10li %d %d\n", controller, sensor, time, length, (cc & 0x1) ? 'k' : 'j', (cc >> 1) & 0x3, time-last, ll & 1, (ll >> 1) - 6); - last = time; + if (cc & 0x4) { + printf("SKIP %s %2d %10d %5d %c%d %10d %d %d\n", controller, sensor, time, length, (cc & 0x1) ? 'k' : 'j', (cc >> 1) & 0x3, time-last, ll & 1, (ll >> 1) - 6); + } else { + printf("SYNC %s %2d %10d %5d %c%d %10d %d %d\n", controller, sensor, time, length, (cc & 0x1) ? 'k' : 'j', (cc >> 1) & 0x3, time-last, ll & 1, (ll >> 1) - 6); + last = time; + } } continue; case P_SWEEP: - printf("SWEEP %s %2d %10li %5d\n", controller, sensor, time - last, length); + printf("SWEEP %s %2d %10d %5d\n", controller, sensor, time - last, length); continue; } } -- cgit v1.2.3