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

View File

@ -32,7 +32,7 @@ $(BIN_NAME): $(OBJS)
@ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql $(LD_LIBS) $(LDFLAS) $(BIN_NAME) $(OBJS) @ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql $(LD_LIBS) $(LDFLAS) $(BIN_NAME) $(OBJS)
@ echo Binary $(BIN_NAME) ist fertig! @ echo Binary $(BIN_NAME) ist fertig!
# Abhängigkeiten # Abhaengigkeiten
chart.o: chart.c \ chart.o: chart.c \
definitions.h \ definitions.h \
config.h \ config.h \
@ -100,14 +100,14 @@ install:
@ install -m444 COPYING $(DESTDIR)$(DOCDIR) @ install -m444 COPYING $(DESTDIR)$(DOCDIR)
# Aufräumnen (alle Object-Files löschen) # Aufraeumnen (alle Object-Files loeschen)
cleanup: cleanup:
@ echo "Räume auf..." @ echo "Raeume auf..."
@ echo "...entferne Object-Files:" @ echo "...entferne Object-Files:"
@ echo " " $(OBJS) @ echo " " $(OBJS)
@ $(RM) -f $(OBJS) @ $(RM) -f $(OBJS)
clean: cleanup clean: cleanup
@ echo "...lösche binary:" @ echo "...loesche binary:"
@ echo " " $(BIN_NAME) @ echo " " $(BIN_NAME)
@ rm -f $(BIN_NAME) @ rm -f $(BIN_NAME)

View File

@ -1,5 +1,5 @@
############################################# #############################################
# Beispiel-Config-File für ein Diagram-Bild # # Beispiel-Config-File fuer ein Diagram-Bild #
############################################# #############################################
# Filename des erzeugten bildes # Filename des erzeugten bildes

View File

@ -1,5 +1,5 @@
############################################# #############################################
# Beispiel-Config-File für ein Diagram-Bild # # Beispiel-Config-File fuer ein Diagram-Bild #
############################################# #############################################
# Filename des erzeugten bildes # Filename des erzeugten bildes

View File

@ -1,5 +1,5 @@
############################################# #############################################
# Beispiel-Config-File für ein Diagram-Bild # # Beispiel-Config-File fuer ein Diagram-Bild #
############################################# #############################################
# Filename des erzeugten bildes # Filename des erzeugten bildes

View File

@ -1,5 +1,5 @@
############################################# #############################################
# Beispiel-Config-File für ein Diagram-Bild # # Beispiel-Config-File fuer ein Diagram-Bild #
############################################# #############################################
# Filename des erzeugten bildes # Filename des erzeugten bildes

View File

@ -1,5 +1,5 @@
############################################# #############################################
# Beispiel-Config-File für ein Diagram-Bild # # Beispiel-Config-File fuer ein Diagram-Bild #
############################################# #############################################
# Filename des erzeugten bildes # Filename des erzeugten bildes

View File

@ -1,5 +1,5 @@
############################################# #############################################
# Beispiel-Config-File für ein Diagram-Bild # # Beispiel-Config-File fuer ein Diagram-Bild #
############################################# #############################################
# Filename des erzeugten bildes # Filename des erzeugten bildes

View File

@ -117,7 +117,7 @@ label_list_ptr get_y_label_list(int c_hight, int padding){
} }
/* Bugfix: manchmal wird das obeste Label nicht angezeigt, /* Bugfix: manchmal wird das obeste Label nicht angezeigt,
* daher den Zaehler um eins erhöhen und wenn dabei ueber * daher den Zaehler um eins erhoehen und wenn dabei ueber
* den Bereich hinaus, dann wieder eins runter */ * den Bereich hinaus, dann wieder eins runter */
num++; num++;
if ((temp + ((num - 1) * interval)) > (real_max - 1)) if ((temp + ((num - 1) * interval)) > (real_max - 1))

View File

@ -28,7 +28,7 @@ $(BIN_NAME): $(OBJS)
@ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql -lesmtp -lssl -lpq $(LDFLAS) $(BIN_NAME) $(OBJS) @ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql -lesmtp -lssl -lpq $(LDFLAS) $(BIN_NAME) $(OBJS)
@ echo Binary $(BIN_NAME) ist fertig! @ echo Binary $(BIN_NAME) ist fertig!
# Abhängigkeiten # Abhaengigkeiten
checksensor.o: checksensor.c definitions.h config.h checksensor.h mailer.h checksensor.o: checksensor.c definitions.h config.h checksensor.h mailer.h
config.o: config.c config.h definitions.h checksensor.h mailer.h config.o: config.c config.h definitions.h checksensor.h mailer.h
mailer.o: mailer.c mailer.h mailer.o: mailer.c mailer.h
@ -55,14 +55,14 @@ install:
@ install -m644 COPYING $(DESTDIR)$(DOCDIR) @ install -m644 COPYING $(DESTDIR)$(DOCDIR)
# Aufräumnen (alle Object-Files löschen) # Aufraeumnen (alle Object-Files loeschen)
cleanup: cleanup:
@ echo "Räume auf..." @ echo "Raeume auf..."
@ echo "...entferne Object-Files:" @ echo "...entferne Object-Files:"
@ echo " " $(OBJS) @ echo " " $(OBJS)
@ $(RM) -f $(OBJS) @ $(RM) -f $(OBJS)
clean: cleanup clean: cleanup
@ echo "...lösche binary:" @ echo "...loesche binary:"
@ echo " " $(BIN_NAME) @ echo " " $(BIN_NAME)
@ rm -f $(BIN_NAME) @ rm -f $(BIN_NAME)

View File

