aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJulian Picht <julian.picht@gmail.com>2016-12-26 23:47:12 +0100
committerJulian Picht <julian.picht@gmail.com>2016-12-27 01:11:10 +0100
commit8688f251051fd0e12453f513b248f1c3e4f4dc7b (patch)
treeae38935445469012d9d227518103cd91bd6d04cf /tools
parentfc193f834b55a37357796446579068722354e071 (diff)
downloadlibsurvive-8688f251051fd0e12453f513b248f1c3e4f4dc7b.tar.gz
libsurvive-8688f251051fd0e12453f513b248f1c3e4f4dc7b.tar.bz2
try to document disambiguator
Diffstat (limited to 'tools')
-rw-r--r--tools/disambiguate/Makefile2
-rw-r--r--tools/disambiguate/disambiguate.c29
2 files changed, 18 insertions, 13 deletions
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 <stdlib.h>
#include <string.h>
#include <math.h>
-#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;
}
}