Zdecydowałem się udostępnić kody źródłowe programu lweather, głównie do celu użytkowego w linuksie.
Można modyfikować i udostępniać kod innym.
Bezpośredni link do archiwum:
http://pogodawrososzy.republika.pl/lweather.tar.gzOpiszę dość skomplikowany proces instalacji w systemie
Raspbian (instalowany w urządzeniach Raspberry Pi).
Program napisany jest w języku "Object pascal", jest aplikacją okienkową (uruchamia się go w trybie "startx"), do instalacji w systemach Unix potrzebny jest kompilator tego języka. Pokażę jak zainstalować Free Pascal Compiler (w skrócie
fpc) oraz środowisko Lazarus w systemie Raspbian.
Lepiej jest nie używać powłoki graficznej (startx) w czasie instalacji, tylko działać w trybie tekstowym, ponieważ może zabraknąć pamięci w czasie instalacji (szczególnie w starszych modelach Raspberry Pi 1). Podczas instalacji w wielu jej miejscach potrzebny będzie dostęp do internetu (aby pobrać oprogramowanie). Potrzebne będzie także dość dużo, ok. 500 MB wolnego miejsca na dysku (karcie microSD/SD).
Instalowanie z prawami administratora wymaga użycia polecenia
sudo. Polecenie:
sudo bashzdejmuje z nas uciążliwość każdorazowego (gdy to konieczne) używania
sudo w poleceniach.
Żeby pobrać i zainstalować
fpc, w wierszu poleceń należy wpisać:
apt-get install fpc Następnie tak samo robimy z IDE lazarus:
apt-get install lazarusJeżeli nie wystąpiły błędy podczas instalacji to mamy już dość stare, stabilne wersje programów, które wystarczą aby skompilować program
lweather. Teraz możemy przejść do okienek wpisując
startx. W menu programowanie pojawi się pozycja
Lazarus. Gdyby po uruchomieniu Lazarus pytał o ścieżkę dostępu do źródeł fpc, należy odszukać ją w systemie i podać (u mnie
/usr/share/fpcsrc/).
Local Weather wykorzystuje "internetowe" komponenty Indy 10, których nie ma standardowo w Lazarusie, więc należy je zainstalować.
Ze strony
http://www.indyproject.org/Sockets/fpc/index.EN.aspx z sekcji Downloads pobieramy plik archiwum dla użytkowników Unix/Linux. Obecnie jest to dość stara wersja
indy-10.2.0.3.tar.gz, ale oczywiście wystarczy. Wypakowujemy zawartość archiwum do podkatalogu w katalogu "components" Lazarusa.
cd /usr/lib/lazarus/0.9.30.4/components/
tar -xvzf /home/user/Downloads/indy-10.2.0.3.tar.gz Nazwa "user" w ścieżkach "/home/user/..." musi być zastąpiona odpowiednią nazwą użytkownika (standardowa nazwa użytkownika: "pi"). Folder "Downloads" dla polskiego języka będzie miał nazwę "Pobrane". Należy pamiętać także, że Lazarus musi mieć prawa zapisywać w utworzonym katalogu i jego podkatalogach. Można to uzyskać korzystając z polecenia:
chmod -R 777 indy-10.2.0.3W lazarusie otwieramy pakiet (Package)
indylaz.lpk, który znajduje się w podkatalogu "lazarus" wypakowanego archiwum.
Następnie zmieniamy opcje kompilatora pakietu:
Inne pliki modułów (-Fu)
../fpcInne źródła (pliki .pp/.pas, używane tylko przez IDE, nie przez kompilator)
lib/arm-linuxZapisujemy i wciskamy "Kompiluj pakiet" (Build).
Gdy pakiet skompiluje się poprawnie możemy przejść do jego instalacji wciskając "Zainstaluj" (Use...->Install).
Jeżeli nie wystąpią błędy (okienko "Komunikaty"), Lazarus uruchomi się ponownie z rozszerzoną paletą komponentów (Indy Cilents Protocols itd.).
Jeśli przy instalacji
fpc,
lazarusa lub
indy wystąpiły błędy uniemożliwiające dalszą instalację, można zwiększyć tzw. "swapsize" i spróbować ponownie zainstalować.
nano /etc/dphys-swapfileustawiając
CONF_SWAPSIZE=500lub nawet
CONF_SWAPSIZE=1000Kiedy uda się zainstalować powyższe składniki, można wtedy zabrać się za instalowanie programu Local Weather.
Wypakowujemy pliki z archiwum podanego na początku postu, znanym już programem
tar:
cd /home/user/
tar -xvzf /home/user/Downloads/lweather.tar.gzW Lazarusie otwieramy projekt
lweather.lpr (z wypakowanego archiwum) by go zbudować (
Ctrl+F9). Po udanej kompilacji Local Weather jest już prawie gotowy do pracy.
Trzeba jeszcze skompilować napisany w języku C program
fowsr do transmisji danych ze stacji typu Fine Offset.
Do transmisji niezbędny jest zainstalowany w linuksie pakiet
libusb:
apt-get install libusb-devJeżeli program
lweather znajduje się w innym folderze niż domyślnym
/home/pi/lweater/ to należy jeszcze przed kompilacją zmienić kod programu
fowsr, np. używając programu
nano.
nano /home/user/lweater/fowsr.cPliki znajdujące się w domowym katalogu użytkownika (i podkatalogach), można edytować także z poziomu okienek, używając domyślnego edytora tekstowego (Text Editor).
W pliku
fowsr.c odszukaj linię:
#define WORKPATH "//home//pi//lweather//"i zmień ścieżkę na odpowiednią, na katalog w którym znajduje się
lweather i
fowsr (ważne też żeby były podwójne "//" zamiast pojedynczych).
Działając w tym katalogu,
cd /home/user/lweather/ utwórz
fowsr następującym poleceniem:
make all MakefileJeśli kompilator
gcc wyrzuci błędy dotyczące modułów
usb można spróbować zainstalować inny pakiet
libusb np.:
apt-get install libusb-1.0-0-devi ponownie użyć polecenia
make.
Gdy kompilacja
fowsr zakończy się powodzeniem, podłącz stację FO do portu USB w Raspberry Pi i uruchom program
lweather by go skonfigurować.
Żeby
lweather mógł uruchamiać
fowsr w opcjach w zakładce "Station" trzeba wpisać hasło użytkownika dla polecenia sudo (domyślnie jest tam standardowe hasło po instalacji Raspbiana, więc jeśli nie było zmieniane w systemie to będzie prawdopodobnie to samo). W celu konfiguracji programu czytaj poprzednie posty w tym wątku.
Pomocnicze linki:
http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi