1 |
2017-01-15 14:32:17.693659 |
Startzeit des Programms |
2 |
2017-01-15 14:32:18.397857 |
Der Connect zur Datenbank ist hergestellt |
3 |
2017-01-15 14:32:23.510775 |
Die Tabelle Dump befindet sich in einem Python-Dictionary |
4 |
2017-01-15 14:32:24.865189 |
Das NumPy-Array ist mit den Daten gefüllt |
5 |
2017-01-15 14:32:27.372668 |
Es erscheint das folgende Fenster auf dem Bildschirm |
2017.01.20 19:00:00 GET_TIME (2017.01.20
19:00:00) 2017.01.20 19:00:00 ------------------------------------------------------------ 2017.01.20 19:00:00 hostname = Logger-01 2017.01.20 19:00:00 firmware = 1.3 2017.01.20 19:00:00 last_reboot= 2017.01.11 18:55:29 2017.01.20 19:00:00 warn = 0 2017.01.20 19:00:00 volts = 5.16 2017.01.20 19:00:00 ------------------------------------------------------------ 2017.01.20 19:00:00 Logger-01 s=1 - 2017.01.20 12:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:00 Logger-01 s=2 - 2017.01.20 12:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:00 Logger-01 s=1 - 2017.01.20 13:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:00 Logger-01 s=2 - 2017.01.20 13:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:00 Logger-01 s=1 - 2017.01.20 14:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:01 Logger-01 s=2 - 2017.01.20 14:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:01 Logger-01 s=1 - 2017.01.20 15:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:01 Logger-01 s=2 - 2017.01.20 15:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:01 Logger-01 s=1 - 2017.01.20 16:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:01 Logger-01 s=2 - 2017.01.20 16:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:01 Logger-01 s=1 - 2017.01.20 17:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:02 Logger-01 s=2 - 2017.01.20 17:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:02 Logger-01 s=1 - 2017.01.20 18:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:02 Logger-01 s=2 - 2017.01.20 18:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:02 Logger-01 s=1 - 2017.01.20 07:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:02 Logger-01 s=2 - 2017.01.20 07:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:02 Logger-01 s=1 - 2017.01.20 08:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:03 Logger-01 s=2 - 2017.01.20 08:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:03 Logger-01 s=1 - 2017.01.20 09:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:03 Logger-01 s=2 - 2017.01.20 09:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:03 Logger-01 s=1 - 2017.01.20 10:59 - ins= 1, dup= 0 (good= 1, bad= 0) 2017.01.20 19:00:03 Logger-01 s=2 - 2017.01.20 10:59 - ins= 1, dup= 0 (good= 1, bad= 0) 2017.01.20 19:00:03 Logger-01 s=1 - 2017.01.20 11:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:03 Logger-01 s=2 - 2017.01.20 11:00 - ins=60, dup= 0 (good=60, bad= 0) 2017.01.20 19:00:04 disconnect |
#define SLEEP_MS
4864
// Anzahl
Millisekunden für eine Tiefschlaf-Phase (4096+512+256) [...] // sicher in die neue Minute eintreten t=getRTC(); sc=(60-t.second)*1000l; // Millisekunden bis zur nächsten Minute if(t.minute==(sensorHourRAM_idx_g%60)) { // wenn die neue Minute schon angefangen hat (der %60 macht aus 60 -> 0) cycles_for_full_minute_g=sc/SLEEP_MS-1; // Anzahl der Tiefschlaf-Phasen bis zur nächsten Minute neu setzen } else { // wenn noch alte Minute while(sc>SLEEP_MS) { // bis zur nächsten Minute schlafen deepSleep(SLEEP_MS-512); // eine Tiefschlaf-Phase schlafen blinkAliveLED(4); // schläft nochmal 512ms sc-=SLEEP_MS; } deepSleep(sc+16); // restliche Zeit kleiner einer Tiefschlaf-Phase warten // Die +16 deswegen, weil deepSleep() bei Zeiten <16ms nicht wartet, die neue Minute aber // sicher angefangen haben soll. // Wurde "sc" z.B. eine Millisekunde vor der neuen Minute ermittelt, beträgt die Wartezeit // 1016ms. Somit ist die erste Sekunde der neuen Minute zwar bereits abgelaufen - aber das // stört nicht. // Andersrum, wenn "sc" eine Millisekunde nach Sekunden-Wechsel ermittelt würde, und // sc==1000 wäre, müsste deepSleep() mindestens 999 Millisekunden warten, damit die neue // Minute erreicht wäre. deepsleep() würde jedoch warten für: 512+256+128+64+32=992ms // Die neue Minute hätte hier also noch nicht angefangen..... } // ggf. in die neue Stunde eintreten if(set_timestamp_at_next_minute==true) { // wenn eben das Ende einer Stunde verarbeitet wurde set_timestamp_at_next_minute=false; // Kenner dafür zurücksetzen clearSensorHour(); // RAM-Speicher sauber machen t=getRTC(); // aktuelle Zeit holen for(i=0; i<sensor_count_g; i++) { sensorHourRAM_g[i].timestamp=t; // aktuelle Zeit im ein-Stunden-Speicher setzen } minutes_to_full_hour_g=60-t.minute; // Minuten bis zur nächsten Stunde einstellen sensorHourRAM_idx_g=t.minute; // Start-Index für den ein-Stunden-Speicher setzen (0-59) } |
t=getRTC(); sc=(60-t.second)*1000l; cycles_for_full_minute_g=sc/SLEEP_MS; |
// ggf. in die neue Stunde
eintreten if(set_timestamp_at_next_minute==true) { // wenn eben das Ende einer Stunde verarbeitet wurde set_timestamp_at_next_minute=false; // Kenner dafür zurücksetzen deepSleep(SLEEP_MS-512); // v1.4: vorsichtshalber noch eine Tiefschlaf-Phase schlafen blinkAliveLED(4); // schläft nochmal 512ms clearSensorHour(); // RAM-Speicher sauber machen t=getRTC(); // aktuelle Zeit holen for(i=0; i<sensor_count_g; i++) { sensorHourRAM_g[i].timestamp=t; // aktuelle Zeit im ein-Stunden-Speicher setzen } sc=(60-t.second)*1000l; // v1.4: Millisekunden bis zur nächsten Minute cycles_for_full_minute_g=sc/SLEEP_MS-1; // v1.4: Anzahl der Tiefschlaf-Phasen bis zur nächsten Minute neu setzen minutes_to_full_hour_g=60-t.minute; // Minuten bis zur nächsten Stunde einstellen sensorHourRAM_idx_g=t.minute; // Start-Index für den ein-Stunden-Speicher setzen (0-59) } |
programm gestartet | 2017-01-21 16:06:40.424643 |
vor DB-connect | 2017-01-21 16:06:40.450928 |
vor numpy create-array |
2017-01-21 16:06:41.289372 |
nach numpy, vor load |
2017-01-21 16:06:41.289441 |
7 tage sind geladen |
2017-01-21 16:06:41.552503 |
7 tage sind einsortiert |
2017-01-21 16:06:41.573955 |
vor paint |
2017-01-21 16:06:42.359998 |
nach paint | 2017-01-21 16:06:42.377069 |
alles ist geladen |
2017-01-21 16:06:47.725601 |
alles ist einsortiert |
2017-01-21 16:06:48.946841 |
Library |
derzeitige Version in den
openSUSE13.2-Repos |
wxWidgets | python-wxWidgets-2.8.12.1-10.4.1.x86_64 |
NumPy | python-numpy-1.9.0-1.6.x86_64 |
SQLite3 | sqlite3-3.8.6-3.1.x86_64 |