This commit is contained in:
Wolfgang Hottgenroth 2019-11-05 14:36:38 +01:00
parent e21e114313
commit 61b1498d7b
5 changed files with 31 additions and 8 deletions

View File

@ -3,7 +3,7 @@ CC=gcc
CFLAGS=-Wall
LDFLAGS=-lwiringPi -lcurl -lconfig
counter: counter.o LS7366R.o influx.o ringbuffer.o led.o
counter: counter.o LS7366R.o influx.o ringbuffer.o led.o logging.o
$(CC) -o $@ $(LDFLAGS) $^
.c.o:

View File

@ -10,6 +10,7 @@
#include "influx.h"
#include "ringbuffer.h"
#include "led.h"
#include "logging.h"
const int CTRL_OUT = 16;
@ -51,9 +52,9 @@ void init() {
void readConfig() {
config_init(&cfg);
if (! config_read_file(&cfg, "/opt/etc/counter.cfg")) {
fprintf(stderr, "failed to read config file: %s:%d - %s\n",
config_error_file(&cfg), config_error_line(&cfg),
config_error_text(&cfg));
logmsg(LOG_ERR, "failed to read config file: %s:%d - %s\n",
config_error_file(&cfg), config_error_line(&cfg),
config_error_text(&cfg));
config_destroy(&cfg);
exit(-1);
}
@ -87,7 +88,7 @@ int main (void) {
double f = 1.0 / (((double) diff) / 1000000.0);
if (settled && (abs(f - lastF) > epsilon)) {
fprintf(stderr, "Current f=%f, last f=%f, gradient too large, skipped\n", f, lastF);
logmsg(LOG_INFO, "Current f=%f, last f=%f, gradient too large, skipped\n", f, lastF);
skipped++;
f = lastF;
}
@ -100,7 +101,7 @@ int main (void) {
ledTick = 0;
led(E_GREEN, false);
if (! settled) {
fprintf(stderr, "Now it is settled\n");
logmsg(LOG_INFO, "Now it is settled\n");
settled = true;
}
}

View File

@ -7,6 +7,7 @@
#include <libconfig.h>
#include "led.h"
#include "logging.h"
const char INFLUXURL_KEY[] = "influxUrl";
@ -70,7 +71,7 @@ static void influxSendRequest() {
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, influxBuffer);
CURLcode res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
logmsg(LOG_ERR, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
led(E_RED, true);
}
curl_easy_cleanup(curl);
@ -92,7 +93,7 @@ void influxAddFrequency(double f) {
influxSendRequest();
influxClearBuffer();
totalEntries += entries;
fprintf(stderr, "%u entries sent to database, in total %u, skipped: %u\n", entries, totalEntries, skipped);
logmsg(LOG_INFO, "%u entries sent to database, in total %u, skipped: %u\n", entries, totalEntries, skipped);
entries = 0;
}

13
src/logging.c Normal file
View File

@ -0,0 +1,13 @@
#include <syslog.h>
#include <stdarg.h>
void logmsg(int prio, const char* format, ...) {
va_list vl;
openlog("counter", 0, LOG_LOCAL0);
va_start(vl, format);
vsyslog(prio, format, vl);
va_end(vl);
closelog();
}

8
src/logging.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef _LOGGING_H_
#define _LOGGING_H_
#include <syslog.h>
void logmsg(int prio, const char* format, ...);
#endif // _LOGGING_H_