
Мой клиент хочет убедиться, что Linux-компьютер, над которым я работаю, может обрабатывать прием данных со скоростью 115200 бит/с через последовательный порт без потери данных.
Есть ли какое-либо программное обеспечение для этого или мне придется разрабатывать его самостоятельно?
решение1
сокатможно использовать последовательные порты. Как только этот канал установлен, вы можете передавать в него все, что захотите, с любой скоростью. Простейшим тестом будет сделать что-то вроде:
pv /dev/zero | socat <options>
pv покажет вам скорость, с которой вы передаете данные.
решение2
Вот архаичная программа тестирования, в которой упоминается тестирование последовательных линий (и каждый раз, когда я читаю эту часть, я задаюсь вопросом, кто вообще мог это сделать): http://www.scsifaq.org/RMiller_Tools/dt.html
но на самом деле все, что вам нужно, это программа, которая может генерировать какие-то данные, а затем проверять, были ли они получены правильно... вы могли бы просто передать какой-нибудь большой файл и затем проверить его целостность... (а если вы передаете данные через последовательный порт и не включили управление потоком, они будут передаваться именно с той скоростью, на которую настроен порт, или будут повреждены, так что невозможно, чтобы производительность только ухудшилась)
решение3
Следующий инструмент может оказаться вам полезным (я использовал его именно для этой цели): https://github.com/cbrake/linux-serial-test
Если говорить конкретно, вы можете нагрузить последовательный порт с помощью следующей команды:
linux-serial-test -s -e -p /dev/ttyS2 -b 115200
Используйте с последовательным петлевым кабелем. Он будет сообщать обо всех ошибках, которые он видит (-e), и о текущем журнале каждые 5 секунд или около того (-s), если это необходимо.