Cómo escribir tu propio módulo C++ en gnuradio
gnuradio nos proporciona casi cien módulos de funciones de uso común, en el diseño de nuestro propio sistema, necesitamos diferentes módulos para lograr funciones específicas, por lo que debemos escribirlos nosotros mismos
C++ código fuente para generar nuevos módulos de llamadas al sistema. Si desea escribir el código fuente y compilar los archivos usted mismo, se requiere mucha experiencia, lo cual requiere mucho tiempo y es laborioso para un principiante como yo. Hay muchos otros métodos
en Internet, como usar plantillas, descargar scripts ya preparados, etc. Me referí al tutorial en el sitio web oficial. Pasé por todo el proceso de escribir un módulo simple e importarlo a gnuradio-companion usando gr-modtool (una ayuda para secuencias de comandos) y siguiendo los tutoriales en el sitio web oficial.
Primero, visita /mbant/gr-modtool y descarga gr-modtool. Después de descomprimir, obtienes una carpeta llamada gr-modtool-master y agregas esta ruta a la RUTA del sistema. Vaya al directorio donde desea crear el módulo.
Por ejemplo, crearemos el módulo howtoo_square_ff en:/home/jim/code [jim es mi nombre de usuario], iremos a la ruta de destino y escriba
gr_modtool.py cree cómo
Esto creará un módulo llamado gr-modtool.
El siguiente paso
es escribir el código fuente en C++. Necesitamos escribir archivos de encabezado .h, archivos fuente .cc y modificar include/CMakeLists.txt y lib
/CMakeLists.txt respectivamente. Estas tareas se pueden completar automáticamente con gr-modtool. Ingrese a la carpeta gr-howto que acaba de crear
y luego escriba
gr_modtool.py add -t general square_ff
La pantalla es la siguiente [traer de vuelta carro y dos n]
El nombre del módulo GNU Radio es: howto
El tipo de código es: general
El identificador de bloque/código es: square_ff p>
El identificador de bloque/código completo es: howto_square_ff
Ingrese el nombre del módulo GNU Radio y el tipo de código es: general.
Ingrese una lista de parámetros válida, incluidos los parámetros predeterminados:
¿Agregar código de control de calidad de Python? [S/n] n
¿Agregar código de control de calidad de C++? [S/n] n
Atravesando lib...
Agrega el archivo 'howtoo_square_ff.h'...
Agrega el archivo 'howtoo_square_ff.cc '..
Atravesar trago...
Editar trago/howtoo_swig.i...
Atravesar python...
Editar python/CMakeLists.txt...
Atravesar grc...
Agregar archivo "howto_square_ff.xml"...
Editar grc/CMakeLists .txt...
A continuación, podemos abrir los archivos .h y .cc correspondientes y modificarlos según las rutinas proporcionadas.
fuente:gr-howto-write-a-block/include/howtoo_square_ff.h
fuente:gr-howto-write-a-block/lib/howtoo_square_ff.cc p>
p>
El propósito de todo el módulo es elevar al cuadrado los datos de entrada. Para hacer esto, también necesitará escribir un validador y modificar el archivo CMakeLists.txt correspondiente. Agregue un nuevo archivo llamado qa_howto.py en el directorio de Python. Consulte el programa de muestra para conocer su contenido. Y realice las siguientes modificaciones al archivo CMakeLists.txt txt
include(GrTest)
set(GR_TEST_TARGET_DEPS gnuradio-howto)
set(GR_TEST_PYTHON_DIRS ${CMAKE_ BINARY_DIR} /swig)
GR_ADD_TEST(qa_howto ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_howto.py)
El último trabajo es generar el módulo e instalarlo en gnuradio-companion . Ingrese al directorio gr-howto, escriba cmake ./ en la terminal y luego escriba make para generar el módulo. Luego escriba make test, si todas las pruebas pasan, el módulo se generó exitosamente.
Si desea utilizar su propio módulo en gnuradio-companion, también debe generar archivos xml en el directorio grc. Escriba
gr-modtool.py makexml square_ff
para abrir el archivo xml y modificarlo consultando el ejemplo. fuente:gr-howto-write-a-block/grc/howtoo_square_ff.xml
Finalmente, regrese al directorio gr-howto y escriba sudo make install para instalar. Escriba gnuradio-companion para ver sus propios módulos generados. En este punto finaliza el proceso de instalación.
El script gr-modtool le permite escribir fácilmente sus propios módulos de procesamiento de información digital. Si desea conocer las funciones específicas de cada parte, es posible que necesite instalarla manualmente, pero para un principiante, esta herramienta me funciona bien.