我在CentOS 6.7上使用N210运行Redhawk 1.10.1,当我第一次分配并附加波形时,USRP_UHD设备正常运行,但是当我释放它然后尝试分配第二(或更高)时间时始终显示sri.xdelta = 1.此问题导致我的其他组件崩溃。这是设备中的错误还是我的电脑上出现了错误的设置?
答案 0 :(得分:0)
如果您已从REDHAWK RPM安装,请获取USRP_UHD设备的源代码副本:
git clone https://github.com/redhawksdr/USRP_UHD.git
现在编辑第598行(应该是“fts.stream_id = 0.0;”),以便将stream_id设置为空字符串(“”)而不是0.0。然后,您应该能够重建并安装此编辑版本,问题将得到解决。
这导致问题的原因实际上非常有趣。虽然编译器不允许将字符串设置为0,但将其设置为0.0似乎会清除std :: string的内部缓冲区,但保留字符串的前一个长度不变。解除分配后,USRP_UHD设备清除SRI信息。执行新分配时,设备会检查stream_id是否为空,这表示它需要更新SRI。因为字符串上的empty()调用检查字符串的长度,所以Device假定stream_id不为空并且推送了默认的SRI。