You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GNU Radio报错Index Error: output_index必须小于noutputs求助

GNU Radio Selector Block索引错误排查

问题描述

使用GNU Radio流图时,尝试通过Selector Block选择对应输出,运行时报错:

Index Error: output_index must be < noutputs

选择的索引1小于输出数量2,但仍触发该错误,以下是FT8_Receive层级块及顶层OOT模块的相关代码。

FT8_Receive层级块代码

class FT8_Receive(gr.hier_block2):
    def __init__(self, wave_select=0):
        gr.hier_block2.__init__(
            self, "FT8_Receive",
                gr.io_signature(1, 1, gr.sizeof_float*1),
                gr.io_signature(0, 0, 0),
        )

    ##################################################
    # Parameters
    ##################################################
    self.wave_select = wave_select
    
    ##################################################
    # Connections
    ##################################################
    self.connect((self.blocks_selector_0, 1), (self.blocks_wavfile_sink_0_0, 0))
    self.connect((self.blocks_selector_0, 0), (self.blocks_wavfile_sink_0_0_0, 0))
    self.connect((self, 0), (self.rational_resampler_xxx_0, 0))
    self.connect((self.rational_resampler_xxx_0, 0), (self.blocks_selector_0, 0))
def get_wave_select(self):
        return self.wave_select

    def set_wave_select(self, wave_select):
        self.wave_select = wave_select
        self.blocks_selector_0.set_output_index(self.wave_select)

顶层流图OOT模块代码

from FT8_Receive import FT8_Receive

RCV = FT8_Receive()
wave_select = 1
RCV.set_wave_select(wave_select)

问题原因排查

报错的核心原因是Selector Block初始化时未指定正确的输出端口数量:

  • 代码中缺失self.blocks_selector_0的初始化逻辑,GNU Radio的Selector Block默认输出端口数量为1。
  • 即使后续连接了两个输出端口到WAV Sink,Selector内部的noutputs参数仍为默认值1,此时设置索引1会超出范围,触发Index Error。

解决方法

  1. 在FT8_Receive的__init__方法中,补充Selector Block的初始化代码,明确指定输出端口数量为2:
# 在Parameters部分之后、Connections部分之前添加
self.blocks_selector_0 = gr.blocks.selector(gr.sizeof_float, 0, noutputs=2)
  1. 在__init__方法末尾,调用self.set_wave_select(self.wave_select),确保初始参数生效:
# 在Connections部分最后添加
self.set_wave_select(self.wave_select)
  1. 重新编译并运行流图,即可正常设置索引1。

内容的提问来源于stack exchange,提问作者Jim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 22:22:41