0

我在带有 N210 的 CentOS 6.7 上运行 Redhawk 1.10.1,当我第一次分配和附加波形时,USRP_UHD 设备运行正常,但是当我释放它然后尝试分配第二个(或更高)时间时,设备总是显示sri.xdelta = 1。这个问题使我的其他组件崩溃。这是设备中的错误还是我的电脑上设置了错误?

4

1 回答 1

0

如果您是从 REDHAWK RPM 安装的,请获取 USRP_UHD 设备的源代码副本:

git 克隆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() 调用会检查字符串的长度,所以设备假定 stream_id 不为空并推送默认 SRI。

于 2015-10-02T16:09:25.983 回答