Operator DLL CALL FUNCTION umożliwia wywoływanie zewnętrznych funkcji z bibliotek DLL w trakcie przetwarzania danych w systemie GRAVITY.
Dla każdego rekordu magistrali wejściowej, operator wykonuje wskazaną funkcję z biblioteki DLL, przekazując jej parametry pobrane bezpośrednio z bitów magistrali danych. Pozwala to na dynamiczne przetwarzanie danych z wykorzystaniem logiki zaimplementowanej poza systemem — w natywnym kodzie (np. C/C++ lub .NET).
Dzięki tej funkcjonalności możliwa jest integracja z:
- istniejącymi bibliotekami firm trzecich,
- własnymi algorytmami użytkownika,
- funkcjami realizującymi złożone operacje, których trudno wykonać za pomocą wbudowanych operatorów GRAVITY.
Operator umożliwia również odbieranie wyniku funkcji i zapisanie go do wskazanych bitów magistrali, jak również korzystanie z parametrów referencyjnych, co pozwala na dalsze przetwarzanie danych zwracanych przez funkcję w kolejnych etapach przepływu danych.
Przykład projektu GRAVITY z użyciem operatora DLL CALL FUNCTION.
KONFIGURACJA OPERATORA
W pierwszym kroku musisz określić czy funkcja jest statyczna czy wymaga inicjacji obiektu.
- dla funkcji statycznej musisz wskazać ścieżkę do pliku dll w polu DLL path
- dla funkcji nie będącej funkcją statyczną wskaż instancję klasy z jakiej będziesz korzystał w polu Instance name
W kolejnym kroku wybierz funkcję jaka zostanie wywołana przez operator w polu Function name (gdy rozpoczniesz pisanie system podpowie Ci nazwy funkcji).
W Polu Method signature będziesz miał do wyboru odpowiednią sygnaturę funkcji jeśli funkcja jest przeciążona. Sygnatura podpowiada Ci konstrukcję funkcji, typ zwracany oraz typy argumentów wywołania.
Możesz użyć przycisku Auto set argument type wówczas system samodzielnie wprowadzi argumenty i ich typy (zakładka Arguments) na postawie sygnatury funkcji, a także powiąże j e z bitami magistrali o odpowiednim typie.
Możesz zmienić bity wchodzące jako argumenty funkcji klikając w odpowiedni wiersz na liście.
Jeśli chcesz, aby wartość zwracana prze funkcję trafiała do odpowiedniego bitu magistrali uzupełnij pole Result column. Pole Custom result type określa typ zwracanych danych przez funkcję. Aby właściwie użyć funkcji zewnętrznej musisz znać typ danych zwracanych przez funkcję zewnętrzną. Edytując pole automatycznie podpowie się słownik z wariantami dostępnych typów danych.
Jeśli wszystko zostało skonfigurowane poprawnie po naciśnięciu przycisku Text zobaczysz wynik działania funkcji na zakładce Test result.