Нужна помощь с отставанием команды Linux stty на Serial-USB

Я использую Raspberry Pi с последовательным USB-соединением, поэтому Raspberry Pi имеет USB-кабель, подключенный к какой-то аппаратной плате освещения.

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

Я установил параметры, необходимые для работы оборудования Serial-USB:

stty -F /dev/ttyUSB0 38400

На окнах, у которых нет лагов - использую:

mode com3: BAUD=38400 PARITY=N data=8 stop=1 xon=off

Даже если я установлю другие аналогичные параметры в Linux, все равно будут задержки. - Итак, вопрос для команды stty: есть ли какие-то параметры или настройки, которые я могу установить на USB-порте, чтобы мгновенно завершить отправку последовательной команды и разрешить отправку нескольких мгновенных последовательных команд. Так что, если 3 отправлены вместе, он либо ставит их в очередь, либо разрешает все 3 последовательно.

Я просмотрел «man stty» и попробовал несколько вариантов, но безрезультатно... поэтому ищу опытную помощь для решения.

Или есть что-то альтернативное stty, которое можно использовать, что будет работать быстрее или лучше для большого количества команд Serial-USB, отправляемых одновременно.

Кстати, я использую PHP для отправки последовательной команды, например:

file_put_contents("/dev/ttyUSB0", chr(6).chr(255).chr(0).chr(0).chr(0).chr(5));

Я думаю, что это не проблема, любая помощь приветствуется. Спасибо.


person aku foo    schedule 14.09.2015    source источник


Ответы (1)


Я использую ту же настройку: Raspberry Pi B+ и устройство USB-2-serial. У меня была та же проблема: сбой нескольких команд в одной команде stty. Вместо этого я использую последовательность одиночных команд 'stty', разделенных периодом сна (сотни миллисекунд). Это не красиво, но функционально - инициализация происходит только один раз после запуска.

person pat29    schedule 20.11.2015