From 24c8bcfe7f76b20124e2862ea050f815c0f768e7 Mon Sep 17 00:00:00 2001 From: tlatorre Date: Tue, 14 Aug 2018 10:08:27 -0500 Subject: move everything to src directory --- src/pmt.c | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/pmt.c (limited to 'src/pmt.c') diff --git a/src/pmt.c b/src/pmt.c new file mode 100644 index 0000000..d36e302 --- /dev/null +++ b/src/pmt.c @@ -0,0 +1,82 @@ +#include "pmt.h" +#include +#include +#include +#include +#include "vector.h" + +static int initialized = 0; + +pmt pmts[MAX_PMTS]; + +int load_pmt_info() +{ + int i, j; + char line[256]; + char *str; + double value; + int n; + + FILE *f = fopen("pmt.txt", "r"); + + if (!f) { + fprintf(stderr, "failed to open pmt.txt: %s", strerror(errno)); + return -1; + } + + i = 0; + n = 0; + /* For the first pass, we just count how many values there are. */ + while (fgets(line, sizeof(line), f)) { + size_t len = strlen(line); + if (len && (line[len-1] != '\n')) { + fprintf(stderr, "got incomplete line on line %i: '%s'\n", i, line); + goto err; + } + + i += 1; + + if (!len) continue; + else if (line[0] == '#') continue; + + str = strtok(line," \n"); + + j = 0; + while (str) { + value = strtod(str, NULL); + switch (j) { + case 0: + case 1: + case 2: + pmts[n].pos[j] = value/10.0; + break; + case 3: + case 4: + case 5: + pmts[n].normal[j-3] = value; + break; + case 6: + pmts[n].pmt_type = value; + break; + } + j += 1; + str = strtok(NULL," \n"); + } + + normalize(pmts[n].normal); + + n += 1; + } + + fclose(f); + + initialized = 1; + + return 0; + +err: + fclose(f); + + return -1; +} + -- cgit