c++ - 为工作函数中的每个输出指定 noutput_items
问题描述
我想修改一个 OOT 块以具有两个输出,如下所示:
当前状态 :
int
block_impl::general_work (int noutput_items,
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
const gr_complex *in = (const gr_complex *) input_items[0];
gr_complex *out = (gr_complex *) output_items[0];
// signal processing part
switch (state) {
case SEND: {
// Send one complex vector to "out"
noutput_items = 1;
}
case NOK: {
// Do nothing
noutput_items = 0;
}
}
return noutput_items;
}
我试过了:
int
block_impl::general_work (int noutput_items,
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
const gr_complex *in = (const gr_complex *) input_items[0];
gr_complex *out = (gr_complex *) output_items[0];
gr_complex *out_all = (gr_complex *) output_items[1];
// signal processing part
switch (state) {
case SEND: {
// Send one complex vector to "out" and "out_all"
noutput_items = 2;
}
case NOK: {
// Send complex vector to "out_all"
noutput_items = 1;
}
}
return noutput_items;
}
但是,此解决方案不起作用,因为连接到“out_all”的块没有接收任何内容,并且连接到“out”的块不再正常工作。
我想我对在工作函数结束时返回的“noutput_items”值的理解并不完全,有人可以向我解释我缺少什么吗?
解决方案
您可以按如下方式使用生产功能:
int
block_impl::general_work (int noutput_items,
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
const int OUT = 0;
const int OUT_ALL = 1;
const gr_complex *in = (const gr_complex *) input_items[0];
gr_complex *out = (gr_complex *) output_items[OUT];
gr_complex *out_all = (gr_complex *) output_items[OUT_ALL];
// signal processing part
switch (state) {
case SEND: {
// Send one complex vector to "out" and "out_all"
produce(OUT,1);
produce(OUT_ALL,1);
}
case NOK: {
// Send complex vector to "out_all"
produce(OUT,0);
produce(OUT_ALL,1);
}
}
return WORK_CALLED_PRODUCE;
}
推荐阅读
- javascript - 如何手动关闭 ant design 下拉菜单?
- javascript - 无法将脚本导入另一个脚本
- struct - Rust 哪些数据包含一个已分配结构的变量
- python - 如何在 Dense 或 Flatten 层之后应用 Conv1D:ValueError:形状 (1, 1, 3) 和 (1, 1) 不兼容
- node.js - 此处理程序的正确类型是什么
- informatica - 如何在值中添加缺失的字符
- html - CSS避免ul列表项浮动到框
- php - PHP 中的图像库
- javascript - Javascript if 语句或运算符不起作用
- apify - 使用apifycheerio,apify基本爬虫可以达到多少RPS(每秒请求)