gnuradio模块的数据输出

gnuradio模块与模块相连接,进行调制之后由usrp 发送。但如果想看到某一个模块之后输出的数据,方便的方法是加一个file sink模块。但我有很多时候都想自己用python处理数据,不要专门写出一个模块。然后再输入gnuradio进行处理。如果输入输出都要经过file source 的话,感觉很麻烦啊,要一次处理完之后才能进行下一步,还要手动多次。

然后看到benchmark_tx.py(gnuradio/gr-digital/examples/narrowband/..)里面有个数据传输过程:变量data 

    # build the graph
    tb = my_top_block(mods[options.modulation], options)

    r = gr.enable_realtime_scheduling()
    if r != gr.RT_OK:
        print ("Warning: failed to enable realtime scheduling")

    tb.start()                       # start flow graph
        
    # generate and send packets
    nbytes = int(1e6 * options.megabytes)
    n = 0
    pktno = 0
    pkt_size = int(options.size)

    while n < nbytes:
        if options.from_file is None:
            data = (pkt_size - 2) * chr(pktno & 0xff) 
        else:
            data = source_file.read(pkt_size - 2)
            if data == '':
                break;
        payload = struct.pack('!H', pktno & 0xffff) + data
        send_pkt(payload)
        n += len(payload)
        sys.stderr.write('.')
        if options.discontinuous and pktno % 5 == 4:
            time.sleep(1)
        pktno += 1
        
    send_pkt(eof=True)
    tb.wait()                       # wait for it to finish

那我是不是就可以改变这个data?或者在这里插一个函数,返回值由gnuradio处理发送出去?还没有具体实验。。。不知道有没有问题


据实验,应该可以,用了ERIC工具制作简单的GUI,点击发送按钮可以实现usrp的发送,同样到接收。

你可能感兴趣的:(笔记)