Working on charts
git-svn-id: file:///home/jan/tmp/wetterstation/trunk@78 dd492736-c11a-0410-ad51-8c26713eaf7f
This commit is contained in:
parent
572b1c3271
commit
25d6a8c7a7
|
|
@ -6,7 +6,7 @@ LDFLAS = -o
|
||||||
#INCL = -I$$(pg_config --includedir)
|
#INCL = -I$$(pg_config --includedir)
|
||||||
|
|
||||||
BIN_NAME = chart
|
BIN_NAME = chart
|
||||||
OBJS = chart.o config.o common.o image_file/image_file.o image_file/image_config.o
|
OBJS = chart.o config.o common.o image_file/image_file.o image_file/image_config.o image_file/image_draw.o image_file/image_common.o image_file/image_data.o
|
||||||
|
|
||||||
CONF_NAME = chart.conf
|
CONF_NAME = chart.conf
|
||||||
|
|
||||||
|
|
@ -43,13 +43,26 @@ config.o: config.c \
|
||||||
common.h
|
common.h
|
||||||
image_file/image_config.o: image_file/image_config.c \
|
image_file/image_config.o: image_file/image_config.c \
|
||||||
common.h \
|
common.h \
|
||||||
|
definitions.h \
|
||||||
|
config.h \
|
||||||
|
image_file/image_common.h
|
||||||
|
image_file/image_data.o: image_file/image_data.c \
|
||||||
|
image_file/image_data.h \
|
||||||
image_file/image_common.h \
|
image_file/image_common.h \
|
||||||
config.h
|
common.h \
|
||||||
|
definitions.h
|
||||||
|
image_file/image_draw.o: image_file/image_draw.c \
|
||||||
|
image_file/image_draw.h \
|
||||||
|
image_file/image_data.h
|
||||||
image_file/image_file.o: image_file/image_file.c \
|
image_file/image_file.o: image_file/image_file.c \
|
||||||
|
definitions.h \
|
||||||
common.h \
|
common.h \
|
||||||
image_file/image_common.h \
|
image_file/image_common.h \
|
||||||
image_file/image_file.h \
|
image_file/image_file.h \
|
||||||
image_file/image_config.h
|
image_file/image_config.h \
|
||||||
|
image_file/image_draw.h
|
||||||
|
image_file/image_common.o: image_file/image_common.c \
|
||||||
|
image_file/image_common.h
|
||||||
|
|
||||||
# Compillieren
|
# Compillieren
|
||||||
$(OBJS):
|
$(OBJS):
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
typedef struct image_cfg_t {
|
typedef struct image_cfg_t {
|
||||||
char *file_name;
|
char *file_name;
|
||||||
char *headline;
|
char *headline;
|
||||||
|
char *table_field;
|
||||||
long gen_interval;
|
long gen_interval;
|
||||||
long show_interval;
|
long show_interval;
|
||||||
long label_interval;
|
long label_interval;
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ static const config_keyword keywords[] = {
|
||||||
/* keyword handler variable address default */
|
/* keyword handler variable address default */
|
||||||
{"filename", read_str, &(img_cfg.file_name), ""},
|
{"filename", read_str, &(img_cfg.file_name), ""},
|
||||||
{"headline", read_str, &(img_cfg.headline), ""},
|
{"headline", read_str, &(img_cfg.headline), ""},
|
||||||
|
{"table_field", read_str, &(img_cfg.table_field), ""},
|
||||||
{"gen_interval", read_time, &(img_cfg.gen_interval), ""},
|
{"gen_interval", read_time, &(img_cfg.gen_interval), ""},
|
||||||
{"show_interval", read_time, &(img_cfg.show_interval), ""},
|
{"show_interval", read_time, &(img_cfg.show_interval), ""},
|
||||||
{"label_interval", read_time, &(img_cfg.label_interval), ""},
|
{"label_interval", read_time, &(img_cfg.label_interval), ""},
|
||||||
|
|
@ -104,7 +105,7 @@ int get_image_cfg(char *file){
|
||||||
buff = strcpy(buff, global_opts.image_cfg_location);
|
buff = strcpy(buff, global_opts.image_cfg_location);
|
||||||
buff = strcat(buff, file);
|
buff = strcat(buff, file);
|
||||||
|
|
||||||
DEBUGOUT2("Lese Config-File: '%s' \n", buff);
|
DEBUGOUT2("\nLese Config-File: '%s' \n", buff);
|
||||||
|
|
||||||
ret_var = read_config(buff, 1, keywords);
|
ret_var = read_config(buff, 1, keywords);
|
||||||
return ret_var;
|
return ret_var;
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,6 @@
|
||||||
#define BUFFSIZE_EXTRA 2048
|
#define BUFFSIZE_EXTRA 2048
|
||||||
|
|
||||||
|
|
||||||
typedef struct pix_list *pix_list_ptr;
|
|
||||||
typedef struct pix_list {
|
|
||||||
pix_list_ptr next;
|
|
||||||
int x_pix_coord;
|
|
||||||
int value_count;
|
|
||||||
int value_sum;
|
|
||||||
} pix_list_t;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static char *get_conn_string();
|
static char *get_conn_string();
|
||||||
|
|
@ -34,8 +26,14 @@ static char *get_type_table_by_id(PGconn *, int );
|
||||||
|
|
||||||
pix_list_ptr get_pix_list(int c_width){
|
pix_list_ptr get_pix_list(int c_width){
|
||||||
double seconds_per_pix = (img_cfg.show_interval * 0.1)/(c_width * 0.1);
|
double seconds_per_pix = (img_cfg.show_interval * 0.1)/(c_width * 0.1);
|
||||||
PGconn *connection = pg_check_connect(get_conn_string());
|
char *conn_string = get_conn_string();
|
||||||
|
PGconn *conn = pg_check_connect(conn_string);
|
||||||
|
|
||||||
|
|
||||||
|
PQfinish(conn);
|
||||||
|
free(conn_string);
|
||||||
|
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* baut den String fuer die Postgres-Verbindung zusammen */
|
/* baut den String fuer die Postgres-Verbindung zusammen */
|
||||||
|
|
|
||||||
|
|
@ -29,11 +29,18 @@
|
||||||
#include "image_common.h"
|
#include "image_common.h"
|
||||||
#include "image_file.h"
|
#include "image_file.h"
|
||||||
#include "image_config.h"
|
#include "image_config.h"
|
||||||
|
#include "image_draw.h"
|
||||||
|
|
||||||
|
|
||||||
/* Optionen des Bildes */
|
/* Optionen des Bildes */
|
||||||
image_cfg img_cfg;
|
image_cfg img_cfg;
|
||||||
|
|
||||||
|
|
||||||
|
static void regenerate_image();
|
||||||
|
static int check_file_interval();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Handelt ein Bild */
|
/* Handelt ein Bild */
|
||||||
void process_image_cfg(char *image_cfg_file){
|
void process_image_cfg(char *image_cfg_file){
|
||||||
|
|
||||||
|
|
@ -49,18 +56,21 @@ void process_image_cfg(char *image_cfg_file){
|
||||||
DEBUGOUT2("Width = %d\n", img_cfg.width);
|
DEBUGOUT2("Width = %d\n", img_cfg.width);
|
||||||
DEBUGOUT2("Height = %d\n", img_cfg.height);
|
DEBUGOUT2("Height = %d\n", img_cfg.height);
|
||||||
DEBUGOUT2("SensorId = %d\n", img_cfg.sens_id);
|
DEBUGOUT2("SensorId = %d\n", img_cfg.sens_id);
|
||||||
|
DEBUGOUT2("TabellenFeld = %s\n", img_cfg.table_field);
|
||||||
DEBUGOUT1("\n");
|
DEBUGOUT1("\n");
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
check_file_interval();
|
if(check_file_interval()){
|
||||||
|
}
|
||||||
|
|
||||||
sleep(3);
|
sleep(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Checkt ob es wieder an der Zeit ist ein File
|
/* Checkt ob es wieder an der Zeit ist ein File
|
||||||
* neu zu erstellen */
|
* neu zu erstellen */
|
||||||
int check_file_interval(){
|
static int check_file_interval(){
|
||||||
|
|
||||||
struct stat stat_buff;
|
struct stat stat_buff;
|
||||||
time_t now;
|
time_t now;
|
||||||
|
|
@ -68,6 +78,7 @@ int check_file_interval(){
|
||||||
|
|
||||||
if(access(img_cfg.file_name, F_OK) == -1){
|
if(access(img_cfg.file_name, F_OK) == -1){
|
||||||
DEBUGOUT2("Datei '%s' existiert nicht\n", img_cfg.file_name);
|
DEBUGOUT2("Datei '%s' existiert nicht\n", img_cfg.file_name);
|
||||||
|
DEBUGOUT1("Sie muss neu generiert werden!\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ((stat(img_cfg.file_name, &stat_buff)) != -1){
|
if ((stat(img_cfg.file_name, &stat_buff)) != -1){
|
||||||
|
|
@ -76,8 +87,10 @@ int check_file_interval(){
|
||||||
diff_sek = difftime(now, stat_buff.st_mtime);
|
diff_sek = difftime(now, stat_buff.st_mtime);
|
||||||
|
|
||||||
DEBUGOUT3("Datei '%s' ist %d Sek. alt \n", img_cfg.file_name, diff_sek);
|
DEBUGOUT3("Datei '%s' ist %d Sek. alt \n", img_cfg.file_name, diff_sek);
|
||||||
|
DEBUGOUT2("Sie soll aller %d Sek. neu generiert werden \n", img_cfg.gen_interval);
|
||||||
|
|
||||||
if(diff_sek > (img_cfg.gen_interval * 60))
|
if(diff_sek > img_cfg.gen_interval)
|
||||||
|
DEBUGOUT1("Sie muss neu generiert werden!\n");
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -85,3 +98,7 @@ int check_file_interval(){
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void regenerate_image(){
|
||||||
|
draw_to_file(NULL);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
filename /home/jan/Testbild.png
|
filename /home/jan/Testbild.png
|
||||||
headline Testbild
|
headline Testbild
|
||||||
|
table_field temp
|
||||||
gen_interval 15m
|
gen_interval 15m
|
||||||
show_interval 1h
|
show_interval 1h
|
||||||
label_interval 10m
|
label_interval 10m
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue