2015-07-13 2 views
0

Вот мой график потока:Последний пакет потерял gnuradio

Файл источник> Дроссель> Packet энкодер> Упакованный в распакованы> Packet декодер> раковина файла.

Независимо от того, что я делаю, окончательные 1 или 2 пакета (в зависимости от количества байтов от источника файла) не записываются в файл-приемник. Проблема такая же, если я заменяю источник файлов и приемник файлов на источник TCP и приемник TCP. Я думаю, что это проблема с кодировщиком и декодером пакетов. Любая идея о том, как это исправить?

ответ

0

Возможно, эта проблема связана с внутренней буферизацией каждого блока или с буферизацией файловой системы. Попытайтесь уменьшить количество буферизованных элементов в каждом блоке и/или установить опцию unbuffered в файловой раковине до On.

Другим решением было бы выбрать из вариантов флотагата опцию No-GUI и Run to completion. Таким образом, когда блок источника файла достигает конца файла, он отправляет специальное значение в следующие блоки, указывающие, что поток-график останавливается. Возможно, таким образом, все буферизованные элементы в блоках flowgraph в конечном итоге будут очищены.

+0

Не работает. Похоже, что блок пакетного кодера ожидает появления байтов для заполнения пакета. когда этого не происходит, пакет не перенаправляется. –

+0

Возможно, опция 'run to complete' вам поможет. См. Мой обновленный ответ. – Manos

+0

Я пробовал это. по-прежнему дает тот же результат. последний один или два пакета не передаются. –

Смежные вопросы