GNU Radio Companion:如何将浮动流转换为打印到控制台?

GNU Radio Companion: how can I convert float stream to be printed to console?

我有一个阈值块的输入,我已经验证它正在使用 QT GUI 数字接收器。

我想将 Threshold 块的输出打印到控制台,最好使用 Message Debug 块。

但是,Threshold 块的输出是浮点流,与 Message Debug 块的输入不匹配。

有没有办法将浮动流转换为消息,还是我走错了路?

我的总体目标是:当输入超过某个阈值时,打印到控制台。另一个程序将监视控制台,当有打印输出时,这会触发另一个操作。我也不确定如何仅在超过阈值时输出,但一次一个问题。

I'm also not sure how to output ONLY when the threshold is exceeded, but one problem at a time.

是的,但这个问题是一个障碍:标准输出是 GNU Radio 进程中所有事物的共享事物,因此您通常不能保证排他性。

我们不要走那条路!

相反,使用几十年前在 UNIX 中专门为此类事情设计的东西!

命名管道。这些是您可以像文件一样处理的 FIFO。

因此,使用文件源写入 FIFO,然后将该 FIFO 通过管道传输到您的其他程序中。

真的很简单:

  • mkfifo /path/to/where/you/want/to/named/pipe
  • 添加写入 /path/to/where/you/want/to/named/pipe
  • 的文件接收器
  • 要么让你的其他软件打开 /path/to/where/you/want/to/named/pipe,要么做类似 other_program < /path/to/where/you/want/to/named/pipe 的事情(这实际上使你的其他程序的标准(==console-equivalent)输入与你写入的内容相同文件接收器)