В комбинации с универсальными программируемыми приёмопередатчиками, не привязанными к полосе частот и типу модуляции сигнала, платформа может быть использована для создания таких устройств, как базовые станции для сетей GSM, устройства для дистанционного чтения RFID-меток (электронные удостоверения и пропуски, смарт-карты), GPS-ресиверы, WiFi, приемники и передатчики FM-радио, TV-декодеры, пассивные радары, спектральные анализаторы и т.п. Кроме USRP, пакет может использовать и другие аппаратные компоненты для ввода и вывода сигналов, например, доступны драйверы для звуковых карт, TV-тюнеров, устройств BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP и S-Mini.
В состав также входит коллекция фильтров, канальных кодеков, модулей синхронизации, демодуляторов, эквалайзеров, голосовых кодеков, декодеров и других элементов, необходимых для создания радиосистем. Указанные элементы могут быть использованы как кирпичики для компоновки готовой системы, что в сочетании с возможностями по определению потоков данных между блоками позволяет проектировать радиосистемы даже без навыков программирования.
Основные изменения:
- Добавлен новый модуль gr-pdu, в который перенесены инструменты для манипуляции объектами с типом PDU (Protocol Data Unit), применяемым для данных, переносимых между блоками GNU Radio. Из модуля gr-blocks все блоки PDU перенесены в модули gr-network и gr-pdu, а вместо gr-blocks оставлена прослойка для обеспечения обратной совместимости. Векторные типы PDU теперь доступны в пространстве имён gr::types, а функции для манипуляции PDU - в пространстве имён gr::pdu.
- Добавлен новый модуль gr-iio, предоставляющий фреймворк ввода/вывода для организации обмена данными между GNU Radio и промышленными устройствами на базе подсистемы IIO (Industrial I/O), такими как PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3-EBZ, AD-FMCOMMS4-EBZ, ARRADIO и AD-FMCOMMS5-EBZ.
- Предложена экспериментальная поддержка класса Custom Buffer, упрощающего передачу данных между блоками GNU Radio и аппаратными ускорителями на базе GPU, FPGA и DSP. Применение custom_buffer позволяет обойтись без написания специальных блоков для задействования ускорения на стороне GPU и даёт возможность напрямую перемещать данные из кольцевого буфера GNU Radio в память GPU, запускать ядра CUDA и возвращать данные c результатом в буферы GNU Radio.
- Инфраструктура для ведения логов переведена на использование библиотеки spdlog, что позволило повысить удобство работы с логами, избавиться от обращения к iostream и cstdio, обеспечить поддержку выражений libfmt для форматирования строк и модернизировать программный интерфейс. Ранее применяемая библиотека Log4CPP удалена из зависимостей.
- Осуществлён переход на использование при разработке стандарта C++17. Библиотека boost::filesystem заменена на std::filesystem.
- Повышены требования к компиляторам (GCC 9.3, Clang 11, MSVC 1916) и зависимостям (Python 3.6.5,
numpy 1.17.4,
VOLK 2.4.1,
CMake 3.16.3,
Boost 1.69,
Mako 1.1.0,
PyBind11 2.4.3,
pygccxml 2.0.0). - Добавлены Python-биндинги для блоков RFNoC.
- В блоках для построения графического интерфейса gr-qtgui добавлена поддержка Qt 6.2. В графический интерфейс GRC (GNU Radio Companion) добавлена опция "--output" для иерархических блоков.
Источник: https://www.opennet.ru/opennews/art.shtml?num=56529
(opennet.ru, основная лента)