GNU 收音机 io_signature
GNU Radio io_signature
我正在进入 GNU Radio,在我创建了一个新块之后,在主 class 我有一个像这样的代码和平:
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 表示 "unlimited"。
作为源块的示例,看一下 null source 块的 IO 签名,它没有输入:
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))
{
}
还有一个简单的处理块,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)
{
...
我正在进入 GNU Radio,在我创建了一个新块之后,在主 class 我有一个像这样的代码和平:
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 表示 "unlimited"。
作为源块的示例,看一下 null source 块的 IO 签名,它没有输入:
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))
{
}
还有一个简单的处理块,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)
{
...