Laboratorium wirtualne 1/Moduł 2 - ćwiczenie 2/część 4: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
| Linia 408: | Linia 408: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd53.png]] | |valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd53.png]] | ||
|valign="top"|'' | |valign="top"|Tryb '''''Hot''''' - element pracujący w tym trybie może być ustawiany zarówno przez użytkownika aplikacji jak i z poziomu programu. W porównaniu z elementem typu Normal może on generować wszystkie zdarzenia włącznie z '''EVENT_COMMIT'''. Standardowo element typu Hot wysyła zdarzenie '''EVENT_COMMIT''' w chwili, kiedy jego stan zostaje zmieniony. | ||
|} | |} | ||
| Linia 415: | Linia 415: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd54.png]] | |valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd54.png]] | ||
|valign="top"|'' | |valign="top"|Tryb '''''Validate''''' - element pracujący w tym trybie, zachowuje się tak jak w trybie Hot, z tą tylko różnicą że przed wysłaniem zdarzenia '''EVENT_COMMIT''' podejmowana jest dodatkowa czynność. Mianowicie wszystkie elementy znajdujące się na płycie czołowej i posiadające atrybut '''Range Checking''' ustawiony na Notify (sprawdzanie zakresu ustawionego na Powiadom) sprawdzane są pod kątem wprowadzonych danych. Jeżeli, któraś z nich zawiera wartość z poza przedziału wyznaczonego przez '''Minimum''' i '''Maximum''' to przed wysłaniem zdarzenia '''EVENT_COMMIT''' pochodzącego od elementu Validate użytkownik poproszony zostanie o podanie wartości dopuszczalnej ograniczonej przez '''Minimum''' i '''Maximum'''. Eliminuje to ewentualność przesłania do kodu programu błędnych wartości. | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
| Linia 421: | Linia 421: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd55.png]] | |valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd55.png]] | ||
|valign="top"|'' | |valign="top"|Aby było możliwe pobieranie położenia X i y kursora należy w kodzie obsługi zdarzania EVENT_VAL_CHANGED wykresu wstawić funkcję Get Graph Cursors odczytującą położenie X i Y kursora. | ||
: ''Library > User Interface > Controls\Graphs\Strip Charts > Graphs and Strip Charts > Graph Cursors'' | |||
We właściwościach funkcji Get Graph Cursors podajemy: | |||
*Panel Handle – wybieramy uchwyt do panelu: panelHandle | |||
*Control ID – jest to id wykresu | |||
*Cursor Number – ustawiamy 1 | |||
*Pola X i Y są wartościami odczytanymi więc należy wpisać w nie nazwy zmiennych i zadeklarować je jako zmienne lokalne typu double. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
| Linia 427: | Linia 436: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd56.png]] | |valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd56.png]] | ||
|valign="top"| | |valign="top"|Wypełniony formularz funkcji Get Graph Cursors. | ||
|} | |} | ||
| Linia 434: | Linia 443: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd57.png]] | |valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd57.png]] | ||
|valign="top"| | |valign="top"|Modyfikacja kodu c funkcji Generuj. | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
| Linia 440: | Linia 449: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd58.png]] | |valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd58.png]] | ||
|valign="top"| | |valign="top"|Aplikacja w działaniu. | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
| Linia 446: | Linia 455: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd59.png]] | |valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd59.png]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
| Linia 453: | Linia 462: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd60.png]] | |valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd60.png]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
| Linia 459: | Linia 468: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd61.png]] | |valign="top" width="500px"|[[Grafika:LW1_M2_CZ4_Slajd61.png]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
Aktualna wersja na dzień 12:08, 29 sie 2006
wersja beta
LABORATORIUM WIRTUALNE 1
Ćwiczenie 2 - Środowisko programistyczne LabWindows/CVI
Część 4
|
Plan prezentacji. |
|
Cel ćwiczenia |
|
Na podstawie umiejętności nabytych w poprzednich częściach ćwiczenia należy zbudować szkielet aplikacji. W czasie generacji kodu należy uwzględnić obsługę zdarzeń EVENT_COMMIT i EVENT_VAL_CHANGED. |
|
Na interfejsie należy dodać przycisk START i wygenerować dla niego funkcję obsługi zdarzenia. Przycisk posłuży do wygenerowania próbek sygnału. |
|
Na slajdzie przedstawione zostało miejsce gdzie należy wstawić funkcję generująca próbki sygnału sinusoidalnego. W przykładzie zostaną wygenerowane 256 próbki sygnału zawierające 2 okresy sinusoidy. |
|
Formularz konfiguracji argumentów wywołania funkcji Sine Wale. |
|
Deklaracja zmiennych potrzebnych do generacji syganłu. |
|
Wypełniony wartościami formularz funkcji SineWave. Pole status pozostawiamy puste. |
|
Kompletny kod funkcji obsługi zdarzenia. |
|
|
W celu wyświetlenia okna graficznego zawierającego wykres wygenerowanej fnkcji na panelu potrzebny będzie przycisk Wyświetl dla którego należy wygenerować funkcję obsługi zdarzenia. |
|
W kodzie obsługi zdarzenia EVENT_COMMIT przycisku Wyświetl zostanie wstawiona funkcja YGraphPopUp(…) wyświetlająca w oknie graficznym zawartość tablicy tab. |
|
Formularz funkcji Y Graph Popup. |
|
Opis argumentów wywołania funkcji Y Graph Popup. |
|
Na slajdzie przedstawiony został efekt działania aplikacji. Wyskakujące okno graficzne z wykresem funkcji umożliwia wydruk otrzymanego wykresu. |
|
Etap 2 rozbudowy aplikacji opisuje sposób generacji i wyboru różnych przebiegów. |
|
Wstawienie na interfejsie użytkownika elementu umożliwiającego wybór jednego z sygnałów jaki ma zostać wygenerowany. |
|
Właściwości elementu Vertical Pointer Slide |
|
Definiowanie par danych (etykiet i odpowiadającym im wartości0 wyświetlanych na suwaku. |
|
Wypełniony formularz określający powiązania pomiędzy wyświetlanymi na suwaku etykietami a odpowiadającymi im wartościami. |
|
Ustawienie wartości domyślnej jaka ma zostać wybrana na suwaku w momencie startu aplikacji. |
|
Na slajdzie zaprezentowano sposób definiowania wartości w instrukcji switch. |
|
Kreator instrukcji switch case. |
|
Wstawiony kod instrukcji switch case. |
|
Kompletny kod C funkcji obsługi zdarzenia przycisku Start. |
|
Efekt wykonaych zmian. |
|
Etap 4 rozbudowy aplikacji. Dodanie graficznego okna przedstawiającego wygenerowany przebieg bezposrednio na panelu. |
|
Wstawienie elementu typu Graph na panel. |
|
Fragment kodu przedstawiający wykonane zmiany. |
|
W kodzie funkcji Generuj należy wstawić funkcje która wyczyści zawartość ekranu okna wykresu. |
|
Wypełniony formularz funkcji Delete Graph Plot. Pole status pozostawiamy puste. |
|
Funkcja wyświetlająca tablice z próbkami w oknie graficznym. |
|
Wypełniony formularz funkcji Ploty. |
|
Zmodyfikowany kod C funkcji Generuj. |
|
Przykładowy przebieg. |
|
Etap 5 wprowadza możliwość regulacji amplitudy generowanych przebiegów. |
|
Niezbędne zmiany na interfejsie użytkownika. |
|
Pobranie nastaw pokrętła Amplituda. |
|
Niezbędne zmiany w kodzie funkcji Generuj aby pokrętło Amplituda miało możliwość zmiany amplitudy w generowanych przebiegach. |
|
Etap 6 prezentuje sposób odczytu wartości z wykresu za pomocą kursorów. Opisane także zostały dostępne tryby pracy elementów interfejsu użytkownika. |
|
Rozbudowa interfejsu użytownika. |
|
Wypełniony formularz funkcji Get Graph Cursors. |
|
Modyfikacja kodu c funkcji Generuj. |
|
Aplikacja w działaniu. |
|
|
|





























































