1
0
mirror of https://github.com/agdsn/ancient-weatherstation.git synced 2026-06-19 14:58:00 +00:00

code cleaned

git-svn-id: file:///home/jan/tmp/wetterstation/trunk@201 dd492736-c11a-0410-ad51-8c26713eaf7f
This commit is contained in:
losinshi
2006-12-11 09:50:03 +00:00
parent ff877ec580
commit 4eb5123888
42 changed files with 191 additions and 191 deletions
+4 -4
View File
@@ -28,7 +28,7 @@ $(BIN_NAME): $(OBJS)
@ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql -lpq $(LDFLAS) $(BIN_NAME) $(OBJS)
@ echo Binary $(BIN_NAME) ist fertig!
# Abhängigkeiten
# Abhaengigkeiten
main.o: main.c main.h definitions.h config.h input.h
config.o: config.c config.h definitions.h
input.o: input.c input.h main.h config.h definitions.h process.h
@@ -62,14 +62,14 @@ install:
@ install -m644 COPYING $(DESTDIR)$(DOCDIR)
# Aufräumnen (alle Object-Files löschen)
# Aufraeumnen (alle Object-Files loeschen)
cleanup:
@ echo "Räume auf..."
@ echo "Raeume auf..."
@ echo "...entferne Object-Files:"
@ echo " " $(OBJS)
@ $(RM) -f $(OBJS)
clean: cleanup
@ echo "...lösche binary:"
@ echo "...loesche binary:"
@ echo " " $(BIN_NAME)
@ rm -f $(BIN_NAME)
+8 -8
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
config.c -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
@@ -42,7 +42,7 @@ static read_verbose_flag(const char *, void *);
static int flag_handler(int *, int , const char *);
/* Zuordnung zwischen Schlüsselwörtern in der Config, Der Funktion, die diese auswertet
/* Zuordnung zwischen Schluesselwoertern in der Config, Der Funktion, die diese auswertet
* und dem eld in der Options-Struktur */
static const struct config_keyword keywords[] = {
/* keyword handler variable address default */
@@ -119,22 +119,22 @@ int read_config(const char *file, int reset){
int lm = 0; /* Zeilen-Nummer */
/* Optionen mit default-werten füllen */
/* Optionen mit default-werten fuellen */
if(reset){
for (i = 0; keywords[i].keyword[0]; i++)
if (keywords[i].def[0])
keywords[i].handler(keywords[i].def, keywords[i].var);
}
/* config-file öffnen */
/* config-file oeffnen */
if (!(in = fopen(file, "r"))) {
#ifndef NO_LOGING
if(get_flag(LOG_ERROR_FLAG)){
sprintf(get_error_buffer(), "Kann Config-File: %s nicht öffnen!",file);
sprintf(get_error_buffer(), "Kann Config-File: %s nicht oeffnen!",file);
log_error(get_error_buffer());
}
#endif
DEBUGOUT2("Kann Config-File: %s nicht öffnen!\n", file);
DEBUGOUT2("Kann Config-File: %s nicht oeffnen!\n", file);
return 0;
}
@@ -142,10 +142,10 @@ int read_config(const char *file, int reset){
while (fgets(buffer, CONFIG_BUFFERSIZE, in)) {
lm++;
/* Zeilenvorschübe gegen null-terminierungs-Zeichen ersetzen */
/* Zeilenvorschuebe gegen null-terminierungs-Zeichen ersetzen */
if (strchr(buffer, '\n')) *(strchr(buffer, '\n')) = '\0';
/* Originlzeile für eventuelle log-, bzw. debug-meldungen */
/* Originlzeile fuer eventuelle log-, bzw. debug-meldungen */
strcpy(orig, buffer);
/* Kommentazeichen gegen null-terminierungs-Zeichen ersetzen und damit alles dahinter ignorieren */
+1 -1
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
config.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
+9 -9
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
definitions.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
@@ -36,7 +36,7 @@
/*Alle möglichen Definitionen, die in allen code-schnipseln benötigt werden*/
/*Alle moeglichen Definitionen, die in allen code-schnipseln benoetigt werden*/
/* Sensor definitionen ------------------------------------------------- */
#define FERNB 0x07 /* Funkfernbedienung */
@@ -56,7 +56,7 @@
#define ERROR_TIMEOUT "sensor-rs232interface: keine Daten - timeout-Fehler\n"
#define ERROR_POLLING "sensor-rs232interface: keine Daten - polling-Fehler\n"
#define ERROR_READ "sensor-rs232interface: Fehler beim Lesen\n"
#define ERROR_LOGFILE "Log-Error: Kann Logfile nicht öffnen\n"
#define ERROR_LOGFILE "Log-Error: Kann Logfile nicht oeffnen\n"
#define ERROR_FORK "Fork-Fehler: Kann den Prozess nicht in den Hintergrund schieben\n"
#define ERROR_SEIINST "Signal-Fehler: Kann Signalhandler zum beenden nicht installieren\n"
@@ -70,12 +70,12 @@
#endif
/* Puffergrößen -------------------------------------------------------- */
#define LOG_BUFFERSIZE 100 /* Größe für den Log-Puffer in process.c */
#define ERR_BUFFERSIZE 512 /* Größe für den error-Puffer in main.c */
#define INPUT_BUFFERSIZE 8 /* Größe für den Input-Puffer in input.c */
#define CONFIG_BUFFERSIZE 512 /* Größe des Puffers zum Config-einlesen */
#define QUERY_BUFFERSIZE 512 /* Größe des Zeichenpuffers für SQL-Anfragen */
/* Puffergroeßen -------------------------------------------------------- */
#define LOG_BUFFERSIZE 100 /* Groeße fuer den Log-Puffer in process.c */
#define ERR_BUFFERSIZE 512 /* Groeße fuer den error-Puffer in main.c */
#define INPUT_BUFFERSIZE 8 /* Groeße fuer den Input-Puffer in input.c */
#define CONFIG_BUFFERSIZE 512 /* Groeße des Puffers zum Config-einlesen */
#define QUERY_BUFFERSIZE 512 /* Groeße des Zeichenpuffers fuer SQL-Anfragen */
/* Timeout-Zeiten ------------------------------------------------------ */
+15 -15
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
input.c -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
@@ -59,7 +59,7 @@ static int set_port()
if ((fd = open(global_opts.device,O_RDONLY | O_NONBLOCK | O_NOCTTY | O_NDELAY)) < 0)
exit_error(ERROR_OPEN);
/* Erstmal alles zurücksetzen*/
/* Erstmal alles zuruecksetzen*/
cfmakeraw(&options);
/* Uebertragungsgeschwindigkeit 19200 Baud */
cfsetispeed(&options, B19200);
@@ -74,7 +74,7 @@ static int set_port()
/* Local-Flags brauchmer auch keine*/
options.c_lflag = 0;
/* Zeug für die Flusskontrolle */
/* Zeug fuer die Flusskontrolle */
//options.c_cc[VMIN] = 1;
//options.c_cc[VTIME] = 5;
@@ -94,13 +94,13 @@ static int set_port()
int read_port(){
fd = set_port();
int len=0; /* Anzahl gelesener Daten */
int i, readlen =1; /* Laufvariable, Lesezähler */
int i, readlen =1; /* Laufvariable, Lesezaehler */
u_char buffer[INPUT_BUFFERSIZE], *temp = NULL; /* Lesepuffer, Temp-Zeiger */
struct pollfd pfd = {fd, POLLIN, (short)NULL}; /* polling-Optionen */
temp = buffer; /* Temporärer Zeiger bekommt die Anfangsaddresse vom Puffer */
temp = buffer; /* Temporaerer Zeiger bekommt die Anfangsaddresse vom Puffer */
add_clean(clean_port, &fd); /* Callbackfunktion zum Aufräumen registrieren */
add_clean(clean_port, &fd); /* Callbackfunktion zum Aufraeumen registrieren */
DEBUGOUT1("\nWarte auf Daten\n\n");
@@ -108,10 +108,10 @@ int read_port(){
do {
if((len = poll(&pfd, 1, INPUT_TIMEOUT)) > 0){ /* warten auf Eingabepuffer */
len = read(fd, temp, 1); /* Zeichenweise lesen */
if(readlen == 1){ /* Solange noch nix verwertbares gelesen wurde auf das Startbyte prüfen */
if(readlen == 1){ /* Solange noch nix verwertbares gelesen wurde auf das Startbyte pruefen */
if(*temp == STX){
temp++; /* Wenn startbyte gefunden Zeiger auf das 2. Puffer-Element setzen */
readlen++; /* Und Lese-Zähler erhöhen */
readlen++; /* Und Lese-Zaehler erhoehen */
}
} else { /* Wenn schon was relevantes gelesen wurde */
if(readlen == 8 && *temp == ETX){ /* Wenn schon 8 Byte gelesen wurden und das letzte Byte das Stoppbyte ist */
@@ -120,19 +120,19 @@ int read_port(){
DEBUGOUT2("%x ",buffer[i]);
DEBUGOUT1("\n");
check_data(readlen,buffer); /* Daten nochmals Prüfen und verarbeiten */
check_data(readlen,buffer); /* Daten nochmals Pruefen und verarbeiten */
DEBUGOUT1("------------------------------------------\n");
readlen = 1; /* Lesezähler zurücksetzen */
readlen = 1; /* Lesezaehler zuruecksetzen */
temp = buffer; /* Temp.-Zeiger wieder auf Pufferanfang setzen */
} else { /* Wenn schon was relevantes da war, aber noch keine 8 byte incl. Stoppbyte */
if(*temp == ETX || readlen >= 8){ /* Wenn das aktuelle byte das Stoppbyte oder das 8. Byte, dann sind die daten nicht ok */
readlen = 1; /* Lesezähler zurücksetzen */
readlen = 1; /* Lesezaehler zuruecksetzen */
temp = buffer; /* Temp-Zeiger auf Pufferanfang */
} else { /* Sonst */
readlen++; /* Lesezähler erhöhen */
temp++; /* Temp.-Zeiger auf das nächste element setzen */
readlen++; /* Lesezaehler erhoehen */
temp++; /* Temp.-Zeiger auf das naechste element setzen */
}
}
}
@@ -145,12 +145,12 @@ int read_port(){
return 1;
}
/* Überprüfung, ob die Struktur der Daten stimmt
/* Ueberpruefung, ob die Struktur der Daten stimmt
* es sollten 8 Byte ankommen:
* <STX><Typ><W1><W2><W3><W4><W5><EXT>
* wobei <STX> = 02h
* und <EXT> = 03h
* Bei <Typ>,<W1>...<W7> ist bit 7 (MSB) immer gesetzt, gehört also nicht zu den Daten!
* Bei <Typ>,<W1>...<W7> ist bit 7 (MSB) immer gesetzt, gehoert also nicht zu den Daten!
* Im <Typ>-Byte sind die unteren 4 bit die Addresse und die oberen 3 (weil 7. ist ja nicht benutzt)
* der Typ des Sensors.
* Die Typenzuordnung steht in der definitions.h.
+2 -2
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
input.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
@@ -26,5 +26,5 @@
/* Funktionen */
/* Schnittstelle öffnen + lesen */
/* Schnittstelle oeffnen + lesen */
int read_port();
+9 -9
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
main.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
@@ -41,8 +41,8 @@ typedef struct {
#endif
} w_opts;
/* Aufräumfunktionen */
/* TODO: sollen Funktionen werden, mit denen die eintelnen Teile funktionen registrieren können, die aufräiumen
/* Aufraeumfunktionen */
/* TODO: sollen Funktionen werden, mit denen die eintelnen Teile funktionen registrieren koennen, die aufraeiumen
* (Verbindung schließen, file schließen, ...) */
typedef struct clean_struct *clean_struct_ptr;
typedef struct clean_struct {
@@ -59,7 +59,7 @@ typedef struct clean_struct {
void exit_error(char*);
/* Ein Flag bekommen
* Argument: Maske für das Flag, siehe definitions.h */
* Argument: Maske fuer das Flag, siehe definitions.h */
int get_flag(int);
#ifndef NO_LOGING
@@ -72,18 +72,18 @@ void log_error(char *);
* 2. Argument: Log-Message */
void log_data(time_t, char *);
/* Gibt _EINEN_ Puffer für das Zusammensetzen
* der Fehler-Zeichenketten zurück.
/* Gibt _EINEN_ Puffer fuer das Zusammensetzen
* der Fehler-Zeichenketten zurueck.
* Es sollte wirklich bei jedem Aufruf der selbe
* Puffer sein */
char *get_error_buffer();
#endif
/* Ein neues Clean-Element anfügen. Ein Clean-Element ist eine Datenstruktur, die
/* Ein neues Clean-Element anfuegen. Ein Clean-Element ist eine Datenstruktur, die
* einen Pointer auf eine Funktion vom Typ
* void func(void *data),
* einen Zeiger auf beliebige Daten und einen Zeiger auf das nächste Element hält.
* Die Funktionen werden beim regulären beenden des Programmes aufgerufen um zum bsp.
* einen Zeiger auf beliebige Daten und einen Zeiger auf das naechste Element haelt.
* Die Funktionen werden beim regulaeren beenden des Programmes aufgerufen um zum bsp.
* datenbankverbindungen zu schließen, etc. */
void add_clean(void (*func)(void *data), void *data);
+23 -23
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
process.c -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
@@ -54,7 +54,7 @@ static void check_log_buffer();
static char* prepend_type_address(u_char, u_char);
/* globale Variablen */
char *log_buffer = NULL; /* Puffer für die Log-Ausgabe */
char *log_buffer = NULL; /* Puffer fuer die Log-Ausgabe */
int last_rain_count = -1; /* Letzter gemessener Wasserstand */
@@ -101,7 +101,7 @@ void process_data(time_t timestamp, u_char *buffer){
/* Wertkonvertierungen --------------------------------------------------- */
/* Wertkonvertierungen für den 'einfachen' Außensensor */
/* Wertkonvertierungen fuer den 'einfachen' Außensensor */
static auss1_data process_auss1(time_t timestamp, u_char address, u_char *buffer){
auss1_data data; /* Datenstruktur */
@@ -123,7 +123,7 @@ static auss1_data process_auss1(time_t timestamp, u_char address, u_char *buffer
return data;
}
/* Wertkonvertierungen für den 'besseren' Außensensor */
/* Wertkonvertierungen fuer den 'besseren' Außensensor */
static auss2_data process_auss2(time_t timestamp, u_char address, u_char *buffer){
auss2_data data; /* Datenstruktur */
@@ -146,32 +146,32 @@ static auss2_data process_auss2(time_t timestamp, u_char address, u_char *buffer
return data;
}
/* Wertkonvertierungen für den Regensensor (ein Zählschritt = 370ml/m^2)*/
/* Wertkonvertierungen fuer den Regensensor (ein Zaehlschritt = 370ml/m^2)*/
static regen_data process_regen(time_t timestamp, u_char address, u_char *buffer){
regen_data data; /* Datenstruktur */
int new_rain_count = 0; /* Neuer Zählerstand */
int now_rain_count = 0; /* Delta-Zählerstand */
int new_rain_count = 0; /* Neuer Zaehlerstand */
int now_rain_count = 0; /* Delta-Zaehlerstand */
data.timestamp = timestamp; /* Zeitstempel */
data.address = address; /* Addresse */
new_rain_count = ((buffer[2] & 0x1F) << 7) | remove_msb(buffer[3]); /* Niederschlagszähler */
new_rain_count = ((buffer[2] & 0x1F) << 7) | remove_msb(buffer[3]); /* Niederschlagszaehler */
if(last_rain_count == -1) /* Nach Programmstart Zähler initialisieren */
if(last_rain_count == -1) /* Nach Programmstart Zaehler initialisieren */
last_rain_count = new_rain_count;
now_rain_count = new_rain_count - last_rain_count; /* neuen Niederschlag berechnen */
if(now_rain_count < 0){ /* Wenn Integerüberlauf im Sensor */
now_rain_count = (0x3FFF - last_rain_count) + new_rain_count; /* Dann letzten gemessenen Wert vom Max-Integer-Wert abziehen und neuen Zählwert dazurechnen */
DEBUGOUT1("Integer-Überlauf\n");
if(now_rain_count < 0){ /* Wenn Integerueberlauf im Sensor */
now_rain_count = (0x3FFF - last_rain_count) + new_rain_count; /* Dann letzten gemessenen Wert vom Max-Integer-Wert abziehen und neuen Zaehlwert dazurechnen */
DEBUGOUT1("Integer-Ueberlauf\n");
}
data.counter = (now_rain_count * 370); /* Ein Zählschritt entspricht 370ml/m^2, also änderung mit 370 multiplizieren und zuweisen */
data.counter = (now_rain_count * 370); /* Ein Zaehlschritt entspricht 370ml/m^2, also aenderung mit 370 multiplizieren und zuweisen */
last_rain_count = new_rain_count; /* Zähler neu setzen */
last_rain_count = new_rain_count; /* Zaehler neu setzen */
DEBUGOUT2("Regensensor an Addresse %i\n", address);
DEBUGOUT3("Zähler: %d Differenz: %d\n", new_rain_count,now_rain_count);
DEBUGOUT3("Zaehler: %d Differenz: %d\n", new_rain_count,now_rain_count);
DEBUGOUT2("Niederschlag: %dml/m^2\n", data.counter);
#ifndef NO_LOGING
@@ -185,7 +185,7 @@ static regen_data process_regen(time_t timestamp, u_char address, u_char *buffer
return data;
}
/* Wertkonvertierungen für den Windsensor */
/* Wertkonvertierungen fuer den Windsensor */
static winds_data process_winds(time_t timestamp, u_char address, u_char *buffer){
winds_data data; /* Datenstruktur */
@@ -209,7 +209,7 @@ static winds_data process_winds(time_t timestamp, u_char address, u_char *buffer
return data;
}
/* Wertkonvertierungen für den Innensensor */
/* Wertkonvertierungen fuer den Innensensor */
static innen_data process_innen(time_t timestamp, u_char address, u_char *buffer){
innen_data data; /* Datenstruktur */
@@ -233,7 +233,7 @@ static innen_data process_innen(time_t timestamp, u_char address, u_char *buffer
return data;
}
/* Wertkonvertierungen für den Helligkeitssensor */
/* Wertkonvertierungen fuer den Helligkeitssensor */
static helli_data process_helli(time_t timestamp, u_char address, u_char *buffer){
helli_data data; /* Datenstruktur */
@@ -257,7 +257,7 @@ static helli_data process_helli(time_t timestamp, u_char address, u_char *buffer
return data;
}
/* Wertkonvertierungen für das Pyranometer */
/* Wertkonvertierungen fuer das Pyranometer */
static pyano_data process_pyano(time_t timestamp, u_char address, u_char *buffer){
pyano_data data; /* Datenstruktur */
@@ -284,7 +284,7 @@ static pyano_data process_pyano(time_t timestamp, u_char address, u_char *buffer
/* Verschiedenes ----------------------------------------------------------*/
/* einen vorzeichenbehafteten 14-Bit Binärwert in einen Int umwandeln*/
/* einen vorzeichenbehafteten 14-Bit Binaerwert in einen Int umwandeln*/
static int convert_signed_int(u_char hi_byte, u_char lo_byte){
int val = 0;
val = convert_unsigned_int(hi_byte,lo_byte);
@@ -294,7 +294,7 @@ static int convert_signed_int(u_char hi_byte, u_char lo_byte){
return val;
}
/* einen 14-Bit Binärwert in einen Int umwandeln*/
/* einen 14-Bit Binaerwert in einen Int umwandeln*/
static unsigned int convert_unsigned_int(u_char hi_byte, u_char lo_byte){
return (remove_msb(hi_byte) << 7) | remove_msb(lo_byte);
}
@@ -332,7 +332,7 @@ int check_msb_set(u_char byte){
#ifndef NO_LOGING
/* Prüfen ob Puffer für Logausgaben angelegt und renn nicht, dann anlegen */
/* Pruefen ob Puffer fuer Logausgaben angelegt und renn nicht, dann anlegen */
static void check_log_buffer(){
if (log_buffer == NULL){
log_buffer = malloc(sizeof(char)*LOG_BUFFERSIZE);
@@ -340,7 +340,7 @@ static void check_log_buffer(){
}
/* In der Log-Zeile die Addresse und den Typ des Sensors davorbauen
* gibt die Addresse zurück, an der die Werte weitergeschrieben werden können */
* gibt die Addresse zurueck, an der die Werte weitergeschrieben werden koennen */
static char* prepend_type_address(u_char type, u_char address){
return (log_buffer + sprintf(log_buffer, "Sens: %i:%i - ", type, address));
}
+1 -1
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
process.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
+6 -6
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
write.c -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
@@ -28,7 +28,7 @@
*
* Sollte irgend jemand das Programm weiter verwenden,
* jedoch die Daten anders oder woandershin wegschreiben
* wollen, so müssen nur diese Funktionen neu implementiert
* wollen, so muessen nur diese Funktionen neu implementiert
* werden.
*/
@@ -111,7 +111,7 @@ static void check_create_query_buffer(){
}
/* Guckt ob Verbindung da und versucht aufzubauen.
* gibt 1 zurück, wenn erfolgreich, sonst 0 */
* gibt 1 zurueck, wenn erfolgreich, sonst 0 */
static int pg_connect(){
if(PQstatus(connection) != CONNECTION_OK){
if (connection == NULL){
@@ -120,7 +120,7 @@ static int pg_connect(){
snprintf(conn_string, 512, "host=%s dbname=%s user=%s password=%s connect_timeout=%s", global_opts.pg_host, global_opts.pg_database, global_opts.pg_user, global_opts.pg_pass, global_opts.pg_timeout);
}
connection = PQconnectdb(conn_string); /* Connection aufbauen */
add_clean(clean_write, connection); /* Callbackfunktion zum Aufräumen registrieren */
add_clean(clean_write, connection); /* Callbackfunktion zum Aufraeumen registrieren */
} else {
PQreset(connection); /* Connecion resetten */
}
@@ -149,13 +149,13 @@ static void pg_insert(char *query){
log_error(get_error_buffer());
#endif
} else {
DEBUGOUT2("Query: '%s' ausgeführt\n", query);
DEBUGOUT2("Query: '%s' ausgefuehrt\n", query);
}
PQclear(res);
}
}
/* Callbackfunktion zum Aufräume.
/* Callbackfunktion zum Aufraeume.
* Schliesst die Verbindung zur Datenbank */
static void clean_write(void *data){
PGconn *conn = data;
+10 -10
View File
@@ -1,7 +1,7 @@
/*
weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger'
'ELV-PC-Wettersensor-Empfaenger'
write.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski
@@ -25,16 +25,16 @@
#include <time.h>
/* Datenstrukturen für die einzelnen Sensoren ------------------------------- */
/* Datenstrukturen fuer die einzelnen Sensoren ------------------------------- */
/* Datenstruktur für den 'einfachen' Außensensor */
/* Datenstruktur fuer den 'einfachen' Außensensor */
typedef struct {
time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/
int temp; /*Temparatur*/
} auss1_data ;
/* Datenstruktur für den 'besseren' Außensensor */
/* Datenstruktur fuer den 'besseren' Außensensor */
typedef struct {
time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/
@@ -42,14 +42,14 @@ typedef struct {
unsigned int hum; /*Luftfeuchte*/
} auss2_data;
/* Datenstruktur für den Regensensor */
/* Datenstruktur fuer den Regensensor */
typedef struct {
time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/
unsigned int counter; /*Zählerstand*/
unsigned int counter; /*Zaehlerstand*/
} regen_data;
/* Datenstruktur für den Windsensor */
/* Datenstruktur fuer den Windsensor */
typedef struct {
time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/
@@ -58,7 +58,7 @@ typedef struct {
unsigned int richt; /*Windrichtung*/
} winds_data;
/* Datenstruktur für den Innensensor */
/* Datenstruktur fuer den Innensensor */
typedef struct {
time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/
@@ -67,7 +67,7 @@ typedef struct {
unsigned int press; /*Luftdruck*/
} innen_data;
/* Datenstruktur für den Helligkeitssensor */
/* Datenstruktur fuer den Helligkeitssensor */
typedef struct {
time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/
@@ -76,7 +76,7 @@ typedef struct {
unsigned int abslum; /*Absolute Helligkeit*/
} helli_data;
/* Datenstruktur für das Pyranometer */
/* Datenstruktur fuer das Pyranometer */
typedef struct {
time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/