是否有一种简单的方法可以使用标准块集在两台运行GNUradio的计算机之间实现通信?
我现在拥有的是:
在Linux计算机上,GNUradio正在运行并从无线电外设接收输入。在那台电脑上,我可以在WX示波器上看到接收到的波形。我还可以使用滑块和输入框来改变接收器频率等内容。
我想做的是:
在Windows计算机上,我有WX示波器和滑块。当我移动滑块或更改输入框时,该数据将被发送到Linux,而Linux仍然在Gnuradio上运行无线电接收器。收到的信号通过流返回到窗口,并显示在Windows上的WX范围内。
其他人建议使用ZMQ块,但是,当我尝试设置PUSH / PULL将正弦波从Linux传输到Windows时,没有任何事情发生。那个推荐这种方法的人尝试了同样的方法并且无法使其正常工作,所以我认为这个方块可能会被打破?
那么有什么替代方案可以做我想做的事吗?最好记录一些,并且可以在GNUradio-companion上获得。
答案 0 :(得分:0)
根据来自接收器的数据速率,可能会遇到尝试使用例如发送原始波形数据的性能问题。 UDP块,发件人可能会打印类似于以下内容的错误:
gr::log :WARN: udp_source0 - Too much data; dropping packet.
由于范围窗口小部件通常仅显示输入数据的一部分,因此远程可视化波形的更理想方式可能是仅发送渲染的范围窗口小部件(例如,使用诸如VNC或X2Go的远程桌面)。虽然这个解决方案超出了原来的问题,但从长远来看,对于涉及双向GUI交互的案例来说,它可能更容易使用。
答案 1 :(得分:0)
对于范围窗口小部件数据,UDP sink和source块似乎是GNU Radio的原生块,并且要么是充分记录的解决方案,要么足够简单以解决此问题,再次将防火墙配置考虑为@Zephyr提到。
从GRC中,在UDP块中指定:
显示计算机的主机名或IP地址,以及
一个尚未使用的选择端口号(您使用的是Linux,OS X或类似UNIX的任何端口号,而不是1024以下的任何端口)。
要通过网络设置变量,您可以尝试使用XMLRPC块,如another answer中所述。然而,这些是recently deprecated。
如果出现性能问题,请参阅我的其他答案以讨论替代方案。
答案 2 :(得分:-1)
Linux和Windows都应该有可能阻止连接的防火墙。
您需要发布gnuradio-companion中显示的错误消息。