Я пытаюсь создать синхронизированный исходный блок usrp в gnu radio, состоящий из нескольких устройств B210 USRP. Язык: С++.
Из того, что я нашел, мне нужно:
- Создайте несколько экземпляров multi_usrp_sptr, так как для каждого B210 требуется одно, а несколько устройств B210 не могут быть адресованы с помощью одного sptr.
- Использовать внешние источники частоты и PPS — опция, которую можно выбрать из блока или задать программно
- Синхронизируйте перенастройку для достижения повторяемого фазового смещения между узлами — этого можно добиться с помощью API синхронизированных команд https://kb.ettus.com/Synchronizing_USRP_Events_Using_Timed_Commands_in_UHD
- Синхронизируйте потоки примеров, используя свойство time_spec issue_stream cmd
Проблема в том, как мне вставить эти синхронизированные команды и установить time_spec потока в радиоблоке GNU или библиотеках gr-uhd?
Я заглянул в папку gr-uhd, где находился приемник/исходный код, и нашел функции, которые можно изменить. К сожалению, я не знаю, как скопировать или экспортировать эту библиотеку, чтобы внести эти изменения, а затем скомпилировать, чтобы вставить мои пользовательские блоки в GNU Radio, потому что gr-uhd, похоже, встроен и скомпилирован при установке GR. Я пытался справиться, а затем сделать библиотеку, но это не так - не удалось. Должен ли я добавить свой собственный исходный блок через gr_modtool и вставлять только те команды, которые мне нужны? Совместимость с uhd и его функциями, кроме добавления нескольких строк, была бы выгодна, чтобы не писать исходники с нуля.
пожалуйста, порекомендуйте
Изменить
Экспериментальная блок-схема, основанная на предложении Маркуса Мюллера:
Экспериментальный процесс синхронизации USRP