26
ACTIVEX W LABVIEW CZYLI O TYM JAK I DO CZEGO WYKORZYSTAĆ FORMATY ACTIVEX W ŚRODOWISKU LABVIEW Jacek Bzdak & Krzysztof Gałązka

ActiveX w LabView

  • Upload
    jbzdak

  • View
    777

  • Download
    3

Embed Size (px)

DESCRIPTION

Jak używać ActiveX ze środowiska LabView.Zrobione na zaliczenie zajęć PPUW na Wydziale FizykiPW./

Citation preview

Page 1: ActiveX w LabView

ACTIVEX W LABVIEW

CZYLI O TYM JAK I DO CZEGO WYKORZYSTAĆ FORMATY ACTIVEX W

ŚRODOWISKU LABVIEW

Jacek Bzdak & Krzysztof Gałązka

Page 2: ActiveX w LabView

FORMATY ACTIVEX

ActiveX – rodzaj komponentów i kontrolek możliwy do użycia w programach pisanych za pomocą takich narzędzi jak Delphi, Visual Basic, C++, Java, Power Builder i wielu innych. Technologia ActiveX pozwala na przekazywanie danych pomiędzy różnymi aplikacjami działającymi pod kontrolą systemów operacyjnych Windows. Technologia ta jest ułatwieniem dla programisty - pozwala oszczędzić czas, który trzeba by poświęcić na pisanie własnych sposobów komunikacji pomiędzy programami.

Za wikipedią.

Page 3: ActiveX w LabView

ACITVEX WŁASNYMI SŁOWAMI

ActiveX jest technologią pozwalającą na komunikację pomiędzy nie znającymi się klasami (często napisanymi w różnych językach programowania) pod kontrolą sytemu operacyjnego.

AcitveX umożliwia w szczególności osadzanie elementów jednej aplikacji w interfejsie drugiej.

Page 4: ActiveX w LabView

STRUKTURA ACTIVEX

ActiveX umożliwia komunkikację dwóch prorgramów, tego z którego pochodzi kod wykonywalny, zwanego serwerem, oraz klienta który z owego kodu korzysta.

W naszych przykładach LabView będzie klientem ActiveX.

Page 5: ActiveX w LabView

WADY ACTIVEX

ActiveX jest dostępny jedynie w środowisku Windows.

ActiveX umożliwia osadzanie fragmentów jednej aplikacji w drugiej, zatem podczas wykonania programu obie muszą być dostępne w systemie. Zatem do odczytu plików Excela, trzeba mieć Microsoft Office Excel.

Z tego samego powodu AcitveX może przestaćdziałać przy zmianie wersji aplikacji serwera.

Page 6: ActiveX w LabView

KONTROLKI ACTIVEX W LABVIEW

Biblioteka obsługi ActiveX w Labview dzieli się na dwie części:dostarczone przez producentów LabView kontrolki .vi, i pobierane ze środowiska sytemowego klasy i metody. Kontrolki te pozyskuje się po kliknięciu na search w menu dodawania kontrolek i wpisaniu tam activex, lub też klikając lewym przyciskiem w oknie diagramu blokowego i nastepnie wybierając All Functions -> Communication -> ActiveX

Page 7: ActiveX w LabView

REPREZENTACJA KLAS I METOD

Do reprezentacji klas i metod służą kontrolki typu properties: Invoke Node i Properties Node. Przykładowo do wywołania metody otwierającej skoroszyt należy wywołać metodę OPEN mającą następującą reprezentację graficzną:

Page 8: ActiveX w LabView

TYP REFNUM

Każda kontrolka ActiveX pobiera typ Refnum (refernece number). Jest to typ cluster złożony z zmiennej znakowej identyfikującej klasę w ActveX, oraz z numeru preprezentującego fizyczny adres danej klasy w pamięci komputera. Numer ten może przyjmować wartość zero co oznacza dana instancja nie jest zainicjalizowana.

Page 9: ActiveX w LabView

POZYSKANIE KONTROLKI PROPERTIES

Najpierw należy upuścić kontrolkę properties na tylny panel aplikacji. Następnie należy z menu kontekstowego wybrać podmenu Select Class , a następnie browse. W menu browse należy wybrać odpowienią klasę. Po uzyskaniu kontrolki properties należy do niej doprowadzić stałą refnum. W tym celu należy z menu kontekstowego przewodu wejściowego refnum wybrać opcję create constant.

Page 10: ActiveX w LabView

INICJALIZACJA OBIEKTÓW REFNUM

Tak pozyskana instancja nie jest zainicjalizowana, do inicjalizowania instancji refnum służy kontrolka Open.

Pobiera ona niezainicjalizowana zmienną refnum i inicjalizuje ją.

Page 11: ActiveX w LabView

INICJALIZACJA OBIEKTÓW REFNUM II

Kontrolka ta pobiera niezainicjalizowanego RefnumaNazwę komputera na której należy go otworzyćZmienną logiczną sygnalizującą czy należy stworzyć nową instancję, czy spróbować podłączyć się do istniejącej.

Uwagi:Kontrolka ta służy do inicjalizowania klas zasadniczoglobalnych, nie potrzebujących żadnych informacjido zainicjalizowania się.

Np. Aplikacje Excel można tak otworzyć, natomiast skoroszytu nie, ponieważ do jego otwarcia potrzeba też jego ścieżki dostępu.

Page 12: ActiveX w LabView

ACTIVEX CONTAINER

Prostą metodą wstawienia obiektu ActiveX jest stworzenie uprzednio pojemnika ActiveX Conatiner.Pojemnik ten tworzy się na panelu frontowym klikając lewym przyciskiem i wybierając All Controls->Containers->ActiveX Container, następnie wstawia się doń obiekt ActiveX z menu kontekstowego (Insert ActiveX Object...). W tym momencie mamy juz gotowy obiekt wybranejklasy i mozemy posługiwać się do woli jego referencją. Przykładem zastosowania jest program LabViewExplorer wykorzystujący opisaną wyżej metodę.

