Working on charts
git-svn-id: file:///home/jan/tmp/wetterstation/trunk@84 dd492736-c11a-0410-ad51-8c26713eaf7f
This commit is contained in:
parent
0fcdac9720
commit
dd76037565
|
|
@ -72,7 +72,7 @@ $(OBJS):
|
|||
# Programm mit debug-ausgabe bauen
|
||||
debug:
|
||||
@ echo "baue Version mit Debugoutput ..."
|
||||
@ $(MAKE) all DEBUG=-DDEBUG
|
||||
@ $(MAKE) all DEBUG="-DDEBUG -g"
|
||||
|
||||
# Installieren
|
||||
install:
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ typedef struct image_cfg_t {
|
|||
char *file_name;
|
||||
char *headline;
|
||||
char *table_field;
|
||||
int manual_table;
|
||||
char *table_name;
|
||||
long gen_interval;
|
||||
long show_interval;
|
||||
long label_interval;
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ static const config_keyword keywords[] = {
|
|||
{"filename", read_str, &(img_cfg.file_name), ""},
|
||||
{"headline", read_str, &(img_cfg.headline), ""},
|
||||
{"table_field", read_str, &(img_cfg.table_field), ""},
|
||||
{"manual_table", read_yn, &(img_cfg.manual_table), "no"},
|
||||
{"manual_table_name", read_str, &(img_cfg.table_name), ""},
|
||||
{"gen_interval", read_time, &(img_cfg.gen_interval), ""},
|
||||
{"show_interval", read_time, &(img_cfg.show_interval), ""},
|
||||
{"label_interval", read_time, &(img_cfg.label_interval), ""},
|
||||
|
|
|
|||
|
|
@ -25,14 +25,20 @@ static char *get_type_table_by_id(PGconn *, int );
|
|||
|
||||
|
||||
|
||||
pix_list_ptr get_max(){
|
||||
return min;
|
||||
}
|
||||
|
||||
pix_list_ptr get_min(){
|
||||
return max;
|
||||
}
|
||||
|
||||
/* Holt eine Liste mit den Werten und den jeweiligen x-koordinaten */
|
||||
pix_list_ptr get_pix_list(int c_width){
|
||||
double seconds_per_pix = ((double)c_width)/((double)img_cfg.show_interval); /* Pixel pro Sekunde */
|
||||
char *conn_string = get_conn_string(); /* Verbindungs-String */
|
||||
PGconn *conn = pg_check_connect(conn_string); /* Datenbank - Verbindung */
|
||||
char *table = get_type_table_by_id(conn, img_cfg.sens_id); /* Tabellen - Name */
|
||||
char *table = NULL; /* Tabellen - Name */
|
||||
char *query = malloc(sizeof(char)*BUFFSIZE); /* Query */
|
||||
PGresult *res = NULL; /* Darenbank - Result */
|
||||
int time_field; /* Id ses Timestamp-Feldes */
|
||||
|
|
@ -47,6 +53,12 @@ pix_list_ptr get_pix_list(int c_width){
|
|||
DEBUGOUT1("\nHole Daten...\n");
|
||||
DEBUGOUT2(" Ein Pixel entspricht %f sekunden\n", seconds_per_pix);
|
||||
|
||||
if (img_cfg.manual_table) {
|
||||
table = strdup(img_cfg.table_name);
|
||||
} else {
|
||||
table = get_type_table_by_id(conn, img_cfg.sens_id);
|
||||
}
|
||||
|
||||
snprintf(query, BUFFSIZE, "SELECT round(date_part('epoch', current_timestamp)) AS now, round(date_part('epoch', timestamp)) AS times, %s AS val FROM %s WHERE timestamp > (current_timestamp - INTERVAL '%d seconds') ORDER BY times ASC", img_cfg.table_field, table, img_cfg.show_interval );
|
||||
|
||||
res = pg_check_exec(conn, query);
|
||||
|
|
@ -79,7 +91,8 @@ pix_list_ptr get_pix_list(int c_width){
|
|||
max = temp_ptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DEBUGOUT2(" %d Werte geholt \n", i);
|
||||
DEBUGOUT3(" Min: x-pos.: %d, Wert: %d\n", min->x_pix_coord, (min->value_sum / min->value_count) );
|
||||
DEBUGOUT3(" Max: x-pos.: %d, Wert: %d\n", max->x_pix_coord, (max->value_sum / max->value_count) );
|
||||
PQclear(res);
|
||||
|
|
|
|||
|
|
@ -15,3 +15,7 @@ typedef struct pix_list {
|
|||
* 1. Argument: die effektive Breite des Bereiches in dem gezeichnet werden soll
|
||||
*/
|
||||
pix_list_ptr get_pix_list(int );
|
||||
|
||||
pix_list_ptr get_min();
|
||||
|
||||
pix_list_ptr get_max();
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ void process_image_cfg(char *image_cfg_file){
|
|||
DEBUGOUT2("Height = %d\n", img_cfg.height);
|
||||
DEBUGOUT2("SensorId = %d\n", img_cfg.sens_id);
|
||||
DEBUGOUT2("TabellenFeld = %s\n", img_cfg.table_field);
|
||||
DEBUGOUT2("ManualTabelle = %d\n", img_cfg.manual_table);
|
||||
DEBUGOUT2("TabellenName = %s\n", img_cfg.table_name);
|
||||
DEBUGOUT1("\n");
|
||||
} else {
|
||||
return;
|
||||
|
|
@ -65,7 +67,7 @@ void process_image_cfg(char *image_cfg_file){
|
|||
regenerate_image();
|
||||
}
|
||||
|
||||
sleep(3);
|
||||
// sleep(3);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
filename /home/jan/Testbild.png
|
||||
headline Testbild
|
||||
manual_table no
|
||||
manual_table_name auss2_data
|
||||
table_field temp
|
||||
gen_interval 15m
|
||||
show_interval 10h
|
||||
show_interval 1y
|
||||
label_interval 10m
|
||||
label_sum no
|
||||
width 400
|
||||
|
|
|
|||
Loading…
Reference in New Issue