@ -92,7 +92,7 @@ static PGresult *pg_check_exec(PGconn *conn, char *query){
DEBUGOUT2("Fehler beim exec: %s\n", query); DEBUGOUT2("Fehler beim exec: %s\n", query);
exit_error(ERROR_QUERY); exit_error(ERROR_QUERY);
} else { } else {
DEBUGOUT2("Query: '%s' ausgeführt\n", query); DEBUGOUT2("Query: '%s' ausgefuehrt\n", query);
} }
return res; return res;
} }
@ -152,7 +152,7 @@ static char *get_type_table_by_id(PGconn *connection, int sens_id){
return table; return table;
} }
/* Datensätze im gegebenem Interval zaehlen */ /* Datensaetze im gegebenem Interval zaehlen */
static int count_data_by_sensor_id(PGconn *connection, int sens_id){ static int count_data_by_sensor_id(PGconn *connection, int sens_id){
int count_field; int count_field;
char *table; char *table;
@ -160,7 +160,7 @@ static int count_data_by_sensor_id(PGconn *connection, int sens_id){
int count; int count;
PGresult *count_res; PGresult *count_res;
DEBUGOUT2("\nPrüfe Sensor mit ID: %d ... \n",sens_id); DEBUGOUT2("\nPruefe Sensor mit ID: %d ... \n",sens_id);
table = get_type_table_by_id(connection, sens_id); table = get_type_table_by_id(connection, sens_id);
@ -249,7 +249,7 @@ static int check_sensors(){
return fail_count; return fail_count;
} }
/* Callback-Funktion für das Versenden der Mail, /* Callback-Funktion fuer das Versenden der Mail,
* baut die nachicht zusammen */ * baut die nachicht zusammen */
static char *get_message(int line, void *arg){ static char *get_message(int line, void *arg){
sens_info_list_ptr info = *((sens_info_list_ptr*) arg); sens_info_list_ptr info = *((sens_info_list_ptr*) arg);

View File

@ -9,7 +9,7 @@ sensorid_from_db yes # Sensoren aus der Datenbank holen (no wenn manuell anege
# Mail-Addressen # Mail-Addressen
adminaddress root@localhost # Addresse an die die Nachichten gesandt werden sollen adminaddress root@localhost # Addresse an die die Nachichten gesandt werden sollen
#adminaddress sysop@localhost # weitere Addresse an die eine Nachicht geschickt wird (beliebig viele möglich) #adminaddress sysop@localhost # weitere Addresse an die eine Nachicht geschickt wird (beliebig viele moeglich)
# Mail-einstellungen # Mail-einstellungen
mail_host localhost # Hostname des Mailservers mail_host localhost # Hostname des Mailservers

View File

@ -55,8 +55,8 @@ typedef struct {
int mail_port; /* Port des Mailservers */ int mail_port; /* Port des Mailservers */
char mail_ssl; /* Flag ob SSL (TLS) genutzt werden soll */ char mail_ssl; /* Flag ob SSL (TLS) genutzt werden soll */
char mail_auth; /* Flag ob authentifiziert werden soll */ char mail_auth; /* Flag ob authentifiziert werden soll */
char *mail_auth_user; /* User für die authentifizierung */ char *mail_auth_user; /* User fuer die authentifizierung */
char *mail_auth_pass; /* Passwort für die Authentifizierung */ char *mail_auth_pass; /* Passwort fuer die Authentifizierung */
} w_opts; } w_opts;
/* Struktur, die Infos ueber den Sensor enthaelt */ /* Struktur, die Infos ueber den Sensor enthaelt */

View File

@ -44,7 +44,7 @@ static int add_address(const char *, void *);
static int read_str(const char *, void *); static int read_str(const char *, void *);
/* 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 */ * und dem eld in der Options-Struktur */
static const struct config_keyword keywords[] = { static const struct config_keyword keywords[] = {
/* keyword handler variable address default */ /* keyword handler variable address default */
@ -161,7 +161,7 @@ int read_config(const char *file, int reset){
int lm = 0; /* Zeilen-Nummer */ int lm = 0; /* Zeilen-Nummer */
/* Optionen mit default-werten füllen */ /* Optionen mit default-werten fuellen */
if(reset){ if(reset){
for (i = 0; keywords[i].keyword[0]; i++) for (i = 0; keywords[i].keyword[0]; i++)
//printf("keyword: %s \n",keywords[i].keyword); //printf("keyword: %s \n",keywords[i].keyword);
@ -169,9 +169,9 @@ int read_config(const char *file, int reset){
keywords[i].handler(keywords[i].def, keywords[i].var); keywords[i].handler(keywords[i].def, keywords[i].var);
} }
/* config-file öffnen */ /* config-file oeffnen */
if (!(in = fopen(file, "r"))) { if (!(in = fopen(file, "r"))) {
DEBUGOUT2("Kann Config-File: %s nicht öffnen!\n", file); DEBUGOUT2("Kann Config-File: %s nicht oeffnen!\n", file);
return 0; return 0;
} }
@ -179,10 +179,10 @@ int read_config(const char *file, int reset){
while (fgets(buffer, CONFIG_BUFFERSIZE, in)) { while (fgets(buffer, CONFIG_BUFFERSIZE, in)) {
lm++; lm++;
/* Zeilenvorschübe gegen null-terminierungs-Zeichen ersetzen */ /* Zeilenvorschuebe gegen null-terminierungs-Zeichen ersetzen */
if (strchr(buffer, '\n')) *(strchr(buffer, '\n')) = '\0'; 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); strcpy(orig, buffer);
/* Kommentazeichen gegen null-terminierungs-Zeichen ersetzen und damit alles dahinter ignorieren */ /* Kommentazeichen gegen null-terminierungs-Zeichen ersetzen und damit alles dahinter ignorieren */

View File

@ -27,15 +27,15 @@
#define DEFAULT_PG_DATABASE "localbase" /* Postgres-Datenbank */ #define DEFAULT_PG_DATABASE "localbase" /* Postgres-Datenbank */
#define DEFAULT_PG_TIMEOUT "20" /* Postgres-Timeout */ #define DEFAULT_PG_TIMEOUT "20" /* Postgres-Timeout */
#define DEFAULT_CONFIG_FILE "/etc/weatherstation/checksensor.conf" /* Standart-Configdatei */ #define DEFAULT_CONFIG_FILE "/etc/weatherstation/checksensor.conf" /* Standart-Configdatei */
#define DEFAULT_CHECK_INTERVAL "24" /* Standart-Interval, indem der Sensor das letzte mal hätte senden sollen (in h) */ #define DEFAULT_CHECK_INTERVAL "24" /* Standart-Interval, indem der Sensor das letzte mal haette senden sollen (in h) */
#define DEFAULT_MIN_SENDINGS "24" /* Standart-Wert, wieviele Daten der Sensor in den letzten x stunden hätte senden sollen */ #define DEFAULT_MIN_SENDINGS "24" /* Standart-Wert, wieviele Daten der Sensor in den letzten x stunden haette senden sollen */
/*Alle möglichen Definitionen, die in allen code-schnipseln benötigt werden*/ /*Alle moeglichen Definitionen, die in allen code-schnipseln benoetigt werden*/
/* Fehlermeldungen ------------------------------------------------------*/ /* Fehlermeldungen ------------------------------------------------------*/
#define ERROR_MAKECONN "PgSQL-Fehler: Kann Datenbankverbindung nicht herstellen\n" #define ERROR_MAKECONN "PgSQL-Fehler: Kann Datenbankverbindung nicht herstellen\n"
#define ERROR_QUERY "PgSQL-Fehler: Kann query nicht sudführen \n" #define ERROR_QUERY "PgSQL-Fehler: Kann query nicht sudfuehren \n"
#define ERROR_SEIINST "Signal-Fehler: Kann Signalhandler zum beenden nicht installieren\n" #define ERROR_SEIINST "Signal-Fehler: Kann Signalhandler zum beenden nicht installieren\n"
/* Mail - Kopf -----------------------------------------------------------*/ /* Mail - Kopf -----------------------------------------------------------*/

View File

@ -100,10 +100,10 @@ int mail_message(address_all_struct *addresses, char *subject, int eightbit, ma
addresses->from->mailbox = gen_from_mailbox(); /* Dann eine Addresse nach dem schema user@host generieren */ addresses->from->mailbox = gen_from_mailbox(); /* Dann eine Addresse nach dem schema user@host generieren */
} }
if((fd = tmpfile()) == NULL) /* Temporäre Datei anlegen */ if((fd = tmpfile()) == NULL) /* Temporaere Datei anlegen */
return MAILER_STATUS_FAILTURE_TEMPFILE_CREATE; return MAILER_STATUS_FAILTURE_TEMPFILE_CREATE;
if(!build_header(addresses->from, addresses->to, addresses->cc, addresses->bcc, subject, fd)) /* Header in die Temporäre Datei schreiben */ if(!build_header(addresses->from, addresses->to, addresses->cc, addresses->bcc, subject, fd)) /* Header in die Temporaere Datei schreiben */
return MAILER_STATUS_FAILTURE_CREATE_HEADER; return MAILER_STATUS_FAILTURE_CREATE_HEADER;
i = 0; i = 0;
@ -120,7 +120,7 @@ int mail_message(address_all_struct *addresses, char *subject, int eightbit, ma
smtp_starttls_enable(session, Starttls_ENABLED); /* SSL soll auf jeden Fall benutzt werden */ smtp_starttls_enable(session, Starttls_ENABLED); /* SSL soll auf jeden Fall benutzt werden */
break; break;
case SSL_REQUIRED: case SSL_REQUIRED:
smtp_starttls_enable(session, Starttls_REQUIRED); /* SSL soll ren benötigt benutzt werden */ smtp_starttls_enable(session, Starttls_REQUIRED); /* SSL soll ren benoetigt benutzt werden */
break; break;
default: default:
smtp_starttls_enable(session, Starttls_DISABLED); /* SSL soll nicht benutzt werden */ smtp_starttls_enable(session, Starttls_DISABLED); /* SSL soll nicht benutzt werden */
@ -132,25 +132,25 @@ int mail_message(address_all_struct *addresses, char *subject, int eightbit, ma
snprintf(hostportstr, hostportlen, "%s:%d", servopts->host, servopts->port); /* host:port zusammenbauen */ snprintf(hostportstr, hostportlen, "%s:%d", servopts->host, servopts->port); /* host:port zusammenbauen */
DEBUGOUT2("SMTP: Send Mail over: \"%s\"\n",hostportstr); DEBUGOUT2("SMTP: Send Mail over: \"%s\"\n",hostportstr);
if(!smtp_set_server(session, hostportstr)) /* Den Server fuer die Übertragung setzen */ if(!smtp_set_server(session, hostportstr)) /* Den Server fuer die Uebertragung setzen */
return MAILER_STATUS_FAILTURE_SETSERVER; return MAILER_STATUS_FAILTURE_SETSERVER;
if (servopts->auth_use) { /* Wenn Authentifizierung eingeschaltet */ if (servopts->auth_use) { /* Wenn Authentifizierung eingeschaltet */
if ((authctx = auth_create_context ()) == NULL) /* Authentifizierungskontext erstellen */ if ((authctx = auth_create_context ()) == NULL) /* Authentifizierungskontext erstellen */
return MAILER_STATUS_FAILTURE_CREATEAUTHCTX; return MAILER_STATUS_FAILTURE_CREATEAUTHCTX;
auth_set_mechanism_flags (authctx, AUTH_PLUGIN_PLAIN, 0); /* Plain-Text-Plugin auswählen */ auth_set_mechanism_flags (authctx, AUTH_PLUGIN_PLAIN, 0); /* Plain-Text-Plugin auswaehlen */
if(servopts->auth_cb == NULL){ /* wenn keine Callback-fkt. gesetzt */ if(servopts->auth_cb == NULL){ /* wenn keine Callback-fkt. gesetzt */
auth_set_interact_cb (authctx, default_auth_cb, servopts); /* dann die standart-fkt nehmen */ auth_set_interact_cb (authctx, default_auth_cb, servopts); /* dann die standart-fkt nehmen */
} else { /* sonst */ } else { /* sonst */
auth_set_interact_cb (authctx, servopts->auth_cb, servopts); /* die gegebene verwenden */ auth_set_interact_cb (authctx, servopts->auth_cb, servopts); /* die gegebene verwenden */
} }
if (!smtp_auth_set_context (session, authctx)) /* Kontext der session übergeben */ if (!smtp_auth_set_context (session, authctx)) /* Kontext der session uebergeben */
return MAILER_STATUS_FAILTURE_SETAUTHCTX; return MAILER_STATUS_FAILTURE_SETAUTHCTX;
} }
smtp_set_eventcb(session, event_cb, servopts); /* Callbackfunktion angeben, welche die Events der Verbindung (falsches Zertifikat, ..) hanhelt */ smtp_set_eventcb(session, event_cb, servopts); /* Callbackfunktion angeben, welche die Events der Verbindung (falsches Zertifikat, ..) hanhelt */
if((message = smtp_add_message(session)) == NULL) /* Eine Nachicht zur Session hinzufügen */ if((message = smtp_add_message(session)) == NULL) /* Eine Nachicht zur Session hinzufuegen */
return MAILER_STATUS_FAILTURE_ADDMESSAGE; return MAILER_STATUS_FAILTURE_ADDMESSAGE;
if(! smtp_set_reverse_path(message,addresses->from->mailbox)) /* Absenderaddresse setzen */ if(! smtp_set_reverse_path(message,addresses->from->mailbox)) /* Absenderaddresse setzen */
@ -162,7 +162,7 @@ int mail_message(address_all_struct *addresses, char *subject, int eightbit, ma
if(!smtp_set_messagecb(message, read_mail_tmp_file, fd)) /* Callback - Funktion zum lesen der temp. Datei */ if(!smtp_set_messagecb(message, read_mail_tmp_file, fd)) /* Callback - Funktion zum lesen der temp. Datei */
return MAILER_STATUS_FAILTURE_SETMESSAGECB; return MAILER_STATUS_FAILTURE_SETMESSAGECB;
if(!(add_recipients(message, addresses->to) && add_recipients(message, addresses->cc) && add_recipients(message, addresses->bcc) ) ) /* Empfänger setzen */ if(!(add_recipients(message, addresses->to) && add_recipients(message, addresses->cc) && add_recipients(message, addresses->bcc) ) ) /* Empfaenger setzen */
return MAILER_STATUS_FAILTURE_ADDRECIPIENTS; return MAILER_STATUS_FAILTURE_ADDRECIPIENTS;
if(!smtp_start_session(session)) /* Session Starten (Mail versenden) */ if(!smtp_start_session(session)) /* Session Starten (Mail versenden) */
@ -175,7 +175,7 @@ int mail_message(address_all_struct *addresses, char *subject, int eightbit, ma
return MAILER_STATUS_FAILTURE_SENDING; return MAILER_STATUS_FAILTURE_SENDING;
} }
/* aufräumen */ /* aufraeumen */
if(fd != NULL) if(fd != NULL)
fclose(fd); fclose(fd);
if(hostportstr != NULL) if(hostportstr != NULL)
@ -197,18 +197,18 @@ int mail_message(address_all_struct *addresses, char *subject, int eightbit, ma
* subject ist der Betreff der Mail * subject ist der Betreff der Mail
* fd ist der Zeiger auf die temp. Datei */ * fd ist der Zeiger auf die temp. Datei */
static int build_header(address_struct * from, address_struct *to, address_struct *cc, address_struct *bcc, char *subject, FILE *fd){ static int build_header(address_struct * from, address_struct *to, address_struct *cc, address_struct *bcc, char *subject, FILE *fd){
char *buf; /* Puffer für die Zeilen */ char *buf; /* Puffer fuer die Zeilen */
if(from == NULL || to == NULL || fd == NULL){ /* wenn absender, Empfaenger oder Dateizeiger NULL */ if(from == NULL || to == NULL || fd == NULL){ /* wenn absender, Empfaenger oder Dateizeiger NULL */
return 0; /* Dann abbrechen */ return 0; /* Dann abbrechen */
} }
buf = malloc(sizeof(char)*BUFFSIZE); /* Speicher für Puffer holen */ buf = malloc(sizeof(char)*BUFFSIZE); /* Speicher fuer Puffer holen */
fprintf(fd, "From: <%s>\r\n", from->mailbox); /* Absender setzen */ fprintf(fd, "From: <%s>\r\n", from->mailbox); /* Absender setzen */
fputs(gen_address_line(buf, TO_LINE, to), fd); /* To setzen */ fputs(gen_address_line(buf, TO_LINE, to), fd); /* To setzen */
fputs(gen_address_line(buf, CC_LINE, cc), fd); /* Cc setzen */ fputs(gen_address_line(buf, CC_LINE, cc), fd); /* Cc setzen */
fputs(gen_address_line(buf, BCC_LINE, bcc), fd); /* Bcc setzen */ fputs(gen_address_line(buf, BCC_LINE, bcc), fd); /* Bcc setzen */
fprintf(fd, "Subject: %s\r\n", subject); /* Betreff setzen */ fprintf(fd, "Subject: %s\r\n", subject); /* Betreff setzen */
fputs("Reply-To:\r\n\r\n", fd); /* Reply-To + Leerzeile anhängen */ fputs("Reply-To:\r\n\r\n", fd); /* Reply-To + Leerzeile anhaengen */
free(buf); /* Puffer freigeben */ free(buf); /* Puffer freigeben */
@ -241,7 +241,7 @@ static char * gen_from_mailbox(){
* line_type ist eine der Konstanten TO_LINE, CC_LINE oder BCC_LINE * line_type ist eine der Konstanten TO_LINE, CC_LINE oder BCC_LINE
* address sind die Addressen fuer die Zeile */ * address sind die Addressen fuer die Zeile */
static char * gen_address_line(char *buf, const char *line_type, address_struct *address){ static char * gen_address_line(char *buf, const char *line_type, address_struct *address){
address_struct *addr = address; /* Temporärer Zeiger */ address_struct *addr = address; /* Temporaerer Zeiger */
int i = 0 ; /* zum unterscheiden, ob die erste Addresse oder nicht */ int i = 0 ; /* zum unterscheiden, ob die erste Addresse oder nicht */
strcpy(buf, line_type); /* Das Keyword ('To: ', 'Cc: ', ...) an den Zeilenanfang setzen */ strcpy(buf, line_type); /* Das Keyword ('To: ', 'Cc: ', ...) an den Zeilenanfang setzen */
@ -254,12 +254,12 @@ static char * gen_address_line(char *buf, const char *line_type, address_struct
strcat(buf, ">"); /* '>' dahintersetzen */ strcat(buf, ">"); /* '>' dahintersetzen */
i++; i++;
} }
strcat(buf, "\r\n"); /* Wagenrücklauf + Zeilenvorschub anhängen */ strcat(buf, "\r\n"); /* Wagenruecklauf + Zeilenvorschub anhaengen */
return buf; return buf;
} }
/* Mail aus temporärer Datei lesen (Callbackfkt.) /* Mail aus temporaerer Datei lesen (Callbackfkt.)
* buf ist ein Zeiger auf einen Zeichenpuffer * buf ist ein Zeiger auf einen Zeichenpuffer
* len ist NULL (dann rewind des Files) oder nicht NULL (dann Daten lesen) * len ist NULL (dann rewind des Files) oder nicht NULL (dann Daten lesen)
* arg ist der Zeiger auf die temp. Datei */ * arg ist der Zeiger auf die temp. Datei */
@ -280,8 +280,8 @@ static const char *read_mail_tmp_file (void **buf, int *len, void *arg){
char *p = strchr (*buf, '\0'); /* Das Terminierungszeichen suchen */ char *p = strchr (*buf, '\0'); /* Das Terminierungszeichen suchen */
if (p[-1] == '\n' && p[-2] != '\r') { /* Wenn kein Wagenruecklauf */ if (p[-1] == '\n' && p[-2] != '\r') { /* Wenn kein Wagenruecklauf */
strcpy (p - 1, "\r\n"); /* dann einen ergänzen */ strcpy (p - 1, "\r\n"); /* dann einen ergaenzen */
p++; /* und den String ein Zeichen länger machen */ p++; /* und den String ein Zeichen laenger machen */
} }
octets = p - (char *) *buf; /* Gelesene Zeichen berechnen */ octets = p - (char *) *buf; /* Gelesene Zeichen berechnen */
} }
@ -291,14 +291,14 @@ static const char *read_mail_tmp_file (void **buf, int *len, void *arg){
} }
/* Empfaenger zu einer Mail hinzufügen /* Empfaenger zu einer Mail hinzufuegen
* message ist die SMTP - Message * message ist die SMTP - Message
* address ist die Liste mit den Empfaengeraddressen */ * address ist die Liste mit den Empfaengeraddressen */
static int add_recipients(smtp_message_t message, address_struct *address){ static int add_recipients(smtp_message_t message, address_struct *address){
address_struct *adr = address; /* Temp. Zeiger auf die Addressen */ address_struct *adr = address; /* Temp. Zeiger auf die Addressen */
for(; adr; adr = adr->next){ /* Addressen durchgehen */ for(; adr; adr = adr->next){ /* Addressen durchgehen */
if(adr->mailbox){ /* Wenn eine gueltige gefunden */ if(adr->mailbox){ /* Wenn eine gueltige gefunden */
if(!smtp_add_recipient(message, adr->mailbox)) /* Dann hinzufügen */ if(!smtp_add_recipient(message, adr->mailbox)) /* Dann hinzufuegen */
return 0; return 0;
} }
} }
@ -307,9 +307,9 @@ static int add_recipients(smtp_message_t message, address_struct *address){
/* Event-Callback-Funktion. /* Event-Callback-Funktion.
* Die wird von der Libsmtp aufgerufen wenn während der Session irgend etwas * Die wird von der Libsmtp aufgerufen wenn waehrend der Session irgend etwas
* (unabhöngig ob gut oder nicht gut) passiert. * (unabhoengig ob gut oder nicht gut) passiert.
* dadurch hat man die Möglichkeit auf solche Ereignisse zu reagieren */ * dadurch hat man die Moeglichkeit auf solche Ereignisse zu reagieren */
static void event_cb (smtp_session_t session, int event_no, void *arg,...){ static void event_cb (smtp_session_t session, int event_no, void *arg,...){
va_list alist; /* Argumentliste */ va_list alist; /* Argumentliste */
int *ok; /* Rueckgabewert an die lib */ int *ok; /* Rueckgabewert an die lib */
@ -338,7 +338,7 @@ static void event_cb (smtp_session_t session, int event_no, void *arg,...){
break; break;
} }
case SMTP_EV_INVALID_PEER_CERTIFICATE: { /* Ungueltiges Server-Zertifikat */ case SMTP_EV_INVALID_PEER_CERTIFICATE: { /* Ungueltiges Server-Zertifikat */
long vfy_result; /* prüfungs-resultat */ long vfy_result; /* pruefungs-resultat */
vfy_result = va_arg(alist, long); vfy_result = va_arg(alist, long);
ok = va_arg(alist, int*); ok = va_arg(alist, int*);
DEBUGOUT3("SMTP: Invalid peer certificate! verify-Result: %d continue: %d\n", vfy_result, servopt->ssl_ctx_peer_invalid); DEBUGOUT3("SMTP: Invalid peer certificate! verify-Result: %d continue: %d\n", vfy_result, servopt->ssl_ctx_peer_invalid);
@ -391,10 +391,10 @@ static int default_auth_cb (auth_client_request_t request, char **result, int fi
for (i = 0; i < fields; i++) { /* Felder durchlaufen */ for (i = 0; i < fields; i++) { /* Felder durchlaufen */
if (request[i].flags & AUTH_USER) { /* Wenn username erfragt wird */ if (request[i].flags & AUTH_USER) { /* Wenn username erfragt wird */
result[i] = ((server_vars *)arg)->auth_user; /* dann den übergeben */ result[i] = ((server_vars *)arg)->auth_user; /* dann den uebergeben */
} }
else if (request[i].flags & AUTH_PASS) { /* wenn nach Passwort gefragt wird */ else if (request[i].flags & AUTH_PASS) { /* wenn nach Passwort gefragt wird */
result[i] = ((server_vars *)arg)->auth_pass; /* dann das übergeben */ result[i] = ((server_vars *)arg)->auth_pass; /* dann das uebergeben */
} }
} }

View File

@ -31,7 +31,7 @@
/* SSL-Benutzung */ /* SSL-Benutzung */
#define SSL_ENABLED 0 /* auf jeden Fall eingschaltet */ #define SSL_ENABLED 0 /* auf jeden Fall eingschaltet */
#define SSL_DISABLED 1 /* Ausgeschaltet */ #define SSL_DISABLED 1 /* Ausgeschaltet */
#define SSL_REQUIRED 2 /* Wenn benötigt */ #define SSL_REQUIRED 2 /* Wenn benoetigt */
/* Zertifikat akzeptieren */ /* Zertifikat akzeptieren */
#define SSL_ACCEPT 1 /* Ja */ #define SSL_ACCEPT 1 /* Ja */
@ -53,10 +53,10 @@
#define MAILER_STATUS_FAILTURE_SETSERVER 4 /* Server kann nicht gesetzt werden */ #define MAILER_STATUS_FAILTURE_SETSERVER 4 /* Server kann nicht gesetzt werden */
#define MAILER_STATUS_FAILTURE_CREATEAUTHCTX 5 /* Authentifizierungskontext kann nicht angelegt werden */ #define MAILER_STATUS_FAILTURE_CREATEAUTHCTX 5 /* Authentifizierungskontext kann nicht angelegt werden */
#define MAILER_STATUS_FAILTURE_SETAUTHCTX 6 /* Authentifizierungskontext kann nicht gesetzt werden */ #define MAILER_STATUS_FAILTURE_SETAUTHCTX 6 /* Authentifizierungskontext kann nicht gesetzt werden */
#define MAILER_STATUS_FAILTURE_ADDMESSAGE 7 /* Message kann nicht hinzugefügt werden */ #define MAILER_STATUS_FAILTURE_ADDMESSAGE 7 /* Message kann nicht hinzugefuegt werden */
#define MAILER_STATUS_FAILTURE_SETREVPATH 8 /* Serveraddresse kann nicht gesetzt werden */ #define MAILER_STATUS_FAILTURE_SETREVPATH 8 /* Serveraddresse kann nicht gesetzt werden */
#define MAILER_STATUS_FAILTURE_SETMESSAGECB 9 /* Message-Callback-fkt kann nicht gesetzt werden */ #define MAILER_STATUS_FAILTURE_SETMESSAGECB 9 /* Message-Callback-fkt kann nicht gesetzt werden */
#define MAILER_STATUS_FAILTURE_ADDRECIPIENTS 10 /* Empfaenger kkoennen nicht hinzugefügt werden */ #define MAILER_STATUS_FAILTURE_ADDRECIPIENTS 10 /* Empfaenger kkoennen nicht hinzugefuegt werden */
#define MAILER_STATUS_FAILTURE_STARTSESSION 11 /* Session kann nicht gestartet werden */ #define MAILER_STATUS_FAILTURE_STARTSESSION 11 /* Session kann nicht gestartet werden */
#define MAILER_STATUS_FAILTURE_SENDING 12 /* Fehler beim senden */ #define MAILER_STATUS_FAILTURE_SENDING 12 /* Fehler beim senden */
#define MAILER_STATUS_FAILTURE_CREATE_HEADER 13 /* Header kann nicht gebaut werden */ #define MAILER_STATUS_FAILTURE_CREATE_HEADER 13 /* Header kann nicht gebaut werden */
@ -67,22 +67,22 @@
* das 2. Argument ist das Argument, welches der mail_message-fkt. uebergeben wurde */ * das 2. Argument ist das Argument, welches der mail_message-fkt. uebergeben wurde */
typedef char *(*mail_linereader_cb)(int line, void *arg); typedef char *(*mail_linereader_cb)(int line, void *arg);
/* Datenstruktur für die Addressliste */ /* Datenstruktur fuer die Addressliste */
typedef struct address_t { typedef struct address_t {
char *mailbox; /* mail-Addresse */ char *mailbox; /* mail-Addresse */
struct address_t *next; /* Zeiger auf das nächste Element */ struct address_t *next; /* Zeiger auf das naechste Element */
} address_struct; } address_struct;
/* Zusammenfassung jeglicher Addressen */ /* Zusammenfassung jeglicher Addressen */
typedef struct address_all_t { typedef struct address_all_t {
address_struct *from; /* Absender */ address_struct *from; /* Absender */
address_struct *to; /* Empfänger */ address_struct *to; /* Empfaenger */
address_struct *cc; /* cc */ address_struct *cc; /* cc */
address_struct *bcc; /* bcc */ address_struct *bcc; /* bcc */
} address_all_struct; } address_all_struct;
/* Datenstruktur für die Server-Optionen */ /* Datenstruktur fuer die Server-Optionen */
typedef struct server_vars_t { typedef struct server_vars_t {
char *host; /* host */ char *host; /* host */
int port; /* port */ int port; /* port */
@ -103,13 +103,13 @@ typedef struct server_vars_t {
* 2. Argument: Betreff der Nachicht * 2. Argument: Betreff der Nachicht
* 3. Argument: eightbit-flag setzen oder nicht * 3. Argument: eightbit-flag setzen oder nicht
* 4. Argument: Callback-Fkt. zum lesen einer Zeile * 4. Argument: Callback-Fkt. zum lesen einer Zeile
* 5. Argument: Argument für die Callback-Fkt. * 5. Argument: Argument fuer die Callback-Fkt.
* 6. Argument: Server-Einstellungen * 6. Argument: Server-Einstellungen
* gibt einen Statusnummer zurueck */ * gibt einen Statusnummer zurueck */
int mail_message(address_all_struct *, char *, int, mail_linereader_cb, void *, server_vars *); int mail_message(address_all_struct *, char *, int, mail_linereader_cb, void *, server_vars *);
/* Gibt ein grundgerüst mit default-servereinstellungen /* Gibt ein grundgeruest mit default-servereinstellungen
* zurueck, damit man nicht immer alles selbst angeben muss */ * zurueck, damit man nicht immer alles selbst angeben muss */
server_vars *get_default_servopts(); server_vars *get_default_servopts();

View File

@ -28,7 +28,7 @@ $(BIN_NAME): $(OBJS)
@ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql -lpq $(LDFLAS) $(BIN_NAME) $(OBJS) @ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql -lpq $(LDFLAS) $(BIN_NAME) $(OBJS)
@ echo Binary $(BIN_NAME) ist fertig! @ echo Binary $(BIN_NAME) ist fertig!
# Abhängigkeiten # Abhaengigkeiten
main.o: main.c main.h definitions.h config.h input.h main.o: main.c main.h definitions.h config.h input.h
config.o: config.c config.h definitions.h config.o: config.c config.h definitions.h
input.o: input.c input.h main.h config.h definitions.h process.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) @ install -m644 COPYING $(DESTDIR)$(DOCDIR)
# Aufräumnen (alle Object-Files löschen) # Aufraeumnen (alle Object-Files loeschen)
cleanup: cleanup:
@ echo "Räume auf..." @ echo "Raeume auf..."
@ echo "...entferne Object-Files:" @ echo "...entferne Object-Files:"
@ echo " " $(OBJS) @ echo " " $(OBJS)
@ $(RM) -f $(OBJS) @ $(RM) -f $(OBJS)
clean: cleanup clean: cleanup
@ echo "...lösche binary:" @ echo "...loesche binary:"
@ echo " " $(BIN_NAME) @ echo " " $(BIN_NAME)
@ rm -f $(BIN_NAME) @ rm -f $(BIN_NAME)

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
config.c -- Part of the weatherdeamon config.c -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski Copyright (C) 2006 Jan Losinski
@ -42,7 +42,7 @@ static read_verbose_flag(const char *, void *);
static int flag_handler(int *, int , const char *); 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 */ * und dem eld in der Options-Struktur */
static const struct config_keyword keywords[] = { static const struct config_keyword keywords[] = {
/* keyword handler variable address default */ /* keyword handler variable address default */
@ -119,22 +119,22 @@ int read_config(const char *file, int reset){
int lm = 0; /* Zeilen-Nummer */ int lm = 0; /* Zeilen-Nummer */
/* Optionen mit default-werten füllen */ /* Optionen mit default-werten fuellen */
if(reset){ if(reset){
for (i = 0; keywords[i].keyword[0]; i++) for (i = 0; keywords[i].keyword[0]; i++)
if (keywords[i].def[0]) if (keywords[i].def[0])
keywords[i].handler(keywords[i].def, keywords[i].var); keywords[i].handler(keywords[i].def, keywords[i].var);
} }
/* config-file öffnen */ /* config-file oeffnen */
if (!(in = fopen(file, "r"))) { if (!(in = fopen(file, "r"))) {
#ifndef NO_LOGING #ifndef NO_LOGING
if(get_flag(LOG_ERROR_FLAG)){ 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()); log_error(get_error_buffer());
} }
#endif #endif
DEBUGOUT2("Kann Config-File: %s nicht öffnen!\n", file); DEBUGOUT2("Kann Config-File: %s nicht oeffnen!\n", file);
return 0; return 0;
} }
@ -142,10 +142,10 @@ int read_config(const char *file, int reset){
while (fgets(buffer, CONFIG_BUFFERSIZE, in)) { while (fgets(buffer, CONFIG_BUFFERSIZE, in)) {
lm++; lm++;
/* Zeilenvorschübe gegen null-terminierungs-Zeichen ersetzen */ /* Zeilenvorschuebe gegen null-terminierungs-Zeichen ersetzen */
if (strchr(buffer, '\n')) *(strchr(buffer, '\n')) = '\0'; 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); strcpy(orig, buffer);
/* Kommentazeichen gegen null-terminierungs-Zeichen ersetzen und damit alles dahinter ignorieren */ /* Kommentazeichen gegen null-terminierungs-Zeichen ersetzen und damit alles dahinter ignorieren */

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
config.h -- Part of the weatherdeamon config.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski Copyright (C) 2006 Jan Losinski

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
definitions.h -- Part of the weatherdeamon definitions.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski 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 ------------------------------------------------- */ /* Sensor definitionen ------------------------------------------------- */
#define FERNB 0x07 /* Funkfernbedienung */ #define FERNB 0x07 /* Funkfernbedienung */
@ -56,7 +56,7 @@
#define ERROR_TIMEOUT "sensor-rs232interface: keine Daten - timeout-Fehler\n" #define ERROR_TIMEOUT "sensor-rs232interface: keine Daten - timeout-Fehler\n"
#define ERROR_POLLING "sensor-rs232interface: keine Daten - polling-Fehler\n" #define ERROR_POLLING "sensor-rs232interface: keine Daten - polling-Fehler\n"
#define ERROR_READ "sensor-rs232interface: Fehler beim Lesen\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_FORK "Fork-Fehler: Kann den Prozess nicht in den Hintergrund schieben\n"
#define ERROR_SEIINST "Signal-Fehler: Kann Signalhandler zum beenden nicht installieren\n" #define ERROR_SEIINST "Signal-Fehler: Kann Signalhandler zum beenden nicht installieren\n"
@ -70,12 +70,12 @@
#endif #endif
/* Puffergrößen -------------------------------------------------------- */ /* Puffergroeßen -------------------------------------------------------- */
#define LOG_BUFFERSIZE 100 /* Größe für den Log-Puffer in process.c */ #define LOG_BUFFERSIZE 100 /* Groeße fuer den Log-Puffer in process.c */
#define ERR_BUFFERSIZE 512 /* Größe für den error-Puffer in main.c */ #define ERR_BUFFERSIZE 512 /* Groeße fuer den error-Puffer in main.c */
#define INPUT_BUFFERSIZE 8 /* Größe für den Input-Puffer in input.c */ #define INPUT_BUFFERSIZE 8 /* Groeße fuer den Input-Puffer in input.c */
#define CONFIG_BUFFERSIZE 512 /* Größe des Puffers zum Config-einlesen */ #define CONFIG_BUFFERSIZE 512 /* Groeße des Puffers zum Config-einlesen */
#define QUERY_BUFFERSIZE 512 /* Größe des Zeichenpuffers für SQL-Anfragen */ #define QUERY_BUFFERSIZE 512 /* Groeße des Zeichenpuffers fuer SQL-Anfragen */
/* Timeout-Zeiten ------------------------------------------------------ */ /* Timeout-Zeiten ------------------------------------------------------ */

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
input.c -- Part of the weatherdeamon input.c -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski 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) if ((fd = open(global_opts.device,O_RDONLY | O_NONBLOCK | O_NOCTTY | O_NDELAY)) < 0)
exit_error(ERROR_OPEN); exit_error(ERROR_OPEN);
/* Erstmal alles zurücksetzen*/ /* Erstmal alles zuruecksetzen*/
cfmakeraw(&options); cfmakeraw(&options);
/* Uebertragungsgeschwindigkeit 19200 Baud */ /* Uebertragungsgeschwindigkeit 19200 Baud */
cfsetispeed(&options, B19200); cfsetispeed(&options, B19200);
@ -74,7 +74,7 @@ static int set_port()
/* Local-Flags brauchmer auch keine*/ /* Local-Flags brauchmer auch keine*/
options.c_lflag = 0; options.c_lflag = 0;
/* Zeug für die Flusskontrolle */ /* Zeug fuer die Flusskontrolle */
//options.c_cc[VMIN] = 1; //options.c_cc[VMIN] = 1;
//options.c_cc[VTIME] = 5; //options.c_cc[VTIME] = 5;
@ -94,13 +94,13 @@ static int set_port()
int read_port(){ int read_port(){
fd = set_port(); fd = set_port();
int len=0; /* Anzahl gelesener Daten */ 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 */ u_char buffer[INPUT_BUFFERSIZE], *temp = NULL; /* Lesepuffer, Temp-Zeiger */
struct pollfd pfd = {fd, POLLIN, (short)NULL}; /* polling-Optionen */ 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"); DEBUGOUT1("\nWarte auf Daten\n\n");
@ -108,10 +108,10 @@ int read_port(){
do { do {
if((len = poll(&pfd, 1, INPUT_TIMEOUT)) > 0){ /* warten auf Eingabepuffer */ if((len = poll(&pfd, 1, INPUT_TIMEOUT)) > 0){ /* warten auf Eingabepuffer */
len = read(fd, temp, 1); /* Zeichenweise lesen */ 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){ if(*temp == STX){
temp++; /* Wenn startbyte gefunden Zeiger auf das 2. Puffer-Element setzen */ 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 */ } 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 */ 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]); DEBUGOUT2("%x ",buffer[i]);
DEBUGOUT1("\n"); DEBUGOUT1("\n");
check_data(readlen,buffer); /* Daten nochmals Prüfen und verarbeiten */ check_data(readlen,buffer); /* Daten nochmals Pruefen und verarbeiten */
DEBUGOUT1("------------------------------------------\n"); DEBUGOUT1("------------------------------------------\n");
readlen = 1; /* Lesezähler zurücksetzen */ readlen = 1; /* Lesezaehler zuruecksetzen */
temp = buffer; /* Temp.-Zeiger wieder auf Pufferanfang setzen */ temp = buffer; /* Temp.-Zeiger wieder auf Pufferanfang setzen */
} else { /* Wenn schon was relevantes da war, aber noch keine 8 byte incl. Stoppbyte */ } 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 */ 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 */ temp = buffer; /* Temp-Zeiger auf Pufferanfang */
} else { /* Sonst */ } else { /* Sonst */
readlen++; /* Lesezähler erhöhen */ readlen++; /* Lesezaehler erhoehen */
temp++; /* Temp.-Zeiger auf das nächste element setzen */ temp++; /* Temp.-Zeiger auf das naechste element setzen */
} }
} }
} }
@ -145,12 +145,12 @@ int read_port(){
return 1; return 1;
} }
/* Überprüfung, ob die Struktur der Daten stimmt /* Ueberpruefung, ob die Struktur der Daten stimmt
* es sollten 8 Byte ankommen: * es sollten 8 Byte ankommen:
* <STX><Typ><W1><W2><W3><W4><W5><EXT> * <STX><Typ><W1><W2><W3><W4><W5><EXT>
* wobei <STX> = 02h * wobei <STX> = 02h
* und <EXT> = 03h * 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) * Im <Typ>-Byte sind die unteren 4 bit die Addresse und die oberen 3 (weil 7. ist ja nicht benutzt)
* der Typ des Sensors. * der Typ des Sensors.
* Die Typenzuordnung steht in der definitions.h. * Die Typenzuordnung steht in der definitions.h.

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
input.h -- Part of the weatherdeamon input.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski Copyright (C) 2006 Jan Losinski
@ -26,5 +26,5 @@
/* Funktionen */ /* Funktionen */
/* Schnittstelle öffnen + lesen */ /* Schnittstelle oeffnen + lesen */
int read_port(); int read_port();

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
main.h -- Part of the weatherdeamon main.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski Copyright (C) 2006 Jan Losinski
@ -41,8 +41,8 @@ typedef struct {
#endif #endif
} w_opts; } w_opts;
/* Aufräumfunktionen */ /* Aufraeumfunktionen */
/* TODO: sollen Funktionen werden, mit denen die eintelnen Teile funktionen registrieren können, die aufräiumen /* TODO: sollen Funktionen werden, mit denen die eintelnen Teile funktionen registrieren koennen, die aufraeiumen
* (Verbindung schließen, file schließen, ...) */ * (Verbindung schließen, file schließen, ...) */
typedef struct clean_struct *clean_struct_ptr; typedef struct clean_struct *clean_struct_ptr;
typedef struct clean_struct { typedef struct clean_struct {
@ -59,7 +59,7 @@ typedef struct clean_struct {
void exit_error(char*); void exit_error(char*);
/* Ein Flag bekommen /* Ein Flag bekommen
* Argument: Maske für das Flag, siehe definitions.h */ * Argument: Maske fuer das Flag, siehe definitions.h */
int get_flag(int); int get_flag(int);
#ifndef NO_LOGING #ifndef NO_LOGING
@ -72,18 +72,18 @@ void log_error(char *);
* 2. Argument: Log-Message */ * 2. Argument: Log-Message */
void log_data(time_t, char *); void log_data(time_t, char *);
/* Gibt _EINEN_ Puffer für das Zusammensetzen /* Gibt _EINEN_ Puffer fuer das Zusammensetzen
* der Fehler-Zeichenketten zurück. * der Fehler-Zeichenketten zurueck.
* Es sollte wirklich bei jedem Aufruf der selbe * Es sollte wirklich bei jedem Aufruf der selbe
* Puffer sein */ * Puffer sein */
char *get_error_buffer(); char *get_error_buffer();
#endif #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 * einen Pointer auf eine Funktion vom Typ
* void func(void *data), * void func(void *data),
* einen Zeiger auf beliebige Daten und einen Zeiger auf das nächste Element lt. * einen Zeiger auf beliebige Daten und einen Zeiger auf das naechste Element haelt.
* Die Funktionen werden beim regulären beenden des Programmes aufgerufen um zum bsp. * Die Funktionen werden beim regulaeren beenden des Programmes aufgerufen um zum bsp.
* datenbankverbindungen zu schließen, etc. */ * datenbankverbindungen zu schließen, etc. */
void add_clean(void (*func)(void *data), void *data); void add_clean(void (*func)(void *data), void *data);

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
process.c -- Part of the weatherdeamon process.c -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski Copyright (C) 2006 Jan Losinski
@ -54,7 +54,7 @@ static void check_log_buffer();
static char* prepend_type_address(u_char, u_char); static char* prepend_type_address(u_char, u_char);
/* globale Variablen */ /* 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 */ int last_rain_count = -1; /* Letzter gemessener Wasserstand */
@ -101,7 +101,7 @@ void process_data(time_t timestamp, u_char *buffer){
/* Wertkonvertierungen --------------------------------------------------- */ /* 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){ static auss1_data process_auss1(time_t timestamp, u_char address, u_char *buffer){
auss1_data data; /* Datenstruktur */ auss1_data data; /* Datenstruktur */
@ -123,7 +123,7 @@ static auss1_data process_auss1(time_t timestamp, u_char address, u_char *buffer
return data; 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){ static auss2_data process_auss2(time_t timestamp, u_char address, u_char *buffer){
auss2_data data; /* Datenstruktur */ auss2_data data; /* Datenstruktur */
@ -146,32 +146,32 @@ static auss2_data process_auss2(time_t timestamp, u_char address, u_char *buffer
return data; 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){ static regen_data process_regen(time_t timestamp, u_char address, u_char *buffer){
regen_data data; /* Datenstruktur */ regen_data data; /* Datenstruktur */
int new_rain_count = 0; /* Neuer Zählerstand */ int new_rain_count = 0; /* Neuer Zaehlerstand */
int now_rain_count = 0; /* Delta-Zählerstand */ int now_rain_count = 0; /* Delta-Zaehlerstand */
data.timestamp = timestamp; /* Zeitstempel */ data.timestamp = timestamp; /* Zeitstempel */
data.address = address; /* Addresse */ 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; last_rain_count = new_rain_count;
now_rain_count = new_rain_count - last_rain_count; /* neuen Niederschlag berechnen */ now_rain_count = new_rain_count - last_rain_count; /* neuen Niederschlag berechnen */
if(now_rain_count < 0){ /* Wenn Integerüberlauf im Sensor */ 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 Zählwert dazurechnen */ 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-Überlauf\n"); 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); 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); DEBUGOUT2("Niederschlag: %dml/m^2\n", data.counter);
#ifndef NO_LOGING #ifndef NO_LOGING
@ -185,7 +185,7 @@ static regen_data process_regen(time_t timestamp, u_char address, u_char *buffer
return data; 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){ static winds_data process_winds(time_t timestamp, u_char address, u_char *buffer){
winds_data data; /* Datenstruktur */ winds_data data; /* Datenstruktur */
@ -209,7 +209,7 @@ static winds_data process_winds(time_t timestamp, u_char address, u_char *buffer
return data; 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){ static innen_data process_innen(time_t timestamp, u_char address, u_char *buffer){
innen_data data; /* Datenstruktur */ innen_data data; /* Datenstruktur */
@ -233,7 +233,7 @@ static innen_data process_innen(time_t timestamp, u_char address, u_char *buffer
return data; 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){ static helli_data process_helli(time_t timestamp, u_char address, u_char *buffer){
helli_data data; /* Datenstruktur */ helli_data data; /* Datenstruktur */
@ -257,7 +257,7 @@ static helli_data process_helli(time_t timestamp, u_char address, u_char *buffer
return data; 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){ static pyano_data process_pyano(time_t timestamp, u_char address, u_char *buffer){
pyano_data data; /* Datenstruktur */ pyano_data data; /* Datenstruktur */
@ -284,7 +284,7 @@ static pyano_data process_pyano(time_t timestamp, u_char address, u_char *buffer
/* Verschiedenes ----------------------------------------------------------*/ /* 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){ static int convert_signed_int(u_char hi_byte, u_char lo_byte){
int val = 0; int val = 0;
val = convert_unsigned_int(hi_byte,lo_byte); 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; 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){ static unsigned int convert_unsigned_int(u_char hi_byte, u_char lo_byte){
return (remove_msb(hi_byte) << 7) | remove_msb(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 #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(){ static void check_log_buffer(){
if (log_buffer == NULL){ if (log_buffer == NULL){
log_buffer = malloc(sizeof(char)*LOG_BUFFERSIZE); 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 /* 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){ static char* prepend_type_address(u_char type, u_char address){
return (log_buffer + sprintf(log_buffer, "Sens: %i:%i - ", type, address)); return (log_buffer + sprintf(log_buffer, "Sens: %i:%i - ", type, address));
} }

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
process.h -- Part of the weatherdeamon process.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski Copyright (C) 2006 Jan Losinski

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
write.c -- Part of the weatherdeamon write.c -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski Copyright (C) 2006 Jan Losinski
@ -28,7 +28,7 @@
* *
* Sollte irgend jemand das Programm weiter verwenden, * Sollte irgend jemand das Programm weiter verwenden,
* jedoch die Daten anders oder woandershin wegschreiben * 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. * werden.
*/ */
@ -111,7 +111,7 @@ static void check_create_query_buffer(){
} }
/* Guckt ob Verbindung da und versucht aufzubauen. /* 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(){ static int pg_connect(){
if(PQstatus(connection) != CONNECTION_OK){ if(PQstatus(connection) != CONNECTION_OK){
if (connection == NULL){ 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); 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 */ 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 { } else {
PQreset(connection); /* Connecion resetten */ PQreset(connection); /* Connecion resetten */
} }
@ -149,13 +149,13 @@ static void pg_insert(char *query){
log_error(get_error_buffer()); log_error(get_error_buffer());
#endif #endif
} else { } else {
DEBUGOUT2("Query: '%s' ausgeführt\n", query); DEBUGOUT2("Query: '%s' ausgefuehrt\n", query);
} }
PQclear(res); PQclear(res);
} }
} }
/* Callbackfunktion zum Aufräume. /* Callbackfunktion zum Aufraeume.
* Schliesst die Verbindung zur Datenbank */ * Schliesst die Verbindung zur Datenbank */
static void clean_write(void *data){ static void clean_write(void *data){
PGconn *conn = data; PGconn *conn = data;

View File

@ -1,7 +1,7 @@
/* /*
weatherdeamon -- Weather Data Capture Program for the weatherdeamon -- Weather Data Capture Program for the
'ELV-PC-Wettersensor-Empfänger' 'ELV-PC-Wettersensor-Empfaenger'
write.h -- Part of the weatherdeamon write.h -- Part of the weatherdeamon
Copyright (C) 2006 Jan Losinski Copyright (C) 2006 Jan Losinski
@ -25,16 +25,16 @@
#include <time.h> #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 { typedef struct {
time_t timestamp; /*Zeitstempel*/ time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/ unsigned char address; /*Addresse*/
int temp; /*Temparatur*/ int temp; /*Temparatur*/
} auss1_data ; } auss1_data ;
/* Datenstruktur für den 'besseren' Außensensor */ /* Datenstruktur fuer den 'besseren' Außensensor */
typedef struct { typedef struct {
time_t timestamp; /*Zeitstempel*/ time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/ unsigned char address; /*Addresse*/
@ -42,14 +42,14 @@ typedef struct {
unsigned int hum; /*Luftfeuchte*/ unsigned int hum; /*Luftfeuchte*/
} auss2_data; } auss2_data;
/* Datenstruktur für den Regensensor */ /* Datenstruktur fuer den Regensensor */
typedef struct { typedef struct {
time_t timestamp; /*Zeitstempel*/ time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/ unsigned char address; /*Addresse*/
unsigned int counter; /*Zählerstand*/ unsigned int counter; /*Zaehlerstand*/
} regen_data; } regen_data;
/* Datenstruktur für den Windsensor */ /* Datenstruktur fuer den Windsensor */
typedef struct { typedef struct {
time_t timestamp; /*Zeitstempel*/ time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/ unsigned char address; /*Addresse*/
@ -58,7 +58,7 @@ typedef struct {
unsigned int richt; /*Windrichtung*/ unsigned int richt; /*Windrichtung*/
} winds_data; } winds_data;
/* Datenstruktur für den Innensensor */ /* Datenstruktur fuer den Innensensor */
typedef struct { typedef struct {
time_t timestamp; /*Zeitstempel*/ time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/ unsigned char address; /*Addresse*/
@ -67,7 +67,7 @@ typedef struct {
unsigned int press; /*Luftdruck*/ unsigned int press; /*Luftdruck*/
} innen_data; } innen_data;
/* Datenstruktur für den Helligkeitssensor */ /* Datenstruktur fuer den Helligkeitssensor */
typedef struct { typedef struct {
time_t timestamp; /*Zeitstempel*/ time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/ unsigned char address; /*Addresse*/
@ -76,7 +76,7 @@ typedef struct {
unsigned int abslum; /*Absolute Helligkeit*/ unsigned int abslum; /*Absolute Helligkeit*/
} helli_data; } helli_data;
/* Datenstruktur für das Pyranometer */ /* Datenstruktur fuer das Pyranometer */
typedef struct { typedef struct {
time_t timestamp; /*Zeitstempel*/ time_t timestamp; /*Zeitstempel*/
unsigned char address; /*Addresse*/ unsigned char address; /*Addresse*/

View File

@ -12,7 +12,7 @@ fi
if [ -e /etc/weatherstation/frontend.conf ]; then if [ -e /etc/weatherstation/frontend.conf ]; then
LINKNAME="/usr/share/weatherstation-frontend/$(grep default_chart_dir /etc/weatherstation/frontend.conf | cut -f 2 -d "'" | cut -f 2 -d '"')" LINKNAME="/usr/share/weatherstation-frontend/$(grep default_chart_dir /etc/weatherstation/frontend.conf | cut -f 2 -d "'" | cut -f 2 -d '"')"
if [ -e $LINKNAME ]; then if [ -e $LINKNAME ]; then
echo -n "Lösche Bilderlink ... " echo -n "Loesche Bilderlink ... "
/bin/rm -f $LINKNAME /bin/rm -f $LINKNAME
echo "done" echo "done"
fi fi

View File

@ -7,7 +7,7 @@ IMGDIR=$(grep dflt_image_location /etc/weatherstation/chart.conf | cut -f2)
FILES=$(ls -Al $IMGDIR | wc -l) FILES=$(ls -Al $IMGDIR | wc -l)
if [ $FILES -gt 1 ]; then if [ $FILES -gt 1 ]; then
echo -n "lösche $[$FILES - 1] generierte Bilder ... " echo -n "loesche $[$FILES - 1] generierte Bilder ... "
/bin/rm -f $IMGDIR/* /bin/rm -f $IMGDIR/*
echo "done" echo "done"
fi fi

View File

@ -5,7 +5,7 @@
if [ -e /etc/weatherstation/chart.conf ]; then if [ -e /etc/weatherstation/chart.conf ]; then
LINKNAME="/usr/share/weatherstation-frontend/$(grep default_chart_dir /etc/weatherstation/frontend.conf | cut -f 2 -d "'" | cut -f 2 -d '"')" LINKNAME="/usr/share/weatherstation-frontend/$(grep default_chart_dir /etc/weatherstation/frontend.conf | cut -f 2 -d "'" | cut -f 2 -d '"')"
if [ -e $LINKNAME ]; then if [ -e $LINKNAME ]; then
echo -n "Lösche Bilderlink ... " echo -n "Loesche Bilderlink ... "
/bin/rm -f $LINKNAME /bin/rm -f $LINKNAME
echo "done" echo "done"
fi fi

View File

@ -16,7 +16,7 @@ if(file_exists("/etc/weatherstation/frontend.conf")){
/* Config-Klasse, Bitte nicht ändern! */ /* Config-Klasse, Bitte nicht aendern! */
class Config{ class Config{
function getPgConnString(){ function getPgConnString(){

View File

@ -8,7 +8,7 @@
include_once($path."php_inc/config.inc.php"); include_once($path."php_inc/config.inc.php");
/* Connection-Klasse..ist für die Datenbankverbindung zuständig */ /* Connection-Klasse..ist fuer die Datenbankverbindung zustaendig */
class Connection{ class Connection{
var $conn = NULL; /* Verbindung */ var $conn = NULL; /* Verbindung */

View File

@ -93,13 +93,13 @@ class Module{
return $this->windInstance; return $this->windInstance;
} }
/* Callback-Funktion, wird ausgeführt wenn {content:fill:xyz} gefunden wird */ /* Callback-Funktion, wird ausgefuehrt wenn {content:fill:xyz} gefunden wird */
function fill($contentId){ function fill($contentId){
$content_split = explode("_", $contentId); /* Modultyp bekommen */ $content_split = explode("_", $contentId); /* Modultyp bekommen */
$callObject = & call_user_method("_get_".$content_split[0], $this); /* Instanz der zum Modul gehörenden Klasse */ $callObject = & call_user_method("_get_".$content_split[0], $this); /* Instanz der zum Modul gehoerenden Klasse */
$funcName = "get".substr($contentId, strlen($content_split[0]), strlen($contentId)-strlen($content_split[0])); /* Namen der In der Instanz aufzurufenden Methode zusammenbauen */ $funcName = "get".substr($contentId, strlen($content_split[0]), strlen($contentId)-strlen($content_split[0])); /* Namen der In der Instanz aufzurufenden Methode zusammenbauen */
return $callObject->$funcName($content_split[1]); /* Methode ausführen (Wert holen) und zurückgeben */ return $callObject->$funcName($content_split[1]); /* Methode ausfuehren (Wert holen) und zurueckgeben */
} }
function addChartLink($chartName){ function addChartLink($chartName){

View File

@ -43,7 +43,7 @@ class ModuleSet{
return $path."content/module_sets/set_".$setName.".html"; return $path."content/module_sets/set_".$setName.".html";
} }
/* Parser Instanzieren (wenn noch nicht ist) und zurückgeben */ /* Parser Instanzieren (wenn noch nicht ist) und zurueckgeben */
function &_getParserInstance(){ function &_getParserInstance(){
if($this->parserInstance==NULL) if($this->parserInstance==NULL)
$this->parserInstance = new Parser(); $this->parserInstance = new Parser();
@ -57,13 +57,13 @@ class ModuleSet{
return $this->connInstance; return $this->connInstance;
} }
/* Ein Modul hinzufügen */ /* Ein Modul hinzufuegen */
function addModule($modName){ function addModule($modName){
$params = explode("_",$modName); /* Modulname und Sensorid trennen */ $params = explode("_",$modName); /* Modulname und Sensorid trennen */
new Module($params[0], $params[1], $this->_getParserInstance(), $this->_getConnInstance()); new Module($params[0], $params[1], $this->_getParserInstance(), $this->_getConnInstance());
} }
/* Ein Report hinzufügen */ /* Ein Report hinzufuegen */
function addReport($rptName){ function addReport($rptName){
new Report($rptName, $this->_getParserInstance(), $this->_getConnInstance()); new Report($rptName, $this->_getParserInstance(), $this->_getConnInstance());
} }

View File

@ -67,8 +67,8 @@ class Hum{
function _fetchAverage($sensId, $table, &$connection){ function _fetchAverage($sensId, $table, &$connection){
$avData = array('average'=>0, 'count'=>0); /* Array initialisieren */ $avData = array('average'=>0, 'count'=>0); /* Array initialisieren */
$i = 1; /* Laufvariable */ $i = 1; /* Laufvariable */
while($avData['count']<5){ /* Schleife prüft, in welchem Interval 5 Werte zusammenkommen */ while($avData['count']<5){ /* Schleife prueft, in welchem Interval 5 Werte zusammenkommen */
$i++; /* Laufvariable erhöhen */ $i++; /* Laufvariable erhoehen */
$avData = $this->_getAverage($sensId, $table, &$connection, ($i*20)." minutes"); /* Holt Werte mit gegebenem Interval */ $avData = $this->_getAverage($sensId, $table, &$connection, ($i*20)." minutes"); /* Holt Werte mit gegebenem Interval */
} }
@ -82,7 +82,7 @@ class Hum{
$shortAvData = $this->_getAverage($sensId, $table, &$connection, "15 minutes"); /* Durchschnitt der letzten 15 minuten */ $shortAvData = $this->_getAverage($sensId, $table, &$connection, "15 minutes"); /* Durchschnitt der letzten 15 minuten */
$longAvData = $this->_getAverage($sensId, $table, &$connection, "120 minutes"); /* Durchschnitt der letzten 120 Minuten */ $longAvData = $this->_getAverage($sensId, $table, &$connection, "120 minutes"); /* Durchschnitt der letzten 120 Minuten */
if($shortAvData['count'] < 1 || $longAvData['count'] < 2){ /* Wenn in den letzten 5 minuten kein Wert kam oder in den letzten 120 min weniger als 3 Werte kamen */ if($shortAvData['count'] < 1 || $longAvData['count'] < 2){ /* Wenn in den letzten 5 minuten kein Wert kam oder in den letzten 120 min weniger als 3 Werte kamen */
$this->changing = "Berechnung momentan nicht möglich"; /* Dann ausgeben, dass momentan nichts berechnet werden kann */ $this->changing = "Berechnung momentan nicht moeglich"; /* Dann ausgeben, dass momentan nichts berechnet werden kann */
return; /* und aus der Funktion huepfen */ return; /* und aus der Funktion huepfen */
} }
$changing = $shortAvData['average'] - $longAvData['average']; /* Aenderung berechnen */ $changing = $shortAvData['average'] - $longAvData['average']; /* Aenderung berechnen */

View File

@ -66,8 +66,8 @@ class Press{
function _fetchAverage($sensId, $table, &$connection){ function _fetchAverage($sensId, $table, &$connection){
$avData = array('average'=>0, 'count'=>0); /* Array initialisieren */ $avData = array('average'=>0, 'count'=>0); /* Array initialisieren */
$i = 1; /* Laufvariable */ $i = 1; /* Laufvariable */
while($avData['count']<5){ /* Schleife prüft, in welchem Interval 5 Werte zusammenkommen */ while($avData['count']<5){ /* Schleife prueft, in welchem Interval 5 Werte zusammenkommen */
$i++; /* Laufvariable erhöhen */ $i++; /* Laufvariable erhoehen */
$avData = $this->_getAverage($sensId, $table, &$connection, ($i*20)." minutes"); /* Holt Werte mit gegebenem Interval */ $avData = $this->_getAverage($sensId, $table, &$connection, ($i*20)." minutes"); /* Holt Werte mit gegebenem Interval */
} }
@ -81,7 +81,7 @@ class Press{
$shortAvData = $this->_getAverage($sensId, $table, &$connection, "15 minutes"); /* Durchschnitt der letzten 15 minuten */ $shortAvData = $this->_getAverage($sensId, $table, &$connection, "15 minutes"); /* Durchschnitt der letzten 15 minuten */
$longAvData = $this->_getAverage($sensId, $table, &$connection, "120 minutes"); /* Durchschnitt der letzten 120 Minuten */ $longAvData = $this->_getAverage($sensId, $table, &$connection, "120 minutes"); /* Durchschnitt der letzten 120 Minuten */
if($shortAvData['count'] < 1 || $longAvData['count'] < 2){ /* Wenn in den letzten 5 minuten kein Wert kam oder in den letzten 120 min weniger als 3 Werte kamen */ if($shortAvData['count'] < 1 || $longAvData['count'] < 2){ /* Wenn in den letzten 5 minuten kein Wert kam oder in den letzten 120 min weniger als 3 Werte kamen */
$this->changing = "Berechnung momentan nicht möglich"; /* Dann ausgeben, dass momentan nichts berechnet werden kann */ $this->changing = "Berechnung momentan nicht moeglich"; /* Dann ausgeben, dass momentan nichts berechnet werden kann */
return; /* und aus der Funktion huepfen */ return; /* und aus der Funktion huepfen */
} }
$changing = $shortAvData['average'] - $longAvData['average']; /* Aenderung berechnen */ $changing = $shortAvData['average'] - $longAvData['average']; /* Aenderung berechnen */

View File

@ -9,7 +9,7 @@
include_once($path."php_inc/connection.inc.php"); include_once($path."php_inc/connection.inc.php");
/* Rain-Klasse für das Rain-Modul */ /* Rain-Klasse fuer das Rain-Modul */
class Rain{ class Rain{
var $nowHour; /* Regen in der momentanen Stunde */ var $nowHour; /* Regen in der momentanen Stunde */
@ -22,7 +22,7 @@ class Rain{
var $maxMonthData; /* Monat mit dem meistem Regen */ var $maxMonthData; /* Monat mit dem meistem Regen */
var $maxYearData; /* Jahr mit dem meistem Regen */ var $maxYearData; /* Jahr mit dem meistem Regen */
/* Konstruktor, Holt die Werte aus der Datenbank und füllt die Variablen damit */ /* Konstruktor, Holt die Werte aus der Datenbank und fuellt die Variablen damit */
function Rain($sensId, & $connection){ function Rain($sensId, & $connection){
/* Tabelle des Sensors bestimmen */ /* Tabelle des Sensors bestimmen */
@ -56,7 +56,7 @@ class Rain{
} }
/* --- Funktionen, die die Werte für die Ausgabe zurückgeben --- */ /* --- Funktionen, die die Werte fuer die Ausgabe zurueckgeben --- */
function get_now_hour(){ function get_now_hour(){
return round($this->nowHour * 0.001,3); return round($this->nowHour * 0.001,3);
} }

View File

@ -10,7 +10,7 @@
include_once($path."php_inc/connection.inc.php"); include_once($path."php_inc/connection.inc.php");
/* Klasse, Die Daten üben die Einzelnen Sensoren bereitstellt */ /* Klasse, Die Daten ueben die Einzelnen Sensoren bereitstellt */
class Sensor{ class Sensor{
var $id; /* Die ID des Sensors */ var $id; /* Die ID des Sensors */
@ -24,7 +24,7 @@ class Sensor{
$this->_fetchSensorData($sensId, &$connection); $this->_fetchSensorData($sensId, &$connection);
} }
/* Holt die Daten über den Sensor aus der Datenbank */ /* Holt die Daten ueber den Sensor aus der Datenbank */
function _fetchSensorData($sensId, &$connection){ function _fetchSensorData($sensId, &$connection){
$query = "SELECT * FROM sensoren WHERE id=".$sensId; $query = "SELECT * FROM sensoren WHERE id=".$sensId;
$data = $connection->fetchQueryResultLine($query); $data = $connection->fetchQueryResultLine($query);
@ -36,7 +36,7 @@ class Sensor{
$this->address = $data['addresse']; $this->address = $data['addresse'];
} }
/* --- Funktionen, die die Einzelnen Eigenschaften des Sensors zurückgeben --- */ /* --- Funktionen, die die Einzelnen Eigenschaften des Sensors zurueckgeben --- */
function get_id(){ function get_id(){
return $this->id; return $this->id;
} }

View File

@ -66,8 +66,8 @@ class Temp{
function _fetchAverage($sensId, $table, &$connection){ function _fetchAverage($sensId, $table, &$connection){
$avData = array('average'=>0, 'count'=>0); /* Array initialisieren */ $avData = array('average'=>0, 'count'=>0); /* Array initialisieren */
$i = 1; /* Laufvariable */ $i = 1; /* Laufvariable */
while($avData['count']<5){ /* Schleife prüft, in welchem Interval 5 Werte zusammenkommen */ while($avData['count']<5){ /* Schleife prueft, in welchem Interval 5 Werte zusammenkommen */
$i++; /* Laufvariable erhöhen */ $i++; /* Laufvariable erhoehen */
$avData = $this->_getAverage($sensId, $table, &$connection, ($i*20)." minutes"); /* Holt Werte mit gegebenem Interval */ $avData = $this->_getAverage($sensId, $table, &$connection, ($i*20)." minutes"); /* Holt Werte mit gegebenem Interval */
} }
@ -81,7 +81,7 @@ class Temp{
$shortAvData = $this->_getAverage($sensId, $table, &$connection, "15 minutes"); /* Durchschnitt der letzten 15 minuten */ $shortAvData = $this->_getAverage($sensId, $table, &$connection, "15 minutes"); /* Durchschnitt der letzten 15 minuten */
$longAvData = $this->_getAverage($sensId, $table, &$connection, "120 minutes"); /* Durchschnitt der letzten 120 Minuten */ $longAvData = $this->_getAverage($sensId, $table, &$connection, "120 minutes"); /* Durchschnitt der letzten 120 Minuten */
if($shortAvData['count'] < 1 || $longAvData['count'] < 2){ /* Wenn in den letzten 5 minuten kein Wert kam oder in den letzten 120 min weniger als 3 Werte kamen */ if($shortAvData['count'] < 1 || $longAvData['count'] < 2){ /* Wenn in den letzten 5 minuten kein Wert kam oder in den letzten 120 min weniger als 3 Werte kamen */
$this->changing = "Berechnung momentan nicht möglich"; /* Dann ausgeben, dass momentan nichts berechnet werden kann */ $this->changing = "Berechnung momentan nicht moeglich"; /* Dann ausgeben, dass momentan nichts berechnet werden kann */
return; /* und aus der Funktion huepfen */ return; /* und aus der Funktion huepfen */
} }
$changing = $shortAvData['average'] - $longAvData['average']; /* Aenderung berechnen */ $changing = $shortAvData['average'] - $longAvData['average']; /* Aenderung berechnen */

View File

@ -139,8 +139,8 @@ class Wind{
function _fetchAverage($sensId, $table, &$connection){ function _fetchAverage($sensId, $table, &$connection){
$avData = array('average'=>0, 'count'=>0); /* Array initialisieren */ $avData = array('average'=>0, 'count'=>0); /* Array initialisieren */
$i = 1; /* Laufvariable */ $i = 1; /* Laufvariable */
while($avData['count']<5){ /* Schleife prüft, in welchem Interval 5 Werte zusammenkommen */ while($avData['count']<5){ /* Schleife prueft, in welchem Interval 5 Werte zusammenkommen */
$i++; /* Laufvariable erhöhen */ $i++; /* Laufvariable erhoehen */
$avData = $this->_getAverage($sensId, $table, &$connection, ($i*20)." minutes"); /* Holt Werte mit gegebenem Interval */ $avData = $this->_getAverage($sensId, $table, &$connection, ($i*20)." minutes"); /* Holt Werte mit gegebenem Interval */
} }
@ -154,7 +154,7 @@ class Wind{
$shortAvData = $this->_getAverage($sensId, $table, &$connection, "15 minutes"); /* Durchschnitt der letzten 15 minuten */ $shortAvData = $this->_getAverage($sensId, $table, &$connection, "15 minutes"); /* Durchschnitt der letzten 15 minuten */
$longAvData = $this->_getAverage($sensId, $table, &$connection, "120 minutes"); /* Durchschnitt der letzten 120 Minuten */ $longAvData = $this->_getAverage($sensId, $table, &$connection, "120 minutes"); /* Durchschnitt der letzten 120 Minuten */
if($shortAvData['count'] < 1 || $longAvData['count'] < 2){ /* Wenn in den letzten 5 minuten kein Wert kam oder in den letzten 120 min weniger als 3 Werte kamen */ if($shortAvData['count'] < 1 || $longAvData['count'] < 2){ /* Wenn in den letzten 5 minuten kein Wert kam oder in den letzten 120 min weniger als 3 Werte kamen */
$this->changing = "Berechnung momentan nicht möglich"; /* Dann ausgeben, dass momentan nichts berechnet werden kann */ $this->changing = "Berechnung momentan nicht moeglich"; /* Dann ausgeben, dass momentan nichts berechnet werden kann */
return; /* und aus der Funktion huepfen */ return; /* und aus der Funktion huepfen */
} }
$changing = $shortAvData['average'] - $longAvData['average']; /* Aenderung berechnen */ $changing = $shortAvData['average'] - $longAvData['average']; /* Aenderung berechnen */

View File

@ -17,7 +17,7 @@ class Parser{
return $this->contentArray; return $this->contentArray;
} }
/* Fügt Inhalt in das Inhalts-Array ein */ /* Fuegt Inhalt in das Inhalts-Array ein */
function appendContent($newContent){ function appendContent($newContent){
if(is_array($newContent)){ if(is_array($newContent)){
for($i = 0; $i < count($newContent); $i++){ for($i = 0; $i < count($newContent); $i++){
@ -63,7 +63,7 @@ class Parser{
} }
/* Sucht innerhalb eines Template-Files nach dem richtigem Template-stück /* Sucht innerhalb eines Template-Files nach dem richtigem Template-stueck
* und pappt es in ein neues Array */ * und pappt es in ein neues Array */
function _fetchFilePart($fileArray, $filePart){ function _fetchFilePart($fileArray, $filePart){
$inPart = false; /* Flag ob innerhalb des gesuchten Templates Initialisieren */ $inPart = false; /* Flag ob innerhalb des gesuchten Templates Initialisieren */
@ -74,7 +74,7 @@ class Parser{
$inPart = false; /* ...wenn gefunden Flag wieder False setzen */ $inPart = false; /* ...wenn gefunden Flag wieder False setzen */
break; /* ...und Schleife abbrechen */ break; /* ...und Schleife abbrechen */
} else { } else {
array_push($newArray, $fileArray[$i]); /* An sonsten Zeile zum neuem Array hinzufügen */ array_push($newArray, $fileArray[$i]); /* An sonsten Zeile zum neuem Array hinzufuegen */
} }
} else { /* Wenn nich im gesuchtem Template */ } else { /* Wenn nich im gesuchtem Template */
if(preg_match("/\{content:part:".$filePart."\}/i", $fileArray[$i])){ /* Nach dem Anfang des Templates suchen */ if(preg_match("/\{content:part:".$filePart."\}/i", $fileArray[$i])){ /* Nach dem Anfang des Templates suchen */

View File

@ -88,21 +88,21 @@ class Report{
} }
/* Ein Modul hinzufügen */ /* Ein Modul hinzufuegen */
function addModule($modName){ function addModule($modName){
new Module($this->rptArray[9], $this->rptArray[2], $this->_getParserInstance(), $this->_getConnInstance()); new Module($this->rptArray[9], $this->rptArray[2], $this->_getParserInstance(), $this->_getConnInstance());
} }
/* Callback-Funktion, wird ausgeführt wenn {content:fill:xyz} gefunden wird */ /* Callback-Funktion, wird ausgefuehrt wenn {content:fill:xyz} gefunden wird */
function fill($contentId){ function fill($contentId){
$content_split = explode("_", $contentId); /* Modultyp bekommen */ $content_split = explode("_", $contentId); /* Modultyp bekommen */
$callObject = & call_user_method("_get_".$content_split[0], $this); /* Instanz der zum Modul gehörenden Klasse */ $callObject = & call_user_method("_get_".$content_split[0], $this); /* Instanz der zum Modul gehoerenden Klasse */
$funcName = "get".substr($contentId, strlen($content_split[0]), strlen($contentId)-strlen($content_split[0])); /* Namen der In der Instanz aufzurufenden Methode zusammenbauen */ $funcName = "get".substr($contentId, strlen($content_split[0]), strlen($contentId)-strlen($content_split[0])); /* Namen der In der Instanz aufzurufenden Methode zusammenbauen */
return $callObject->$funcName($content_split[1]); /* Methode ausführen (Wert holen) und zurückgeben */ return $callObject->$funcName($content_split[1]); /* Methode ausfuehren (Wert holen) und zurueckgeben */
} }
/* Parser Instanzieren (wenn noch nicht ist) und zurückgeben */ /* Parser Instanzieren (wenn noch nicht ist) und zurueckgeben */
function &_getParserInstance(){ function &_getParserInstance(){
if($this->parserInstance==NULL) if($this->parserInstance==NULL)
$this->parserInstance = new Parser(); $this->parserInstance = new Parser();