/ / Jak importować funkcję („noblock”) napisaną w C ++ do GRC - python, c ++, swig, gnuradio, gnuradio-companion

Jak zaimportować funkcję ("noblock") napisaną w C ++ do GRC - python, c ++, swig, gnuradio, gnuradio-companion

W moim module OOT napisałem funkcję typu „noblock” i chciałbym ją zaimportować w GRC.

Proces kompilacji i instalacja przebiegły dobrze i jestem w stanie korzystać z funkcji, które napisałem w pythonie import my_module as mm i mm.my_python_function().

Ale to nie działa dla tego w C ++ i mam komunikat o błędzie:

Param - wartość (wartość): wartość „my_module.my_cpp_function ()” nie może być rated: obiekt „module” nie ma atrybutu „my_cpp_function”

Czego mi brakuje? Czy to ma coś wspólnego z swigiem? Jak to skonfigurować? Dziękuję Ci.

Uwaga: Używam Ubuntu 14.04, a GRC został zainstalowany przy użyciu PyBombs prefix = /usr/local

Odpowiedzi:

0 dla odpowiedzi № 1

Brzmi to tak, jakbyś był blisko i ten zestaw jest ustawionypoprawnie. „Walczyłem z tym przez ostatnie 2 dni i opracowałem podejście, które, jak sądzę, naśladuje to, co robi się w gr-digital. Zanim jednak wszystko to przeliteruję, czy próbowałeś dodać blok„ Import ”do GRC i następnie wpisując „importuj mój moduł” jako „Importuj”?

W pewnym sensie zakładam, że udało się zaimportować i użyć modułu w Pythonie.

Czy stworzyłeś coś takiego jak swig / my_module.ja? Śledź gr-digital / swig / packet_header.i jako szablon. Następnie upewnij się, że swig / CMakeLists.txt zawiera my_module.i w instrukcji install () na końcu; ponownie spójrz na gr-digital / swig / CMakeLists.txt, aby uzyskać wskazówki.

Na koniec upewnij się, że Twój swig / _swig.i zawiera

#include "<module_name>/my_module.h"

i później

%include "<module_name>/my_module.h"

na końcu pliku

%include "my_module.i"

Ponownie zobacz gr-digital / swig / digital_swig.i, aby zobaczyć przykłady użycia pakietu packet_header.