2016-07-22 3 views
0

Есть ли простой способ реализовать связь между двумя компьютерами под управлением GNUradio с использованием стандартных блоков?Gnuradio транслируется между двумя компьютерами?

То, что я есть сейчас это:

На компьютере Linux, GNUradio работает и прием входных данных от периферийного устройства радио. На этом компьютере я вижу полученную форму волны в области WX. Я также могу использовать ползунки и поля ввода для изменения таких параметров, как частота приемника.

То, что я хотел бы сделать это:

На компьютере Windows я имею объем и ползунки WX. Когда я перемещаю ползунок или меняю поле ввода, эти данные отправляются в Linux, в котором по-прежнему работает радиоприемник на Gnuradio. Полученный сигнал проходит через поток обратно в окна и отображается в области WX в Windows.

Кто-то в другом месте предложил использовать блоки ZMQ, однако, когда я попытался настроить PUSH/PULL для передачи синусоидальной волны от Linux к Windows, ничего не прошло. Парень, который рекомендовал этот подход, попробовал то же самое, а также не смог заставить его работать, поэтому я думаю, что этот блок может быть сломан?

Итак, есть ли альтернативные блоки, которые могут делать то, что я пытаюсь сделать? Предпочтительно что-то хорошо документированное и доступно на GNUradio-компаньоне.

ответ

0

В обоих Linux и Windows должны быть брандмауэры, которые могут блокировать соединения.

Вам необходимо написать сообщение об ошибке, отображаемое в gnuradio-companion.

0

В зависимости от скорости передачи данных от приемника можно встретить проблемы с производительностью, пытаясь отправить необработанные данные формы волны, например, UDP-блоки, где отправитель может напечатать сообщение об ошибке, подобное приведенному ниже:

gr::log :WARN: udp_source0 - Too much data; dropping packet.

Поскольку область виджетов, как правило, отображать только часть входных данных, более идеальный способ удаленного визуализации сигнала может быть только для отправки виджета визуализированной области видимости (например, с помощью удаленного рабочего стола, такого как VNC или X2Go). Хотя это решение выходит за рамки вашей первоначальной проблемы, вероятно, проще использовать в долгосрочной перспективе для случаев, связанных с двусторонним взаимодействием с графическим интерфейсом.

0

Для данных виджета области, блоки UDP sink и source, по-видимому, являются родными для GNU Radio и являются достаточно документированным решением или достаточно просты для этой проблемы, снова принимая во внимание настройку брандмауэра в качестве упомянутого @Zephyr.

С GRC, укажите в блоках UDP:

  1. имя хоста или IP-адрес компьютера, дисплея и

  2. выбрать номер порта, который не используется (и были вы используете Linux, OS X или что-нибудь UNIX-подобное, а не любой порт ниже 1024).

Для установки переменных по сети, вы можете попробовать XMLRPC блоки, как описано в another answer. Это были recently deprecated.

См. Мой другой ответ для обсуждения альтернативы, если возникают проблемы с производительностью.