batch database access

This commit is contained in:
Wolfgang Hottgenroth 2019-10-07 12:39:18 +02:00
parent 3d246ba6c4
commit efd80926e1
Signed by: wn
GPG Key ID: 6C1E5E531E0D5D7F
3 changed files with 44 additions and 7 deletions

@ -34,18 +34,24 @@ void init() {
digitalWrite(CTRL_OUT, 0);
pinMode(INTR_IN, INPUT);
}
void start() {
wiringPiISR(INTR_IN, INT_EDGE_RISING, isr);
}
int main (void) {
init();
ls7366rInit(SPI_CHAN);
influxInit();
start();
while (1) {
uint32_t diff = ringbufferGet();
double f = 1.0 / (((double) diff) / 1000000.0);
printf("%f\n", f);
influxSendFrequency(f);
influxAddFrequency(f);
}
}

@ -1,15 +1,22 @@
#include <stdint.h>
#include <stdio.h>
#include <curl/curl.h>
#include <time.h>
#include <string.h>
const char INFLUXURL[] = "http://172.16.3.15:8086/write?db=smarthome2&precision=ms";
#define BUFSIZE 4096
char buffer[BUFSIZE];
char *bufferNextEntry = buffer;
void influxSendFrequency(double f) {
char buffer[256];
sprintf(buffer, "mainsfrequency freq=%f", f);
void influxInit() {
memset(buffer, 0, BUFSIZE);
bufferNextEntry = buffer;
}
static void influxSendRequest() {
CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, INFLUXURL);
@ -21,3 +28,27 @@ void influxSendFrequency(double f) {
curl_easy_cleanup(curl);
}
}
void influxAddFrequency(double f) {
static uint32_t entries = 0;
char tmpBuf[128]
struct timespec t;
clock_gettime(CLOCK_REALTIME, &t);
uint64_t tt = t.tv_sec * 1000 + t.tv_nsec / 1000000;
int c = sprintf(tmpBuf, "mainsfrequency freq=%f %l\n", f, tt);
entries++;
if ((bufferNextEntry + c + 10) > (buffer + BUFSIZE)) {
influxSendRequest()
influxInit();
printf("%u entries sent to database\n", entries);
entries = 0;
}
memcpy(bufferNextEntry, tmpBuf, c);
bufferNextEntry += c;
}

@ -1,7 +1,7 @@
#ifndef _INFLUX_H_
#define _INFLUX_H_
void influxSendFrequency(double f);
void influxAddFrequency(double f);
void influxInit();
#endif // _INFLUX_H_