Jump to content

    

Принять данные через COM порт и сохранить в файл

Скорость передачи 2Mb (2000000/8-N-1).

Данные идут пачками по 2048 байт каждые 15 ms.

Общая длина всей посылки 512MB.

Есть какая либо прога на PC под Windows32bit?

Share this post


Link to post
Share on other sites

Teraterm, например (хотя какая-то из старых версиях на больших объемах у меня падала, но это было давно и, наверное, давно залечено). Или смастерить простенький скрипт на vbs, используя axserial для работы с портом.

Share this post


Link to post
Share on other sites
2 часа назад, zombi сказал:

Есть какая либо прога на PC под Windows32bit?

Любой терминал с возможностью записи в файл.

Например поставить PComm Lite отсюда: https://www.moxa.com/product/download_pcommlite_info.htm

Там в составе будет терминалка mxterm.exe. Она умеет писать бинарный лог.

 

23 минуты назад, rx3apf сказал:

Teraterm, например (хотя какая-то из старых версиях на больших объемах у меня падала, но это было давно и, наверное, давно залечено). Или смастерить простенький скрипт на vbs, используя axserial для работы с портом.

Teraterm вроде в заголовок лог-файла дописывает что своё?

Ещё некоторые терминалки могут делать преобразование символов. Таким образом дамп будет неверным. 

Share this post


Link to post
Share on other sites

Нет, у меня по крайней мере ничего лишнего не писал.

Share this post


Link to post
Share on other sites
44 minutes ago, zombi said:

Скачал. Оказалось что скорость больше чем 921600 бод установить не даёт. Дальше не пробовал.

Teraterm дает любую скорость установить. Смотрите только чтобы ваш хост физически такую поддерживал.
Я в Teraterm спокойно 3Mb пропускаю. 

 

Share this post


Link to post
Share on other sites

А где вы видели мамку или конвертер USB <-> COM, поддерживающий больше, чем 921600 ? Я таких пока не видел. Хотя из этого еще не следует, что их не может быть ...

Share this post


Link to post
Share on other sites
5 minutes ago, AlexandrY said:

Teraterm дает любую скорость установить. Смотрите только чтобы ваш хост физически такую поддерживал.
Я в Teraterm спокойно 3Mb пропускаю. 

 

Скачал teraterm. Но скорость тоже максимум 921600 предлагает.

Или я не там пытаюсь скорость выставить?

teraterm.jpg

Share this post


Link to post
Share on other sites

В окне выбора скорости можно не только выбирать из набора скоростей, но и вписать значение. Если, конечно, для выбранного устройства такая скорость будет возможна.

Share this post


Link to post
Share on other sites
7 minutes ago, kovigor said:

А где вы видели мамку или конвертер USB <-> COM, поддерживающий больше, чем 921600 ? Я таких пока не видел. Хотя из этого еще не следует, что их не может быть ...

FT232RL.

1 minute ago, rx3apf said:

 но и вписать значение.

Едрить колотить. А я и не догадался. 

Share this post


Link to post
Share on other sites
12 минут назад, kovigor сказал:

 Хотя из этого еще не следует, что их не может быть ...

FT232 - до трех мегабит. CP2104 - до двух.

Edited by rx3apf

Share this post


Link to post
Share on other sites

Запустил. Поток принимаю.

Я являюсь инициатором передачи.

Передаю разное количество блоков по 2048 байт каждый.

На общем объёме 2...5 MB уже наблюдаю потерю до нескольких сотен байт.

Т.е. после записи log файла его длина не кратна 2048 байтам.

А мне надо принять 512 MB !!!

Share this post


Link to post
Share on other sites
5 hours ago, zombi said:

Запустил. Поток принимаю.

Я являюсь инициатором передачи.

Передаю разное количество блоков по 2048 байт каждый.

На общем объёме 2...5 MB уже наблюдаю потерю до нескольких сотен байт.

Т.е. после записи log файла его длина не кратна 2048 байтам.

А мне надо принять 512 MB !!!

Не знаю, как в teraterm, но во многих терминалках настраивается объем буфера входящих сообщений и их количество. Попробуйте поиграться на умеренных числах там.

Share this post


Link to post
Share on other sites

Это потому что прием данных без коррекции ошибок.

Улучшайте условия передачи и приёма и м.б. вам повезёт.

 

А как насчёт другого порта и/или протокола?...

Share this post


Link to post
Share on other sites
7 hours ago, zombi said:

На общем объёме 2...5 MB уже наблюдаю потерю до нескольких сотен байт.

По умолчанию объем приемного буфера драйвера в Windows - это всего-навсего 4096 байт. Управление потоком обязательно нужно использовать, и не только в терминалке, но и в вашей программе. Включите аппаратное управление потоком (т.е., RTS/CTS) ...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now