![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 4.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pewien problem - otóż mam bazę danych (MySQL), w której co 5 minut zapisuję odczyty z czujników (mniejsza o to z jakich) o mniej więcej takiej strukturze: id | godzina | data | temperatura 1 | 19:00:00 | 2010-11-04 | 20 2 | 19:05:00 | 2010-11-04 | 21 3 | 19:10:00 | 2010-11-04 | 10 4 | 19:15:00 | 2010-11-04 | 18 Do tego rysuję wykresy, wykorzystując bibliotekę amCharts. Wszystko jest ok dopóki nie mam przerwy w zapisie danych do tabeli (np. wypinam na 2 godzinki czujnik). Załóżmy, że odczyt jest co 5 minut, a czujnik został wypięty o godzinie 19:03:00 i ponownie wpięty o 21:00:00. Wtedy tabela w bazie danych wygląda mniej więcej tak: id | godzina | data | temperatura 1 | 19:00:00 | 2010-11-04 | 20 2 | 21:00:00 | 2010-11-04 | 21 3 | 21:05:00 | 2010-11-04 | 10 4 | 21:10:00 | 2010-11-04 | 18 I tutaj pojawia się poważny problem - bibliotece amCharts podaje dane przez funkcję, która parsuje je do formatu XML. Cały szkopuł polega na tym, że jeśli brakuje danych w bazie (sytuacja powyżej- nie ma odczytów z prawie 2 godzin), to wykres po prostu nie uwzględni tego czasu - narysuje mi tylko to, co dostał, czyli 4 punkty, a ja potrzebuję żeby narysował też brak danych w postaci odczytu o wartości 0. Nie mam pomysłu co zrobić z tymi danymi żeby po parsowaniu do XML'a w miejscach, gdzie nie ma odczytów (w tym wypadku od 19:05:00 do 21:00:00 co 5 minut) wstawić godziny (19:05:00, 19:10:00 itd.), a do reszty pól wartości zerowe (bo tylko tak amCharts narysuje prawidłowo wykres). Ktoś ma jakiś pomysł? Dane z bazy pobieram i przez fetch_assoc() pakuję do tablicy - wynikiem jest tablica, która w każdym wierszu ma jeszcze jedną tablicę kolejno z kolumnami: id, godzina, data, temperatura. Próbowałem robić wolne miejsca i uzupełniać je 0 w różnych dziwnych pętlach, ale pojawiały się problemy z czasem. Sprawę utrudnia fakt, że te przerwy mogą być różne - kilka minut na początku, kilka na końcu, może jakieś w środku - a skrypt ma sobie z tym radzić. Proszę o pomoc, chociaż o naprowadzenie w jaki sposób to zrobić. Ten post edytował jurcio6 4.11.2010, 16:55:48 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 1 Dołączył: 28.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli skrypt kontroli czujnika masz w cronie (mam przeczucie
![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 4.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czujniki są zaprogramowane w Pythonie
![]() ![]() Ten post edytował jurcio6 4.11.2010, 16:59:23 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:07 |