*/
#include <fcntl.h>
-#include <signal.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <trinket.h>
static char* dbdir = NULL;
-static int period = (150);
+static int period = (300); /* in seconds */
static char* pidfile = NULL;
static char* logfile = NULL;
static bool daemonize = false;
static char tfile[MAXPATHLEN],
ofile[MAXPATHLEN];
-static const double coefficient = 1.0;
-
-static bool stopRequest = false;
-
-static void
-sig_int(int sig) {
- stopRequest = true;
-}
+static const double coefficient = (248e-6 / 2637.0);
static void
usage(const char *errmsg) {
if (prevDose >= 0.0) {
double counts = curDose - prevDose;
- double radlevel = coefficient * counts / (double)period;
+ double radlevel = coefficient * counts * 3600.0 / (double)period;
FILE *fh = stdout;
bool successOpen = true;
}
if (successOpen) {
+ fprintf(fh, "total: %lld\n", (long long)curDose);
fprintf(fh, "counts: %lld\n", (long long)counts);
fprintf(fh, "radlevel: %e\n", radlevel);
}
- if (fh != stdout) {
+ if (fh && fh != stdout) {
fflush(fh);
fclose(fh);
rename(tfile, ofile);
int i;
int pidfd,
logfd;
- struct sigaction sa;
opterr = 0;
while((i=getopt(argn,argv,"dD:p:P:h")) != EOF) {
snprintf(ofile, MAXPATHLEN, "%s/trinket.dat", dbdir);
}
- memset(&sa, 0, sizeof(sa));
- sigemptyset(&sa.sa_mask);
- sa.sa_handler = sig_int;
- sigaction(SIGINT, &sa, 0);
- sigaction(SIGTERM, &sa, 0);
- sigaction(SIGHUP, &sa, 0);
-
main_loop();
hid_exit();