Podręcznik

3. LabWindows/CVI

Element rozszerzenia nazwy CVI (C for Virtual Instrumentation) stosunkowo wiernie oddaje istotę tego środowiska programistycznego – wskazuje na możliwość dostępu do kodu źródłowego w języku C. Wydaje się, że ta cecha wpłynęła na uzyskanie tak dużej popularności CVI w środowisku akademickim.

W istocie o sile LabWindows/CVI decydują funkcje biblioteczne osadzone w środowisku języka C. Biblioteki te zawierają elementy:

  • dostępu do interfejsów pomiarowych (GPIB, GPIB-488.2, RS-232, VXI, DAQ),
  • dostępu do przyrządów autonomicznych: Instrument Library,
  • grafiki komunikacji z użytkownikiem (Graphics Library, User Interface Library, Formatting and I/O Library),
  • analizy matematycznej (i cyfrowego przetwarzania sygnałów): Analysis Library, Advanced Analysis Library,
  • dostępu do sieci komputerowej (TCP/IP, DataSocket, ActiveX),
  • międzyprocesowej wymiany danych DDE (Dynamic Data Exchange).

O atrakcyjności programu stanowi przemyślana "grafika pomiarowa", pozwalająca tworzyć na ekranie i wkomponowywać w oprogramowanie panele sterujące sprzętem pomiarowym, wyglądające i funkcjonujące jak płyty czołowe klasycznych przyrządów laboratoryjnych.

Użytkownik w łatwy sposób może skomponować panel (określić jego rozmiary, ustawić na nim we właściwych miejscach elementy nastawcze i obserwacyjne, przydzielić im aktywność i nastawy, oraz przyporządkować obiekty i funkcje dostępne dla realizowanego oprogramowania), wprowadzić go do swej biblioteki i wkomponować w sposób interakcyjny w strukturę tworzonego programu. Program wywołujący panel może zarządzać aktywnością jego obiektów (blokować i otwierać dostęp użytkownika do elementów regulacyjnych), czytać stan nastaw, oraz sterować jego wskaźnikami. Program jest informowany o zmianie stanu panelu ("poruszenie" nastawy lub wprowadzenie nowej wartości danej) przez wywoływaną funkcję GetUserEvent. Funkcja ta może sprawdzać czy nastąpiła ingerencja operatora systemu czy nie i ją identyfikować, bądź też wstrzymywać działanie programu w oczekiwaniu na taką ingerencję.

Kolejną zaletą CVI jest wysoka jakość interakcyjnego narzędzia do tworzenia oprogramowania. Program ten jest bardzo funkcjonalny, przejrzysty i konsekwentny w użyciu. Użytkownik ma bezpośredni dostęp do pola edycyjnego programu i dodatkowego pola edycyjnego podprogramów. Z obydwu pól może kompilować i uruchamiać program bądź jego fragmenty. Edycję programu ułatwia oryginalna koncepcja tzw. paneli funkcyjnych pozwalających "pisać" program poprzez kolejne wywoływanie paneli definiujących wywoływane funkcje przepisywane natychmiast do pól edycyjnych. Panel funkcyjny jest podobny do panelu przyrządu- elementy nastawcze panelu funkcyjnego (sterowane myszą), określają wartości/nazwy parametrów aktualnie wywoływanej funkcji. Treść linii programu (w języku źródłowym), którą panel aktualnie zarządza, widoczna jest równocześnie z panelem na ekranie monitora. Pozwala to użytkownikowi kontrolować treść fragmentu programu źródłowego, który aktualny panel generuje, przed wprowadzeniem go do pól edycyjnych.

LabWindows/CVI pozwala definiować własne sterowniki przyrządów użytkownika, a dla realizowanych przez nie funkcji tworzyć stosowne panele funkcyjne. Podobne panele funkcyjne użytkownik może też zdefiniować dla swych własnych funkcji, niekoniecznie dotyczących sprzętu pomiarowego. Takie funkcje użytkownika mogą tworzyć jego prywatną bibliotekę i być używane na równi z oprogramowaniem bibliotecznym CVI.

Wreszcie, LabWindows/CVI daje możliwość realizacji dostępu do sieci komputerowej. Przez wykorzystanie specjalistycznego narzędzia o nazwie DataSocket, włączonego do architektury internetowej, daje możliwość publikacji wybranej informacji w sieci globalnej Internet, jak również tworzenia aplikacji rozproszonych w tej sieci. CVI zawiera też funkcje biblioteczne niższego poziomu do bezpośredniej obsługi protokołu TCP/IP, a więc transmisji danych w sieci komputerowej.

Istnieje cały szereg programów narzędziowych. Oprogramowanie LabWindows/CVI zostało tu wyróżnione głównie z uwagi na dużą popularność w środowisku akademickim i niewątpliwy sentyment do niego ze strony autorów.