Strona 1 z 1
Wybór technologii i rozwiązań na platwornie uniksowej
: 05 października 2012, 12:22
autor: scyhe
Witam.
O ile z użytkowaniem platform uniksowych jako tako sobie radzę, głównie jako platformy serwerowe i rutery linuksowe to w temacie programowania pod tą platformę jestem zupełnym nowicjuszem i pytam od czego zacząć.
Do stworzenia na potrzeby własne mam program, który będzie musiał odbierać dane z portu COM (dane położenia GPS) oraz transmitować je do zdalnej bazy np. MySQL poprzez połączenie tcp/ip za pomocą modemu 3G w określonych interwałach czasu. Jaki język będzie najodpowiedniejszy do tego typu zadania?
C++ ? Dodam, że odnośnie programowania to dotychczasowo stawiałem jakieś tam kroki w aplikacjach Windowsowych C++ oraz C#. Pod Windowsem myślę, że bym podołał zadaniu (VisualStudioExpress i C#) jednak pod Uniksem nie wiem od czego zacząć najlepiej.
: 05 października 2012, 15:12
autor: Czocher
C++ będzie w porządku, równie dobry będzie chociażby Python (którego polecam). Czytanie pod systemami UNIX z portów szeregowych i równoległych sprowadza się do otwarcia odpowiedniego urządzenia /dev/* do odczytu, podobnie zapis. Wysyłanie przez sieć tcp/ip to stworzenie gniazda (również proste). Interwał czasu to albo demonizacja procesu (fork() i ubicie rodzica do tego odliczanie czasu funkcją języka) albo skorzystanie z crona (programu zajmującego się uruchamianiem poleceń co określony czas). Informacji na te tematy jest na pęczki w internecie.
Python posiada specjalne biblioteki do obsługi takich operacji:
PySerial - obsługa portu COM
sockets - prosta implementacja gniazd
Edycja:
Ach przepraszam, zapomniałem że chodzi o bazę danych. Zarówno C++ jak i Python mają biblioteki do obsługi połączeń z bazą danych. Właściwie panuje tu dość spora różnorodność, począwszy od bibliotek ogólnego przeznaczenia umożliwiających komunikację z pomocą różnych złącz, aż po dedykowane dla danych rozwiązań bazodanowych. Również jak w reszcie przypadków polecam zainteresować się opiniami w internecie, z pewnością okażą się pomocne.
: 07 października 2012, 19:07
autor: scyhe
Dziękuję za wszystkie informacje. Co do potrzeby istnienia bazy danych to mogę to zrealizować w architekturze klient-serwer.
Klient miałby za zadanie odczyt portu com i wysłanie TCP/IP, serwer - odbiór ramki i zapis do bazy. Trochę skomplikowania może wnieść fakt, że klient będzie zainstalowany na platformie raspberry pi z dystrybucją Debiana. A chyba są tam jakieś ograniczenia odnośnie zegara czasu rzeczywistego - platforma go nie posiada.
: 07 października 2012, 20:18
autor: Czocher
scyhe pisze:Dziękuję za wszystkie informacje. Co do potrzeby istnienia bazy danych to mogę to zrealizować w architekturze klient-serwer.
Klient miałby za zadanie odczyt portu com i wysłanie TCP/IP, serwer - odbiór ramki i zapis do bazy. Trochę skomplikowania może wnieść fakt, że klient będzie zainstalowany na platformie raspberry pi z dystrybucją Debiana. A chyba są tam jakieś ograniczenia odnośnie zegara czasu rzeczywistego - platforma go nie posiada.
Raspberry PI jest komputerem takim samym jak każdy inny więc wielkich problemów z pewnością nie napotkasz. Ogólnie sam nie musisz pisać aplikacji w architekturze klient-serwer z prostego powodu - złącze (ang. connector) bazy danych automatycznie załatwi za ciebie wszelkie trudności z wysyłaniem danych do bazy i ich zapisem w tejże. Cron nie wymaga zegara czasu rzeczywistego z tego co mi wiadomo.
: 08 października 2012, 08:15
autor: diabolic3
Jeżeli aplikacja ma być uruchamiana na raspberry pi to może pokuś się o pisanie programu w Qt, tutaj masz sznurek:
http://qt-project.org/wiki/Qt-RaspberryPi