Linux / Qt автоматически определяет скорость передачи? - PullRequest
0 голосов
/ 30 мая 2018

Я нахожусь в ситуации, когда мы подключаемся к устройству, которое может говорить на разных скоростях передачи в зависимости от модели.Некоторые из них могут быть нестандартными, например, 10000, но это еще одна проблема для другого дня.

В идеале я мог бы использовать Qt для автоматического определения скорости передачи, но из моих исследований это, вероятно, невозможно по нескольким причинам, с которыми я согласен.Тем не менее, существует ли какой-либо метод на основе Linux для автоматического определения скорости передачи данных подключенного устройства?Даже стороннего приложения с открытым исходным кодом может быть достаточно.

1 Ответ

0 голосов
/ 31 мая 2018

Драйверы последовательного интерфейса Linux не поддерживают автободинг, потому что большинство аппаратных средств не поддерживает его, потому что нет соглашения о том, как он может работать.Это сильно зависит от приложения.

Если вы используете последовательные адаптеры FTDI, то большинство из них поддерживают режим битового взрыва, и вы должны использовать их в качестве цифрового осциллографа в таком режиме, чтобы получить поток битов, которыйочень простое автоматическое добавление.

На других устройствах самый простой способ выполнить автоматическую передачу - установить в 2-3 раза максимальную ожидаемую скорость передачи, а затем обрабатывать входные данные как цифровой осциллограф с разбивкой по частям.биты ошибок и использовать эвристику для определения скорости передачи.Это удастся в удивительном количестве случаев, но вы должны правильно настроить статистическую модель источника данных.Я не знаю каких-либо готовых решений для этого.

Может потребоваться дополнительная поддержка ядра, чтобы улучшить временную метку ввода от UART (аппаратного или USB) и таким образом уменьшить неопределенность в ваших данных итаким образом, количество выборок, которое вам нужно взять для определения скорости передачи.

Некоторые из них могут быть нестандартными, например, 10000, но это еще одна проблема для другого дня.

Нет, важная персона.Я понял это 16 лет назад :) Это ответ, который вы ищете .Если вы думаете, что API болен, как у очень, очень больного, то вы были бы правы.

...