2015-07-13 65 views
0

这是我的流程图:最后一包丢失gnuradio

文件源>节流>包编码器>打包解包>包解码器>文件接收器。

无论我做什么,最后的1或2个数据包(取决于来自文件源的字节数)都不会写入文件接收器。如果我用TCP源和TCP接收器替换文件源和文件接收器,问题是一样的。 我认为这是一个数据包编码器和解码器的问题。任何想法如何解决这个问题?

回答

0

可能这个问题与每个块的内部缓冲或文件接收器的缓冲有关。尝试减少每个块中缓冲项目的数量和/或将文件接收器上的unbuffered选项设置为On

另一种解决方案是从流程图的选项中选择No-GUI选项和Run to completion。通过这种方式,当文件源块到达文件末尾时,它会向以下块发送一个特殊值,指示流程图正在停止。也许通过这种方式,流程图块中的所有缓冲项最终都会被刷新。

+0

不起作用。看来分组编码器块正在等待字节到达以填满分组。当没有发生时,数据包不会被转发。 –

+0

也许'跑到完成'选项将帮助你。看到我更新的答案。 – Manos

+0

我试过了。仍然给出相同的结果。最后一个或两个数据包没有传输。 –