我在CentOS 6.7上使用N210运行Redhawk1.10.1,当我第一次分配并附加一个波形时,USRP_UHD设备正常运行,但是当我释放它,然后尝试分配第二个(或更高)时间时,设备总是显示一个sri.xdelta =1。这个问题使我的其他组件崩溃。这是设备中的一个bug,还是我的pc上设置的错误?
发布于 2015-10-02 16:09:25
如果您已从REDHAWK安装,请获取USRP_UHD设备的源代码副本:
git克隆UHD.git
现在编辑第598行(应该是"fts.stream_id = 0.0;"),以便将stream_id设置为空字符串("")而不是0.0。然后,您应该能够重建和安装这个编辑的版本,这个问题将得到解决。
这导致问题的原因其实是相当有趣的。尽管编译器不允许将字符串设置为0,但将其设置为0.0似乎清除了std::string的内部缓冲区,但保留了字符串的前一个长度。取消分配后,USRP_UHD设备清除SRI信息。当执行新分配时,设备将检查stream_id是否为空,这将表明它需要更新SRI。因为对字符串的空()调用检查字符串的长度,所以设备假定stream_id不是空的,并且推送默认的SRI。
https://stackoverflow.com/questions/32875549
复制相似问题