Page 13: ActiveX w LabView

ZAMYKANIE INSTANCJI REFNUM

Dobry obyczaj i chęć utrzymania porządku każe zamknąć otwarte instancje gdy stają sie już niepotrzebne. Do tego celu służy kontrolka Close:

Page 14: ActiveX w LabView

INVOKE NODE & PROPERTY NODE

Do obsługi poprawnie utworzonego i zainicjalizowanego obiektu ActiveX w zasadzie wystarczją dwie kontrolki:

Invoke Node, służąca do wywoływania metod danego obiektuProperty Node, służąca do zmiany jego własności i parametrów

Do każdej z nich trzeba wpierw doprowadzić refnumobiektu, z którego metod chcemy korzystać, lub właściwości zmieniać.

Przykład - wywołanie metody Open- następny slajd

Page 15: ActiveX w LabView

OPIS WYWOŁANIA METODY OPEN

Do górnej części należy doprowadzić przewód refnum i Error. Dla wygody górna część pozwala wyprowadzić te same przewody. Do własności Filename należy doprowadzić przewód typu string ze ścieżką pliku.Własność Open pozwala wyrpowadzić otwarty arkusz (jako typ refnum).Pozostałe własności są niewymagane.

Page 16: ActiveX w LabView

POZYSKIWANIE DANCYH Z METOD ACTIVEX

Kontrolki ActiveX zwrają typ variant, czyli nieokreślony typ ActiveX używany do przesyłania nieokreślonych dla kienta danych pomiędzy aplikacjami serwerowymi. Do pozyskania danych w aplikacji klienckiej służy kontrolka variant to data:

Page 17: ActiveX w LabView

UŻYCIE

Kontrolka ta pobiera:Dane typu variant (które będą konwertowane)Zmienną dowolnego typu, której typ zostanie użyty skonwertowania danych, a wartość samej zmienej jest ignorowana.Cluster błędów.

Zwraca natomiast:Skonwertowane dane.Cluster błędów.

Page 18: ActiveX w LabView

OPIS APLIKACJI LABVIEWEXPLORER

Na początek przykład prostej aplikacji do przeglądania Internetu za pomocą LabView.Aplikacja LabVievExplorer wykorzystuje klasę Microsoft Web Browser. Bezpośredni dostęp do jej metod (np Navigate2) jest bardzo pomocny w szybkim osiągnięciu tego, o co nam chodziło.

Sam program składa się z dwóch zasadniczych części:pętli głównej z obiektami przycisków,

text-boxa i pojemnika ActiveX;struktury zdarzeń (event structure),

podejmującej odpowiednie czynnosci w odpowiedzi na akcje użytkownika;

Page 19: ActiveX w LabView

OBSŁUGA ZDARZEŃ - LABVIEWEXPLORER

Każde zdarzenie w event structure odbywa się według schematu:

ActiveX refnum----> Wywołanie metody ------> Zamkniecie^ | referencji| vewentualne dane wejsciowe ewentualne dane wyjsciowe

Dzięki temu, że z wywołania metody wychodzinumer referencyjny obiektu ActiveX, możliwejest łączenie wywołań metod/zmian własnościw łańcuchy. Widać to np przy obsłudze zdarzenia"Home" value change .

Page 20: ActiveX w LabView

OPIS APLIKACJI EXCEL

Przedstawimy teraz krok po kroku metody utworzenia sposób działania programu do obsługi Excela. Jej główny program pobiera ścieżkę do pliku .xls, a następnie wyświetla pierwszy arkusz pliku w oknie LabView.

Page 21: ActiveX w LabView

OTWARCIE SKOROSZYTU, PANEL TYLNY.

Page 22: ActiveX w LabView

OPIS DZIAŁANIA

Otwieramy program Excel za pomocą kontrolki OPEN, która otrzymuje stałą typu refnum zawierającą nazwę klasy reprezentującej aplikacje.Stałą otrzymujemy wybierając z głównego menu kontekstowego podmenu ActiveX a z tamtąd z pomenu Class klasę.Najlepszą metodą na uzyskanie znazy klasy w systemie ActiveX jest zgadniecie jej i wyszukaniew podmenu. Następnie z aplikacji Excel wybieramywłasność Workshets.Kontrolkę własności otrzymamy po wybraniuz menu kontekstowego stałej menu properties.

Page 23: ActiveX w LabView

OPIS DZIAŁANIA II

Wywołujemy metodę OPEN z Worksheetts. Kontrolkę open uzyskujemy podobnie jak własność Worksheets, należy tylko wejść do podmenu Methods.

Page 24: ActiveX w LabView

PRZYKŁAD KONWERSII DANYCH

Własność cellValue zwraca wartość typu variant. Oto przykład jak skonertować ją do typu string.

Centralna ikona dokonuje konwersji. Pusta stała typu string decyduje o zwracanym typie danych.

Page 25: ActiveX w LabView

UWAGI:

ActiveX jest prostszy niż się wydaje. Warto z nim eksperymentować. Warto wyprowadzać przewód błędów z kontrolek. ActiveX może nie działać jeśli wersjie aplikacji serwerowej przy której budowano .vi i przy której się ją wykonuje nie są te same. Progamy Excel Reader i LabViewExplorer można ściągnąć z: http://85000i.googlepages.com/LV.7zTą prezentację z:

http://docs.google.com/Present?docid=dcwr2qmr_296gzj6wj&fs=true

Page 26: ActiveX w LabView

ŹRÓDŁA:

www.wikipedia.org

dokumentacja LabView