Daemon: Fix counting of rain values
git-svn-id: file:///home/jan/tmp/wetterstation/trunk@260 dd492736-c11a-0410-ad51-8c26713eaf7f
This commit is contained in:
parent
23ff8045db
commit
db4eeea744
|
|
@ -55,7 +55,7 @@ static char* prepend_type_address(u_char, u_char);
|
||||||
|
|
||||||
/* globale Variablen */
|
/* globale Variablen */
|
||||||
char *log_buffer = NULL; /* Puffer fuer die Log-Ausgabe */
|
char *log_buffer = NULL; /* Puffer fuer die Log-Ausgabe */
|
||||||
int last_rain_count = -1; /* Letzter gemessener Wasserstand */
|
int last_rain_count[16] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; /* Letzter gemessener Wasserstand */
|
||||||
|
|
||||||
|
|
||||||
/* Bestimmung der Sensoren und Weiterreichung an die Funktionen zum auswerten der Werte
|
/* Bestimmung der Sensoren und Weiterreichung an die Funktionen zum auswerten der Werte
|
||||||
|
|
@ -156,19 +156,19 @@ static regen_data process_regen(time_t timestamp, u_char address, u_char *buffer
|
||||||
data.address = address; /* Addresse */
|
data.address = address; /* Addresse */
|
||||||
new_rain_count = ((buffer[2] & 0x1F) << 7) | remove_msb(buffer[3]); /* Niederschlagszaehler */
|
new_rain_count = ((buffer[2] & 0x1F) << 7) | remove_msb(buffer[3]); /* Niederschlagszaehler */
|
||||||
|
|
||||||
if(last_rain_count == -1) /* Nach Programmstart Zaehler initialisieren */
|
if(last_rain_count[address%16] == -1) /* Nach Programmstart Zaehler initialisieren */
|
||||||
last_rain_count = new_rain_count;
|
last_rain_count[address%16] = new_rain_count;
|
||||||
|
|
||||||
now_rain_count = new_rain_count - last_rain_count; /* neuen Niederschlag berechnen */
|
now_rain_count = new_rain_count - last_rain_count[address%16]; /* neuen Niederschlag berechnen */
|
||||||
|
|
||||||
if(now_rain_count < 0){ /* Wenn Integerueberlauf 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 Zaehlwert dazurechnen */
|
now_rain_count = (0x3FFF - last_rain_count[address%16]) + new_rain_count; /* Dann letzten gemessenen Wert vom Max-Integer-Wert abziehen und neuen Zaehlwert dazurechnen */
|
||||||
DEBUGOUT1("Integer-Ueberlauf\n");
|
DEBUGOUT1("Integer-Ueberlauf\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
data.counter = (now_rain_count * 370); /* Ein Zaehlschritt entspricht 370ml/m^2, also aenderung 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; /* Zaehler neu setzen */
|
last_rain_count[address%16] = new_rain_count; /* Zaehler neu setzen */
|
||||||
|
|
||||||
DEBUGOUT2("Regensensor an Addresse %i\n", address);
|
DEBUGOUT2("Regensensor an Addresse %i\n", address);
|
||||||
DEBUGOUT3("Zaehler: %d Differenz: %d\n", new_rain_count,now_rain_count);
|
DEBUGOUT3("Zaehler: %d Differenz: %d\n", new_rain_count,now_rain_count);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,9 @@
|
||||||
|
weatherstation (1.0.16-2) stable; urgency=low
|
||||||
|
|
||||||
|
* Daemon: Fix counting of rain values
|
||||||
|
|
||||||
|
-- Jan Losinski <losinski@wh2.tu-dresden.de> Wed, 14 Aug 2008 01:17:00 +0100
|
||||||
|
|
||||||
weatherstation (1.0.16-1) stable; urgency=low
|
weatherstation (1.0.16-1) stable; urgency=low
|
||||||
|
|
||||||
* Daemon: Fix handling of broken Database Connections
|
* Daemon: Fix handling of broken Database Connections
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue