Сайт TechStop-Ekb.Ru, логотип текстовый.Сайт Тех Стоп Екб Ру, логотип инфографика.

Проект SDR радио. CMake RtAudio DLL. Ошибки Win7.

Обзор SDR PP, Plus Plus. Радио приемник для Windows.

# ... github.com, AlexandreRouma, SDR Plus Plus.

... Создавая обзор RTL-SDR софта на GitHub - я подозревал, что некоторые моменты могут быть упущены, а именно и совершенно независимо - уже давно запланировал ознакомиться с программой SDR++ ... Этот обзор - заинтересовал, и заслуживает отдельного места на сайте ... Время пришло ))) ...

Кросс-платформенное программное обеспечение SDR, в черных тонах и с открытым исходным кодом, по обещаниям - упрощает использование ... Мульти VFO, виртуальный выход частоты звука для прослушивания дополнительных каналов частот параллельно с основным сигналом ... Широкая аппаратная поддержка (как через SoapySDR, так и через выделенные модули) ... Soapy SDR (мыльная / склизкая) - библиотека поддержки SDR, не зависящая от производителя и платформы ... SIMD ускоренный DSP ... Цифровой сигнальный процессор ускоряется по специальной компьютерной технологии обработки : один поток команд и множественная параллельная обработка данных разными модулями ... Кроссплатформенность : Windows, Linux, OSX и BSD ... Полное обновление водопада, когда это возможно : делает просмотр сигналов проще и приятнее ... Модульный дизайн : легко писать собственные плагины ...

Встроенные декодеры протоколов связи ... falcon9 decoder - после утечек с любительского радио GMSK S-диапазона ракет SpaceX, видео и телеметрия - стали шифроваться ... m17 decoder - декодер стремится заменить проприетарные протоколы радиолюбителей, как конкурентно привлекательная альтернатива DMR, Fusion, D-Star и другим, используя 4FSK со множеством реализаций видов / типов связи, в формате радиолюбительского приемо / передатчика ... M17 это открытая, бесплатная цифровая радиосистема, позволяющая эксперименты с цифровой голосовой связью ; используется вокодер Codec2 - превосходящий существующие проприетарные и запатентованные (платные) вокодеры, доступные в настоящее время ... meteor demodulator - для приема спутников Метеор М, работающих с декодером LRPT ... radio - стандартные режимы выбора полосы : AM, CW, LSB, USB, DSB, NFM, WFM и RAW ... weather sat decoder (в разработке) ... Прослеживается неявный перекос в сторону приема сигналов спутниковых технологий ))) ... Дополнительные фишки : discord интеграция разногласий ... диспетчер частот ... запись / регистратор ... rig ctl сервер ...

Подробно изложены, не только процедуры установки, но также даны пояснения для самостоятельной сборки и приведены уже известные проблемы, исправленные в более поздних версиях ... Например, SDR++ вылетает при остановке RTL-SDR : это ошибка новой библиотеки libusb1.4 ... Чтобы решить эту проблему - стоит просто перейти / откатиться на версию libusb1.3 ... Есть лишь один маленький нюанс : программа SDR PP работает только в разрядности x64 ...

Но все это меркнет в свете того, что программа не смогла запуститься на Win7 x64 ... Ошибка связана с glfw3.dll и одновременно запускается процесс dllhost.exe ... После этого выбрасывается сообщение и exe-шные файлы зависают в списке задач task менеджера ... Я скачал и попробовал все версии, от v1.0.0 до v1.0.4 - ни одна не работает ... Тогда я скачал архив glfw3.dll x64 со всеми версиями, lib-mingw-w64, lib-static-ucrt и lib-vc2012 до vc2019 - подмена не помогла ; одновременно выяснилось, что применяется lib-vc2019 (совпадает по размеру файла) ...

Примечание : в конце статьи Переделка RTL-SDR, часть 10. Схема активной антенны Mini Whip. - есть краткое упоминание, как DLL Host может оказывать влияние на работу всей программы : он может пытаться автоматически определить, какой тип DLL используется, и подобрать соответствующий механизм взаимодействия с API функциями, которые могут быть - далеко не идентичны, в разработках межплатформенных приложений для ПК ... В какой-то момент / или при отличной (от среды разработчика) конфигурации ПК - это может повлечь проявление неустановленных сбоев ... Вполне естественно и ожидаемо, что программа на компьютере разработчика (упиханного специализированными ПО и DLL) - не может указать на отсутствие программного компонента, весьма вероятно - не установленного на ПК пользователя ... Это поведение - относится к чистовому тестированию сборок софта на голом пользовательском ПК, где утрата зависимостей - быстро и активно выявляется, уже при первых запусках программ ...

# ... rtl-sdr.com, rtl sdr quick start guide.

... На странице настроек установки SDRSharp для Windows 10 / 8 / 7 32 / 64 Bit (несовместимо с XP / Vista) - уже упоминается распространяемый пакет Microsoft .NET 5.0 ... Теперь, уже - Shared Framework ... Для SDRSharp нужен sdk-5.0.401-windows-x86-installer ... Однако, предполагаю, что для самой версии Windows - требуется соответствующий пакет : как минимум, от aspnetcore-runtime-5.0.11-win-x64.exe до dotnet-sdk-5.0.402-win-x64.exe (куда входят ... Пакет SDK для .NET 5.0.402 ... Среда выполнения .NET 5.0.11 ... Среда выполнения ASP.NET Core 5.0.11 ... Среда выполнения .NET для Windows Desktop 5.0.11) ... Также следует проверить наличия установки среды выполнения Visual C++ (VC++ redistributable 2005 - 2019) ...

Теперь у меня есть Microsoft .NET 5.0, который на фиг был не нужен, а SDR PP - так и не работает ... Также отмечалось, что есть баг в модуле rtaudio, который исправляется - пересборкой ...

Так и так - уже практически вплотную приблизились к самостоятельной сборке SDR++ на собственном ПК ... Сильно не хотелось бы чрезмерно углубляться в программирование исходного кода, без определенного навыка и подготовки ... Для самостоятельной сборки требуется доустановить ...
VS Code IDE, как наиболее предпочтительное, и / или (непонятно, что точнее) путь сборки CMake - используя командную строку ... Так, VS Code IDE, или CMake, или нужно - и то, и другое ??? ... Правильный ответ : или - третье : MinGW ...
Установить зависимости ...

# ... cmake.org, CMake for Windows, macOS, Linux. Download latest release.

... такое есть и для Windows, оказывается ...

# ... vcpkg.io, Начало работы на платформе Windows.

... чтобы с ее помощью - загрузить fftw3, glfw3, glew - причем из пакетов для x64 bit версии ... Пре / требования : Windows 7 или новее ... Git ... Visual Studio 2015 Update 3 или новее ...

Установка vcpkg - это двухэтапный процесс: сначала клонируйте репо, затем запускайте сценарий начальной загрузки для создания двоичного файла vcpkg ... Репозиторий может быть клонирован где угодно и будет включать двоичный файл vcpkg после начальной загрузки, а также любые библиотеки, которые устанавливаются из командной строки ... Рекомендуется клонировать vcpkg в качестве подмодуля для проектов CMake, но установить его глобально для проектов MSBuild ... При глобальной установке мы рекомендуем использовать короткий путь установки, например: C: \ src \ vcpkg или C: \ dev \ vcpkg - поскольку в противном случае вы можете столкнуться с проблемами пути для некоторых систем сборки портов ...

Шаг 1. Клонируйте репозиторий vcpkg ...
git clone https://github.com/Microsoft/vcpkg.git ...
Прежде чем делать это, убедитесь, что вы находитесь в каталоге, в который хотите установить инструмент ...

Шаг 2. Запустите сценарий начальной загрузки, чтобы собрать vcpkg ...
. \ vcpkg \ bootstrap-vcpkg.bat
Установите библиотеки для вашего проекта ...
vcpkg install [пакеты для установки] ...
... Теперь мы находимся в той части справки к программе SDR PP, которую я тщательно хотел избежать и вообще не хотел касаться ... Ан - нет, не получилось ...

Использование vcpkg с MSBuild / Visual Studio (может потребоваться повышение прав) ...
vcpkg интегрировать установку ...
После этого можно создать новый проект или открыть существующий в среде IDE ... Все установленные библиотеки уже должны быть обнаружены IntelliSense и использованы в коде без дополнительной настройки ...

Использование vcpkg с CMake ...
Чтобы использовать vcpkg с CMake вне среды IDE, можно использовать файл цепочки инструментов : ...
cmake -B [каталог сборки] -S. -DCMAKE_TOOLCHAIN_FILE = [путь к vcpkg] / scripts / buildsystems / vcpkg.cmake
Затем создать с помощью команды ...
cmake --build [каталог сборки] ...
С CMake - нужно будет использовать find_package () для ссылки на библиотеки в ваших файлах Cmakelists.txt ... Просмотрите документацию по vcpkg, чтобы узнать больше о том, как включить различные рабочие процессы ...

# ... github.com, microsoft, vcpkg.

...

# ... pothosware.com, фреймворк Pothos, библиотека SoapySDR. Обзор проекта.

... это установит библиотеки для большинства SDR приемников ... Фреймворк и проект Pothos - представляет собой полную структуру потока данных для создания топологий взаимосвязанных блоков обработки и API ... Библиотека SoapySDR - для взаимодействия с устройствами SDR ... Большинство готовых аппаратных платформ SDR поддерживаются SoapySDR, а многие приложения с открытым исходным кодом полагаются на SoapySDR для поддержки интеграции оборудования. Кроме того, SoapySDR имеет привязки к средам разработки, таким как GNU Radio и Pothos ...

Установщик PothosSDR для Windows ... Среда разработки Pothos SDR позволяет пользователям Windows легко начать изучение и разработку в захватывающей экосистеме программно-определяемого радио с открытым исходным кодом ... Мы объединяем как можно больше в один установщик, используя не только проекты Pothos и SoapySDR, но и другие крупные фреймворки и приложения, такие как GNU Radio, GQRX и CubicSDR ...

# ... github.com, pothosware, PothosSDR.

...

# ... music.mcgill.ca, gary, rtaudio аудио кодек. Домашняя страница, скачать последний релиз.

... Собрать и установить в C: / Program Files (x86) / RtAudio / ... RtAudio - это набор классов C++, которые предоставляют общий API (интерфейс прикладного программирования) для ввода / вывода звука в реальном времени в операционных системах Linux, Macintosh OS-X и Windows ... RtAudio значительно упрощает процесс взаимодействия с компьютерным аудиооборудованием ... RtAudio включает в себя концепцию аудиопотоков, которые представляют аудиовыход (воспроизведение) и / или ввод (запись) ... Доступные аудиоустройства и их возможности можно перечислить, а затем указать при открытии потока ... Там, где это применимо, можно скомпилировать поддержку нескольких API и указать конкретный API при создании экземпляра RtAudio ...

Вот - вот ... Именно, про это и упоминалось : пересобрать его с отключением какой то опции, которая мешает ... Может RtAudio аудио кодек - это именно то, чего и не хватает ??? ... Но, похоже, скачать его - проблематично и придется компилировать самостоятельно ... Есть еще маленькая надежда на то, что - некоторые DLL могут требовать предварительной регистрации в Windows (при установке - само / регистрации ; известная проблема ; иначе - зачем пересекаются glfw3.dll и dllhost.exe ? : что-то не могут поделить и найти) ... Нет, не помогло ...

Итак ... Скачал Visual Studio 2019 / бесплатно (30 дней пробный тестовый период) ... Не стал устанавливать никакие проектные инструменты : минимальный размер места = 800 с чем-то Мб ... С опцией CMake для Windows и поддержкой C++ = 4,1 Гб ... Дополнительно добавить .Net = ещё плюсом 5 - 6 Гб ... Импортировал проект RtAudio с GitHub - специальной кнопкой ... В файле Install - прочитал строки : Все аудио API Windows в RtAudio компилируются либо с помощью компилятора MinGW (протестировано с последней версией tdm64-gcc-4.8.1), либо с помощью MS Visual Studio ... Файлы проекта Visual C ++ 6.0 (очень старые) включены для тестовых программ в каталог / tests / Windows / ... Эти проекты включают поддержку API для ASIO, WASAPI и DirectSound ... Ясно : либо - MinGW, либо - MS Visual Studio ...

Все эти телодвижения, чтобы понять : что, как и зачем правят в RtAudio ... Суть - такая (по описанию из видео) ...

... Радиолюбители. SDR PP. Новая программа SDR. Открытый исходный код и кроссплатформенность.

... Если звук дергается, как-бы - вырезается - нужно обновить RtAudio, заодно исправив опции компиляции ... Скачать с Git (не Repo), удалить старую версию и поставить новую ... На Linux, так - легко ... Для Windows - все сложнее и немного иначе ...

... How to Install RtAudio on Windows 10. Как установить.

... В отличии от Linux, где файл можно назначить исполняемым - в Windows, исполняемым - файл уже должен быть изначально и по расширению ...
Скачать с GitHub zip архив проекта RtAudio и извлечь в папку ...
Затем нужно запустить инструмент Visual Studio 2019 : собственную командную строку ... Зайти в извлеченную папку и создать каталог сборки - build ...
Запустить CMake с опцией -G "Visual Studio 16 2019" -A x64 ../
Вот здесь и понадобятся средства и компоненты Visual Studio : SDK, MSVC, compilier и все прочее, что входит в указанные выше 10 Гб, требуемые при установке программы ... В папке build будут созданы пресловутые .vcxproj и еще один rtaudio.sln ...
Стартануть rtaudio.sln ; он запустит навигатор решений Visual Studio, где в меню выбрать all_builds - build ... Проект будет скомпилирован в EXE файлы ... Закрыть экплорер ...
Открыть Visual Studio 2019 от имени администратора и, среди недавних - повторно выбрать rtaudio.sln, но теперь, в меню - выбирать : install ... Проект установится в папку С: \ Program Files (x86) \ RtAudio - однако, не смотря на путь установки - это будет версия x64, поэтому ее можно использовать из этого места ... Это - базовая установка звука в Windows ...

Несомненно, это решение - поможет, если проблема действительно в RtAudio ... Чтобы окончательно исключить варианты - я скопировал файл из каталога программы SDR Plus Plus, под обоими именами : rtaudio.dll и rtaudiod.dll в папки : ...
C: \ Program Files \ RtAudio \ bin \ ... и
C: \ Program Files (x86) \ RtAudio \ bin \ ...
Не помогло ... Зато - получены основы работы с CMake и Visual Studio ...

# ... kzread.info, Форум обсуждений радио, в том числе - как установить и использовать rtaudio.

... Откуда я взял, что можно манипулировать месторасположением DLL ? ... Ну, во-первых : из головы, и учитывая, что могут быть ошибки / нестыковки в самой программе SDR++ ... И нашел подтверждение из заблокированного к просмотру источника по ссылке ... Уже много лет назад - писали ... Есть несколько способов решить проблему ; самый простой - перетащить копию rtaudiod.dll (из C: \ Program Files (x86) \ RtAudio \ bin) в каталог, где находится exe ... Один из других способов - добавить C: \ Program Files (x86) \ RtAudio \ bin - в переменную среды PATH ...

Пробую запустить CMake для проекта SDR++ ... Не уверен что все делаю правильно, действую по наитию ...

CMake GUI версия с Windows интерфейсом.

CMake, выбор разрядности x64 для проекта SDR Plus Plus.

CMake, ошибка в работе с проектом SDR Plus Plus.

Файл CMakeOutput.log содержит единственную строку ошибки ... The system is : Windows - 6.1.7601 - AMD64 ... Как это понять ??? ...
Windows - 6.1 ? ... Да ...
SP1 7601 ? ... Да ...
CPU AMD64 ? ... Нет, Intel Core 2 Duo CPU P7350 с ОС x64 ...
... Косяк ? ...

