wavfile_sink: значение nan не может быть представлено в целевом целевом типе - PullRequest
0 голосов
/ 01 мая 2018

У меня есть пара приложений gnuradio, которые общаются через Интернет. Потоковые графики довольно сложны, поэтому я свел их к простейшей форме, чтобы воссоздать проблему, которую я вижу.

Проблема в том, что, когда я вызываю клиента, он подключается к серверу, как и ожидалось, но сразу генерирует исключение «Значение nan не может быть представлено в целевом целевом типе» и, похоже, происходит из приемного блока wavfile. ,

Я упростил сервер до простой диаграммы тонов набора, которая представляет сигнал тонального набора на порту TCP. Клиент может подключиться к этому порту и ожидать получения сигнала вызова.

Если я запускаю клиент и сервер на одном компьютере и подключаюсь с помощью localhost, клиент подключается нормально и работает как положено. Однако, если клиент и сервер разделены на расстоянии (через Интернет), я получаю исключение nan каждый раз.

Теория:

  1. Возможно, клиент запускается и не получает данные достаточно быстро (время соединения + задержка 20 мс), а блок wavfile получает NaN из PDU сокета или потока в помеченный блок потока?
  2. Возможно, данные искажаются, когда они попадают в Интернет таким образом, что пакеты не приходят ожидаемым образом - фрагментация? Я пробовал MTU 512, но проблема все еще существует. Trued MTU 10000: тот же результат.
  3. Возможно, я упускаю из виду простую ошибку использования / синтаксиса при построении моего потокового графа
  4. В приемнике wavfile есть ошибка, и она должна изящнее обрабатывать отсутствие данных.

ОБНОВЛЕНИЕ 1: Зарегистрировано сообщение об ошибке в проекте gnuradio https://github.com/gnuradio/gnuradio/issues/1763

ОБНОВЛЕНИЕ 2: Блок сокета PDU, кажется, играет важную роль. Если я настрою параметр длины пакета потока в помеченный блок потока вместе с параметром MTU блока сокета PDU, я могу получить либо безошибочный поток с отброшенными пакетами (низкий MTU), либо мертвый поток с исключением NaN (высокий MTU) ).

Блок-схема сервера enter image description here

Блок-схема клиента (XYZ.com, конечно, не мой настоящий IP) enter image description here

WAV результат через Интернет (задержка 20-100 мс) enter image description here Этот wav-файл имеет размер 1 КБ и усекается, вероятно, одновременно с исключением, но точно сказать сложно.

WAV результат через локальный интерфейс (1 мс или меньше задержки) enter image description here Через локальный интерфейс клиент работает счастливо, пока я не остановлю его. Полученный сигнал соответствует ожидаемому. Одна небольшая вещь - заметить глючные первые несколько образцов? Не уверен, что это фактор. Возможно нет. Но данные являются ненужными в течение первых 10 мс или даже через локальный интерфейс.

...