Wybór technologii i rozwi

Potrzebujesz pomocy z C, C++, perl, python, itp.
scyhe
Posty: 2
Rejestracja: 05 października 2012, 12:08

Wybór technologii i rozwiązań na platwornie uniksowej

Post 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.
Czocher
Beginner
Posty: 140
Rejestracja: 26 maja 2007, 23:19

Post 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.
scyhe
Posty: 2
Rejestracja: 05 października 2012, 12:08

Post 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.
Czocher
Beginner
Posty: 140
Rejestracja: 26 maja 2007, 23:19

Post 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.
Awatar użytkownika
diabolic3
Beginner
Posty: 121
Rejestracja: 12 grudnia 2007, 19:45
Lokalizacja: okolice Leżajska

Post 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
ODPOWIEDZ