gnuradio:如何在编写OOT块时动态更改noutput_items?

时间:2015-08-31 07:16:26

标签: python-2.7 signal-processing gnuradio modulation

当我在gnuradio中制作OOT块时

Plant

我明白了:

SubPlans

我该如何解决? GRC如下:
选择器:输入索引和输出索引由WX GUI选择器块控制 FSK4 MOD:调制fsk4信号并将数据写入raw.bin
FSK4 DEMOD:从raw.bin读取数据并解调

FixedSubPlan newSubPlan = new FixedSubPlan(getNumberOfSubPlans(), getFamilyNames());
newSubPlan.rotateFamily(getNumberOfSubPlans());
listOfSubPlans.add(newSubPlan);

当输入索引或输出索引发生变化时,整个流程图将没有响应。

1 个答案:

答案 0 :(得分:2)

有两件事:

  1. 你有一个错误,解决方案不是改变一些东西,而是修复那个错误。完整的Python错误消息将告诉您错误在哪一行。

  2. noutput_items是GNU Radio在运行时设置的变量,用于通知您在此work调用中可能产生的输出量。因此,它不是设置的东西,而是work方法必须尊重的东西。

  3. 我认为你不太了解GNU Radio是如何运作的,这是公平的:

    当有足够的可用输出空间和足够的输入项目时,GNU Radio基于调用块的work函数。您的块可以使用的输出空间量作为参数传递给work,并且会在对work的调用之间进行更改。

    非常强烈建议您浏览official Guided Tutorials的第1-3章(如果您还没有)。我们总是尽力使这些教程保持最新。

    编辑:您的命令显示您还没有真正明白我的意思,抱歉。所以:GNU Radio在执行时会一遍又一遍地调用你的work方法。

    例如,它可能会调用带有4000个输入项和4000个输出项空间的work(您有一个同步块,因此输入数量==输出数量)。您的work处理前1000个,因此return 1000。所以剩下3000件物品。

    现在,上游块做了一些事情,所以有100个新项目。由于之前的3000仍然存在,因此我们会使用work项来调用您的3100 {/ p}}。

    您的work处理任意数量的项目,并return该号码。 GNU Radio确保"剩余的"如果我们的输出中有足够的内容,我们会继续拨打您的work