APRS2RRD Second Edition - wersja 1.0 wydana |
Siema, Jako mały prezent na święta wrzucam najnowszą i pierwszą stabilną wersję mojego programu APRS2RRD, którego od przeszło 4 lat używam do archiwizowania i wyświetlania danych pogodowych z moich stacji. Wszystkie strony z domeny http://pogoda.cc , np. stacja na Koziej Górze w Bielsku (http://kozia.pogoda.cc) są właśnie obsługiwane przez aplikację APRS2RRD. Programu używam od lat ale dopiero teraz udało się wyeliminować jego wady, które ciągnęły się przez ten okres. Głównym i podstawowym problemem z nim był bardzo niedbale a momentami wręcz ohydnie napisany kod, zawierający liczne bugi powodujące wysypywanie się aplikacji. W moim przypadku zdarzało się, że program potrafił działać kilka tygodni bez problemu a czasami wysypywał się raz na kilka godzin z powodu na przeróżne błędy obracające się wokół AccessViolation. Obecnie kod został w większości przepisany od zera. Oferuje prawie taką samą funkcjonalność ale w oparciu o zupełnie inne technologie i biblioteki języka C++ co zapewnia stabilną i wolną od bugów pracę Aktualne możliwości programu przedstawiają się następująco: Komunikacja z serwerami APRS-IS w oparciu o bibliotekę Boost ASIO (Asynchronous Input/Output) i standardowy protokół tekstowy Parsowanie otrzymanych w protokole tekstowym APRS-IS ramek, celem wydobycia ich znaku źródłowego, docelowego, ścieki pakietowej i samych przesyłanych w nich danych Jeżeli otrzymana ramka jest ramką z danymi pogodowymi, parsowanie temperatury, ciśnienia, wilgotności oraz parametrów wiatru (kierunek, średnia, porywy). Jeżeli otrzymana ramka zawiera dane telemetryczne a użytkownik zdecydował się na włączenie opcji powodującej użycie kanału piątego telemetrii jako odczytu temperatury, użycie tej temperatury w dalszym procesie. Ograniczenie "slew rate" czyli szybkości narastania bądź opadania wartości sygnałów. Pozwala na wygładzenie "szpilek", które mogą pojawiać się na skutek niepoprawnej pracy przyrządów pomiarowych na stacji i powodować zmiany wartości odczytów szybsze, niż jest to fizycznie możliwe. Korekcja kierunku wiatru pozwalająca dodać bądź odjąć zadany kąt od wartości otrzymanej z ramek pogodowych. Korekcja odbywa się wektorowo, tj. z odpowiednią obsługą przejścia przez 0/360 Zapis przetworzonych parametrów do plików kołowej bazy danych RRD przy pomocy rrdtool. Kreślenie przy pomocy aplikacji rrdtool wykresów na podstawie danych zapisanych w plikach RRD. Generowanie statycznej strony WWW zawierającej numeryczne dane z ostatnio odebranej ramki, oraz wykresy pokazujące zmianę parametrów na przestrzeni czasu. Strona ta może być w pewnym ograniczonym stopniu dostosowywana przy pomocy pliku konfiguracyjnego. Opcjonalny zapis danych do bazy danych MySQL. Instrukcja instalacji i konfiguracji: https://github.com/SP8EBC/aprs2rrd-se/blob/master/doc/README-pl.pdf Kod źródłowy, dokumentacja, przykładowa konfiguracja itp: https://github.com/SP8EBC/aprs2rrd-se |