2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: Приём телефонных звонков на 3G роутер
Сообщение06.07.2019, 08:09 


07/10/15

2400
В общем добрался до настроек порта модема, по умолчанию там baurate=9600
На такой скорости передать голосовые данные физически невозможно (однако всё передаётся).
Попробовал увеличить. Получилось максимум до 921600. Всё так же работает, но всё равно шум этот самый есть, пропуски есть. Объём данных приходит примерно такой же (за тот же промежуток времени). Может даже, что все эти настройки фикция, и он всё время работает с одной baurate
Вот все доступные настройки порта
Изображение
Может кто знает, что ещё можно попробовать поменять?

Вместо TCP пробовал использовать протокол UPD, ошибок нет всё запускается, команды уходят, но назад из порта ничего не возвращается

 Профиль  
                  
 
 Re: Приём телефонных звонков на 3G роутер
Сообщение06.07.2019, 16:07 


07/10/15

2400
Измерил интервалы между считываниями, они оказались очень малыми, около 1 мкс. Видимо, считывания всё время происходили в момент записи буфера. Немного изменил алгоритм. Теперь он, после получения первого байта, ждет 30 мс. и считывает весь буфер. Так удаётся достичь достаточно больших интервалов между считаваниями. Можно полагать, что пакеты теперь читаются полностью. Для интереса, привожу результаты измерений:
Промежутки между пакетами:
Изображение
Размер пакетов:
Изображение
видно, что интервалы намного больше 20 мс, да и пакеты намного дольше 320 байт. В среднем, получается, что каждый раз считывается сразу по 3 пакета. Потерь данных при этом быть не должно. По отдельности 320 байтовые пакеты считывать не получается никак.

Сравнение длительности записи и объема данных показывает, что данных приходит больше чем нужно, при мерно на 20 - 40% (каждый раз по разному). Есть подозрение, что модем кроме голоса пишет в этот порт что то ещё. Возможно там проходит интернет трафик. Может кто знает, как его можно остановить на время разговора? я таких АT команд не нашел, но в программе Huawei для этого есть специальная кнопка, и во время разговора она сама разрывает интернет соединение.

Звук стал теперь лучше, уже отчетливо различаются слова, но шума, всё же, очень много, всё жужжит и трещит.

 Профиль  
                  
 
 Re: Приём телефонных звонков на 3G роутер
Сообщение07.07.2019, 14:29 


07/10/15

2400
В общем, удалось мне подключиться к модему на прямую. В Windows у него командный порт HUAWEI Mobile Connect - 3G PC Ul Interface (COM4), а порт для голосовых данных HUAWEI Mobile Connect - 3G Application Interface (COM5). AT - команды все работают, но почему то на запрос AT^CVOICE=? параметры звука не выводятся, ответ такой же как и на AT^CVOICE? Но это не суть важно. Главное, голос записался идеально. Ни шумов, не трескотни, ничего этого практически нет. Получается, пока передаётся по wi-fi что то происходит.
Что делать, пока не знаю. Модем в компе - это не вариант.

 Профиль  
                  
 
 Re: Приём телефонных звонков на 3G роутер
Сообщение08.07.2019, 17:26 


07/10/15

2400
После многочисленный экспериментов выяснилось следующее:
1. модем заполняет свой буфер на скорости 1843200 б/с (или 1800 кб/с),
2. объём буфера 512 байт
3. Временные интервалы между пакетами могут быть разными, размеры пакетов - тоже. 320 байт и 20 мс - это средние значения.

При нормальной работе, модем посылает 320 байтные пакеты каждые 20 мс. Но иногда, возникают задержки. В этом случае, чтобы компенсировать отставание, модем записывает в буфер уже не 320, а 512 байт. Потом следует пауза и новый пакет. В зависимости от отставания, он может быть 512, 128, 448, 256, 64, 384 и 192 байт. Чаще всего встречаются "довески" 128, 448 и 256. Потом, снова следуют пакеты по 320 байт, до новой задержки.

Чтобы избежать потерь данных, очевидно, размеры считываемых фрагментов должны быть соответствующими. Я использовал простой алгоритм чтения, ждущий момента поступления первого байта в буфер, после чего, ждущий ещё 3 мс (этого времени достаточно, чтобы полностью заполнить буфер) и считывающий всё содержимое буфера. Работает он нормально. Качество звука отличное. Размеры считываемых пакетов в точности равны указанным выше значениям.

При работе того же самого алгоритма через роутер такого уже не наблюдается. Размеры считываемых пакетов произврльные и часто содержат нечётное число байт. При этом, размеры пакетов могут быть больше 1000, например 1348. А это больше объёма буфера. Видимо, в роутере, данные из буфера модема предварительно куда то копируются, и непонятно каким способом. Что характерно, промежутки между пакетами примерно одинаковые, и составляют 40-50 мс. То есть это удвоенный интервал между пакетами в нормальном режиме. Объём данных, при это получается больше чем нужно.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group