Laboratorium wirtualne 1/Moduł 2 - ćwiczenie 2/część 5

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

wersja beta



LABORATORIUM WIRTUALNE 1

Ćwiczenie 2 - Środowisko programistyczne LabWindows/CVI

Część 5

Temat ćwiczenia:

Komunikacja sieciowa

Cel ćwiczenia:

W ćwiczeniu zaprezentowany zostanie sposób wysyłania i odbierania danych z sieci. W oparciu o program zbudowany w poprzedniej części ćwiczenia zostanie zbudowana aplikacja typu P2P.


Plan prezentacji.

W ćwiczeniu zaprezentowany zostanie sposób wysyłania i odbierania danych z sieci. W oparciu o program zbudowany w poprzedniej części ćwiczenia zostanie zbudowana aplikacja typu P2P.

Etap 1 – Zbudowanie szkieletu programu oraz rozbudowa go elementy potrzebne do realizacji wirtualnego generatora przebiegów z możliwością wysyłania danych poprzez sieć komputerową

Jako szkielet programu wykorzystana będzie aplikacja z poprzedniej części ćwiczenia.

Aplikacja będzie wymagała pewnych drobnych zmian interfejsu. Na początek zostanie wyłączona legenda i nazwa wykresu.

Dostosowywanie interfejsu. Aplikacja do realizacji połączenia sieciowego będzie potrzebowała element tekstowy do wprowadzania przez użytkownika adresu połączenia. Ponadto potrzebne będzie pole gdzie wyświetlany będzie status połączenie i ewentualne błędy.

Panel aplikacji po dodaniu wszystkich niezbędnych elementów. Dioda LED ma sygnalizować status połączenia.

Etap 2 prezentuje sposób wykonywania cyklicznych czynności. W środowisku LabWindows/CVI element o nazwie Timer umożliwia wywoływanie co określony czas funkcji obsługi zdarzenia.

Element umożliwia wywoływanie funkcji obsługi zdarzenia EVENT_TIMER_TICK co określoną chwilę czasową. W aplikacji może być dowolna ilość Timerów. Jeśli w aplikacji zdefiniowane zostaną np. dwa timery z identycznym odstępem czasowym to kolejność wywoływania zdarzeń poszczególnych timerów jest nieprzewidywalna.

Opis właściwości elementu typu timer. Timer jest elementem nie widocznym na interfejsie użytkownika po uruchomieniu aplikacji. Włączanie lub wyłącznie generacji zdarzeń umożliwia pole Enabled, którego sterowaniem zajmiemy się w dalszej części ćwiczenia.

Wszystkie funkcje związane z generacją i wyświetlaniem przebiegów umieszczone zostały w zewnętrznej funkcji Generuj(). W kodzie obsługi zdarzenia EVENT_TIMER_TICK elementu Timera należy wstawić wywołanie funkcji Generuj(). Od tej pory przebiegi będą generowane i wyświetlane co jedną sekundę. Całość kodu funkcja obsługi zdarzenia Timera została przedstawiona na slajdzie.

Aby generowane przebiegi nie były idealne i choć trochę przypominały prawdziwe, zostaną zaszumiane. Na slajdzie przedstawione zostało miejsce gdzie będzie wstawiany kod generujący szum.

Aby wygenerować szum należy wstawić jedną z dostępnych funkcji generujących próbki losowe. Do dyspozycji są: szum Gaussowski i biały szum. Można też wygenerować próbki ręcznie korzystając ze standardowej funkcji ANSI C rand(). W przykładzie wykorzystana zostanie funkcja GaussianNoise. Argumenty wywołania funkcji zostały przedstawione na slajdzie.

Aby przebieg został zaszumiany należy dodać do siebie wartości każdej próbki o indeksie i przebiegu z próbka o indeksie i szumu. Zadanie to realizuje funkcja Add1D. sposób użycia i argumenty funkcji przedstawione zostały na slajdzie.

Na slajdzie przedstawiony został kod C funkcji Generuj() po dokonanej modyfikacji.

Przykład wygenerowanego zaszumianego przebiegu.

Etap 3 prezentuje sposób wysyłania danych do sieci.

W środowisku LabWindows/CVI wysyłanie i odbieranie danych zazwyczaj realizuje się przy wykorzystaniu protokołu dstp (DataSocket transfer protocol). W oparciu o protokół dstp będzie też zbudowana aplikacja P2P.w środowisku LabWindows/CVI do dyspozycji są też popularne protokoły:
  • http - hypertext transfer protocol
  • ftp - file transfer protocol
  • file - local files
  • opc - OPC (OLE for Process control) servers
  • logos – wewnętrzny standard do transmisji danych opracowany przez firmę National Instruments

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu

opis slajdu