# ... answers.opencv.org, CMake определяет Intel Core i5 как AMD64.

... То, что мы называем x64 или 64-битной архитектурой - часто называют AMD64 в связи с оригинальным дизайном AMD K8, который является первым процессором с 64-битным набором инструкций x86 ... Таким образом, вы часто будете сталкиваться с x64 или AMD64 на компьютерах, в зависимости от того, кто делает упоминание об этом в программе ... Предполагается, что проблемы, возникающие при сборке - не имеют ничего общего с AMD64 ...

CMake, ошибка внутренней избыточности, исправляемая приоритетным внешним ключом.

А, что это за красная строка ошибки ... Читаем CMakeCache.txt ... Этот файл был создан cmake.exe ... Вы можете отредактировать этот файл - чтобы изменить значения, найденные и используемые cmake ... Если вы не хотите изменять какие-либо значения, просто выйдите из редактора ... Если вы действительно хотите изменить значение, просто отредактируйте, сохраните и выйдите ... Синтаксис файла следующий :
КЛЮЧ : ТИП = ЗНАЧЕНИЕ ... Конкретно, сбойный ключ - поддерживает четыре разных возможных значения (одно из четырех ???), все иные - будут проигнорированы ...

А, вот что - говорит справка CMake : ... Ключ. опция -D var:type=value, или -D var=value ... Когда cmake впервые запускается в пустом дереве сборки, он создает файл CMakeCache.txt и заполняет его настраиваемыми параметрами для проекта ... Этот параметр можно использовать для указания параметра, имеющего приоритет над значением по умолчанию для проекта ... Опцию можно повторить для любого количества записей кэша, однако аргумент - должен быть единственный (не множественный выбор) ... Кнопка Add Entry на панели программы CMake - перекрывает / преобладает над системными умолчаниями и перезаписывает неправильную пару ключ = значение ...

Только исправили одну - а, вот и уже - следующая ошибка : Generator, Visual Studio 16 2019 - could not find any instance of Visual Studio ... Нету, потому-что - и не было ничего установлено, кроме оболочки ... Ладно, пока бросил эту затею : все равно столько места на диске - нет ... Вернее - системные виртуальные VHD SSD жесткие диски, изначально - не были для этого предназначены ... Побаловаться и на 20 Гб можно - без особых проблем ...

# ... libusb.info, Скачать, загрузить библиотеку libusb.dll.

... Заменил и эту библиотеку, снова - не помогло ...

# ... glfw.org, Скачать, загрузить glfw.dll свежую версию.

... Снова вернулся к этой DLL ... Странно, прошлый раз я скачивал версию glfw-3.3.4, а эта : glfw-3.3.5 - более свежая ... Ага, здесь добавилось lib-vc2022 для самой свежей и последней версии Visual Studio ... Но и это, все равно - не помогло ...

Нам нужен план ... Есть ли у вас план, мистер Фикс ? ... Есть ли у меня план ? ... У меня есть план, мистер Фикс ... Дождаться, пока автор SDR PP - сам обнаружит, протестирует и исправит ошибку под Windows ... Запустить ПК с USB Linux / Ubuntu загрузочной флешки и поиграться - там ... Установить соответствующее ПО, в полном объеме и зависимости, чтобы попытаться скомпилировать самостоятельно (или, по крайней мере - выявить ошибку) ... Скачать и загрузиться со специального Linux диска для поигрушек с SDR радио (где уже есть много разного и вкусного, чего нет под Windows) ... Вариантов - много, есть из чего выбирать, чтобы не зацикливаться на нерабочей, под Windows, программе ...

Вообще, как мне кажется - software SDR++ в какой-то мере аналогично программе радио CubicSDR ... Обе программы - примерно равные по развитию, амбициозные, второй или третьей волны СДР программного обеспечения, взрощенные на ошибках и недоработках софта первого поколения, а также - учитывающие современные вехи и направления эпохи развития любительской радиосвязи ... Возможно, их будущее, когда-нибудь - пересечется с нашим ))) ...

Раздел sdr-receiver : список всех страниц ...