Linux
Используйте udev для изменения параметра latency_timer.
В ubuntu создайте правило для /etc/udev/rules.d
для вашего устройства.Например, 99-xsens.rules
Создайте в этом файле правило, соответствующее вашему устройству, и укажите значение latency_timer.Например, для моего устройства это:
KERNEL=="ttyUSB[0-9]*", SUBSYSTEMS=="usb-serial", DRIVERS=="ftdi_sio", ATTR{device/latency_timer}="2"
Это заставляет устройство ждать более короткое время, прежде чем решить, что больше нет входящих данных для буферизации.В этом случае мое устройство перешло от ожидания 16 мс к ожиданию 2 мс.
Используйте, например, udevadm info -a -n /dev/ttyUSB0
, чтобы узнать, какие пары ключ-значение должны совпадать в вашем правиле.Есть некоторые хитрые вещи, о которых нужно помнить, но найти ресурсы для помощи во входах и выходах было легко, когда я знал, что использовать правила udev.
Вот хорошая справочная страница по написанию правил udev .Он старый, и синтаксис инструментов udev изменился, но концепции все еще действительны.
Windows
В Windows вы используете Device Manager->Ports->COM Port->Port Settings->Advanced->Latency Timer
.