3784495660

3784495660



4.2 Działanie

Działanie programu odbywa się w dwóch osobnych wątkach, które porozumiewają się z sobą przy pomocy zdarzeń (eventów). Pierwszy wątek zajmuje się odbieraniem pakietów rozsyłanych przez serwer sterujący radioteleskopem, natomiast drugi wątek zajmuje się obsługą interfejsu graficznego oraz analizowaniem odebranych danych. Taki podział jest konieczny aby zapewnić płynne działanie programu oraz aby zapobiec niepoprawnemu działaniu programu w przypadku, gdy łączność z siecią zostałaby przerwana lub zakłócona.

4.2.1 Działanie pierwszego wątku - odbieranie danych

Program automatycznie rozpoczyna nasłuchiwanie na przychodzące dane w momencie uruchomienia. Komunikacja odbywa się poprzez protokół UDP na porcie 3499. Serwer sterujący radioteleskopem rozsyła na adres typu broadcast (158.75.6.255) pakiety zawierające interesujące nas dane, zatem program musi działać na komputerze znajdującym się w sieci 158.75.6.0/24. Z uwagi na fakt, iż użytkownik może mieć możliwość przerwania działania programu w dowolnej chwili, odbieranie danych zostało zastosowane przy pomocy nieblokujących gniazd (non-blocking sockets) typu select z opóźnieniem równym 0.1 sekundy. Oznacza to, że w momencie przerwania programu przez użytkownika nasłuchiwanie na pakiety zostanie przerwane nie później niż 0.1 sekundy od momentu przerwania programu. Jeżeli program w przeciągu 10 sekund nie otrzyma żadnych danych nasłuchiwanie zostanie przerwane, a użytkownik będzie je musiał ponownie rozpocząć wybierając odpowiednią opcję z menu.

W momencie odebrania pakietu program odczytuje jego pole danych zawierające ciąg znaków (typu string), w którym znajdują się poszczególne liczby oddzielone spacjami. Program oddziela od siebie wartości przy pomocy metody split() i zapisuje je razem w 37-elementowej tablicy. Tablica ta jest dostępna także dla wątku służącego do obsługi interfejsu graficznego, co umożliwia łatwą wymianę danych pomiędzy tymi wątkami. Po zapisaniu danych do tablicy wywoływane jest odpowiednie zdarzenie informujące drugi wątek o konieczności zaktualizowania danych wyświetlanych przez interfejs użytkownika.

19



Wyszukiwarka

Podobne podstrony:
Jak zauważa J. Czupiał8 proces umiędzynarodowienia działalności gospodarczej odbywa się w dwóch
W języku C/C++ tworzenie programu odbywa się w dwóch etapach: -    opracowanie kodu
Działalność rekreacyjna odbywa się w ramach akcji letniej: spływ kajakowy po Czarnej Hańczy, rejs że
Image 29 PODSUMOWANIE 1.    Działalność gospodarcza odbywa się na rynku. Rynek jest m
Laboratorium Podstaw Robotyki - 6 zapisanymi w programie. Uruchomienie wykonywania programu odbywa s
Maciej KOTYK, Sebastian JOZWIAK, Paweł MAĆKOWIAK menu programu odbywa się za pomocą wyboru z klawiat
Strona8 2 8 strukcyjnej. Poznanie zasad pracy programu odbywa się poprzez rozwiązywanie ćwiczeń pop
gramie Współpracy z Uczelniami realizowanym przez Comarch. W ramach programu odbywać się będą
201112073 Rachunkowość zarządcza — kalkulacja procesowa Lista 3Zad.4. Produkcja odbywa się w dwóch
Poznaj C++ w$ godziny0117 Godzina 8Zaawansowane sterowanie programem Działanie każdego większego pro
P4230913 (}en kodujący trans-działający element jest transkrybowany i odbywa się translacja a powsta
= Mechaniczną Wentylacja naturalna odbywa się w wyniku działania wiatru i sił grawitacyjnych wywołan

więcej podobnych podstron