【问题标题】:GNU Radio Companion: how can I convert float stream to be printed to console?GNU Radio Companion:如何将要打印的浮点流转换为控制台?
【发布时间】:2018-08-09 03:10:07
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 打印后您想如何处理这些数字? (我很确定是的,你走错了)。
  • 我的总体目标是:当输入超过某个阈值时,打印到控制台。另一个程序将监视控制台,当有打印输出时,这会触发另一个动作。我也不确定如何仅在超过阈值时输出,但一次一个问题。
  • 是的,这是一个问题:在 GNU Radio 中不能保证没有其他内容可以写入标准输出。所以,不要依赖它!不过,有一个更简单的解决方案

标签: gnuradio gnuradio-companion


【解决方案1】:

我也不确定如何仅在超过阈值时输出,但一次一个问题。

是的,但这个问题是一个障碍:标准输出是 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 之类的操作(这实际上使您向该文件接收器写入的其他程序的标准(==控制台等效)输入)

【讨论】:

  • 非常感谢!!!!另外,想添加运行 od -f /.../pipe 正确输出文件接收器内容。
  • 自动,超过阈值时才输出。
猜你喜欢
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2018-02-27
相关资源
最近更新 更多