制作 Gnuradio 设置块

Making a Gnuradio Settings block

我们将使用 Gnuradio 从无线电外设流式传输数据。此外,我们还有另一个外设,它是系统的一部分,可以通过编程进行控制。我有一个基本的 C 程序来进行控制。

我希望能够在 GNUradio 中实现它,但我不知道最好的方法是什么。我看到你可以制作积木,所以我想我可以制作一个水槽积木,将常量馈入其中,并让常量值由某些控件(如 WX 滑块)定义。

如果我可以删除常量块并且只将分配给 WX 滑块的变量直接分配给控制块,那么这将减少不必要的部分,但这样就没有输入了。你能做一个只运行一些程序或子程序的无输入和无输出块吗?

此外,在进行基本测试以查看这是否可行时,我使用滑块将恒定源指向 WX 示波器图。在输入选项和看到结果显示在图表上之间似乎存在滞后或延迟。有没有更有效的方法来减少延迟?还是因为我的电脑速度慢?

我猜你的工作流程图需要节流,或者块之间的采样率不正确。

除非你 post 你的 grc 文件或它的图像,否则几乎不可能帮助你。

It would take a needless part out of this if I could remove the constant block and just have the variable assigned to the WX slider directly be assigned to the control block, but then there would be no input. Can you make an inputless and outputless block that just runs some program or subroutine?

是的,如果你这样做就会成功。事实上,您可以在 GRC XML 文件中编写任何类型的 Python 代码,如果您正确设置属性和 setter 代码,您想要的就会起作用。它本身不需要实际创建任何 GNU Radio 块。

Also, when doing a basic test to see if this was feasible, I used a slider to a constant source to a WX scope plot. There seems to be a lag or delay between putting in an option and seeing the result show up on the plot.

GNU Radio 并未针对最小延迟进行优化,而是针对高效的批量处理进行了优化。您会看到源和接收器之间的缓冲。每当你有一个 计算 值而不是绑定到某个硬件时钟的源时,它下游的缓冲区将总是几乎满,你会得到这种滞后。

在高级选项中有调整缓冲区大小的设置,但它们的作用有限。