GNURadio之osmosdr source block添加一个输入口

由于是source block,所以在创建为source块后,一般默认为只有输出口,如果不想创建为source block。可以在创建的时候选择为general属性即可。但是如果一开始就创建为source block,也不用着急,本文章就是来解决这个问题的。

整个过程分为三步骤:

1.gr::io_signature::make(),利用find指令:find /home -name "*.*" | xargs grep "gr::io_signature::make()",寻找在相应文件目录下的与目标文件有关的gr::io_signature::make()的程序行,然后此函数的前面两个参数修改为你想要的数,如gr_make_io_signature(2,2,sizeof(float)),gr_make_io_signature(1,1,sizeof(float)),这个就是创建了一个具有两个输入口、一个输出口的block。如果我想把source block修改为一输入一输出,只需要在原有的基础上利用上面提到的find指令找与source block相关的gr::io_signature::make(),将gr_make_io_signature(0,0,0)全部修改为gr_make_io_signature(1,1,sizeof(float)),全部修改完之后就不会出现“端口数超过0”之类的错误。注意:在修改的时候,一般是在设定IO数的程序那修改。这样就在source block里面设置了一个输入端口。

2.在source block的外部封装上设置好一个输入口。打开与source相关的osmosdr_source.xml文件,在这个.xml文件中可以设置source block的名字以及其他参数,当然也可以设置输入输出端口的数量。寻找到设置输出口的语句,也就是<source> </source>语句,在其附近加上<sink> </sink>语句,使用同输出口的一样的参数即可。这样就设置好了外部封装的输入口。

3.内部程序和外部封装都设置好一个输入口之后,最后就是在source_impl.cc文件里添加把输入口与source block连接起来的语句,在此文件添加connect语句connect(self,channel,0),就是将输入端口0与source block 连接起来,如果想将输入端口1与source block 连接起来就将语句改为connect(self,channel+1,1)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值