wavfile_sink:值nan不能用目标整数类型

时间:2018-05-01 15:56:39

标签: gnuradio

我有几个通过互联网进行通信的gnuradio应用程序。流程图相当复杂,因此我将它们简化为最简单的形式,以重新创建我所看到的问题。

问题在于,当我调用客户端时,它按预期连接到服务器,但会立即抛出异常"值nan不能用目标整数类型表示"并且似乎来自wavfile接收器块。

我将服务器简化为简单的拨号音流程图,在TCP端口上显示拨号音信号。客户端可以连接到该端口并期望接收拨号音信号。

如果我在同一台计算机上运行客户端和服务器并使用localhost连接,则客户端连接正常并按预期工作。但是,如果客户端和服务器在远处(通过互联网)分开,那么我每次都会收到nan例外。

理论:

  1. 也许客户端正在启动并且没有足够快地接收数据(连接时间+ 20ms延迟)并且wavfile块正在从套接字PDU接收NaN或流到标记的流阻塞?
  2. 也许数据在通过互联网时受到损害,因为数据包没有按预期到达 - 碎片化?我试过MTU 512,但问题仍然存在。 Trued MTU 10000:结果相同。
  3. 在构建流程图时,我可能忽略了一个简单的用法/语法错误
  4. wavfile接收器中存在一个错误,它应该更优雅地处理缺少数据的问题。
  5. 更新1: 将错误报告记录到gnuradio项目https://github.com/gnuradio/gnuradio/issues/1763

    更新2: 套接字PDU块似乎发挥了重要作用。如果我将流的数据包长度参数调整为标记流块,以及套接字PDU块的MTU参数,我可以获得带有丢包(低MTU)的无错流或带有NaN异常的死流(高MTU) )。

    服务器流程图 enter image description here

    客户流程图(XYZ.com当然不是我真正的IP) enter image description here

    通过互联网获得结果(延迟20-100毫秒) enter image description here 这个wav文件是1k,可能在异常的同时被截断,但很难确定。

    跨本地界面的wav结果(1毫秒或更短的延迟) enter image description here 在本地界面上,客户端运行愉快,直到我停止它。收到的信号与预期一致。 一件小事 - 注意前几个样本的初始问题?不确定这是否是一个因素。可能不是。但是即使在本地接口上,数据也是前10毫秒左右的垃圾。

0 个答案:

没有答案