batch database access
This commit is contained in:
parent
3d246ba6c4
commit
efd80926e1
@ -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);
|
||||
}
|
||||
}
|
||||
|
39
src/influx.c
39
src/influx.c
@ -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_
|
Loading…
x
Reference in New Issue
Block a user