c++ - GNU radio io_signature

标签 c++ gnuradio

我正在进入 GNU Radio,在创建了一个新 block 之后,在主类中我有这样的代码:

square_ff_impl::square_ff_impl()
  : gr::block("square_ff",
              gr::io_signature::make(<+IMIN+>, <+IMAX+>, sizeof (<+ITYPE+>)), // input signature
              gr::io_signature::make(<+OMIN+>, <+OMAX+>, sizeof (<+OTYPE+>))) // output signature
{
    // empty constructor
}

我真的不知道到底要在 MIN 和 MAX 中放入什么(即使在阅读文档之后)。

你能给我一些例子吗?

最佳答案

IMIN - minimum number of acceptable input ports
IMAX - maximum number of acceptable input ports
OMIN - minimum number of acceptable output ports
OMAX - maximum number of acceptable output ports

文档在 BlocksCodingGuide 的 IOSignatures 部分对此进行了一些讨论。 :

  • The first two parameters are min and max number of ports, this allows blocks to have a selectable number of ports at runtime.

值 -1 表示“无限制”。

作为源 block 的示例,看一下 null source 的 IO 签名 block ,不需要输入:

null_source_impl::null_source_impl (size_t sizeof_stream_item)
  : sync_block("null_source",
                  io_signature::make(0, 0, 0),
                  io_signature::make(1, -1, sizeof_stream_item))
{
}

对于水槽,请查看 null sink ,没有输出:

null_sink_impl::null_sink_impl(size_t sizeof_stream_item)
  : sync_block("null_sink",
               io_signature::make(1, -1, sizeof_stream_item),
               io_signature::make(0, 0, 0))
{
}

还有一个简单的处理 block ,add_ff ,它接受无限的输入并恰好产生 1 个输出流:

add_ff_impl::add_ff_impl(size_t vlen)
  : sync_block("add_ff",
          io_signature::make (1, -1, sizeof(float)*vlen),
          io_signature::make (1,  1, sizeof(float)*vlen)),
d_vlen(vlen)
{
...

关于c++ - GNU radio io_signature,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30566639/

相关文章:

c++ - 如何在设计实现层面避免内存泄漏

c++ - OpenMP set_num_threads() 不工作

video - 如何使用 GNURadio 和 USRP 发送视频文件?

signal-processing - gnuradio 源代码块如何知道要输出多少样本?

c++ - WHERE 列 = 值,仅适用于 INTEGER 值

C++ 生成随机数

c++ - 数组越界时抛出异常

gnuradio - 尝试在 GNU Radio 中使用我的 USRP 时,出现 "No devices found for ----->"错误

stream - GNURADIO 3.7.8 : identify a part of a byte stream

communication - 如何使用USRP1以数据速率(3.84 Mbps)传输信号?