0

有没有一种简单的方法可以使用标准块集在运行 GNUradio 的两台计算机之间实现通信?

我现在拥有的是这样的:

在 Linux 计算机上,GNUradio 正在运行并接收来自 Radio 外围设备的输入。在该计算机上,我可以在 WX 示波器上看到接收到的波形。我还可以使用滑块和输入框来更改接收器频率等内容。

我想做的是:

在 Windows 计算机上,我有 WX 示波器和滑块。当我移动滑块或更改输入框时,该数据被发送到 Linux,它仍在 Gnuradio 上运行无线电接收器。接收到的信号通过流返回窗口,并显示在 Windows 的 WX 示波器上。

其他地方有人建议使用 ZMQ 块,但是,当我尝试设置 PUSH/PULL 以将正弦波从 Linux 传输到 Windows 时,没有任何结果。推荐这种方法的人尝试了同样的方法,也无法让它工作,所以我认为这个块可能被打破了?

那么是否有任何替代块可以做我想做的事情?最好有一些有据可查的东西,并且可以在 GNUradio-companion 上找到。

4

3 回答 3

0

根据接收器的数据速率,在尝试使用例如 UDP 块发送原始波形数据时可能会遇到性能问题,其中发送器可能会打印类似于以下内容的错误:

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

因为示波器小部件通常只显示输入数据的一部分,所以远程可视化波形的更理想方式可能是只发送渲染的示波器小部件(例如,使用远程桌面,如 VNC 或 X2Go)。尽管此解决方案超出了您最初的问题,但从长远来看,对于涉及双向 GUI 交互的情况,它可能更容易使用。

于 2016-08-01T05:33:08.027 回答
0

对于范围小部件数据,UDP sinksource块似乎是 GNU Radio 的原生块,并且对于这个问题来说是充分记录的解决方案或足够简单,再次考虑到防火墙配置,如 @Zephyr 提到的。

在 GRC 中,在 UDP 块中指定:

  1. 显示计算机的主机名或 IP 地址,以及

  2. 一个尚未使用的选择端口号(并且您使用的是 Linux、OS X 或任何类似 UNIX 的东西,而不是低于 1024 的任何端口)。

要通过网络设置变量,您可以尝试 XMLRPC 块,如另一个答案中所述。然而,这些最近已被弃用

如果出现性能问题,请参阅我的其他答案以讨论替代方案。

于 2016-08-01T05:37:16.440 回答
-1

Linux 和 Windows 都应该有可能阻止连接的防火墙。

您需要发布 gnuradio-companion 中显示的错误消息。

于 2016-07-28T23:54:17.863 回答