Последовательный порт, возвращающий случайные ошибки на клиенте Wyse
469
Big EMPin
Мы тестируем новый клиент Wyse (модель Z90D7), который имеет последовательный порт для подключения к ПК. У нас есть внешний клиент, который использует выделенное оборудование, но для тестирования мы используем ПК. Мы запускаем приложение C # на клиентах через Citrix. Когда мы запускаем приложение, которое используем на нашем старом оборудовании Wyse, все работает без ошибок. Однако на новом оборудовании последовательный порт работает примерно раз в 10 попыток. В остальное время он выдаст либо ошибку переполнения, ошибку четности, либо ошибку RXOver.
Я проверил через логирование, что порт действительно открывается и несколько команд выполняются после того, как он открывается. Однако случайные ошибки происходят еще до того, как могут быть переданы какие-либо фактические данные. Я читал во многих местах, что это может быть проблемой с буфером, однако я не видел ни одного сообщения, в котором бы упоминались ошибки, возникающие до получения данных, поэтому я не совсем уверен.
Я также попытался использовать рукопожатие и большие буферы для чтения / записи без удачи. Я попробовал новый кабель и второй COM-порт на этом устройстве, тоже не повезло. Наши настройки по умолчанию:
9600 бод, четная четность, 8 бит данных, 1 стоповый бит
Учитывая, что это работает на Citrix, мы также должны запустить показанные здесь команды net use, прежде чем что-либо делать. В противном случае последовательное соединение всегда говорит, что оно подключено, и не получает никаких данных (это также происходит на старом оборудовании). Точная команда, которую мы выполняем (с измененным именем приложения, конечно):
net use com1 /DELETE net use com2 /DELETE net use com1: \\client\com1: net use com2: \\client\com2: start /d "D:\myapp" MyApplication.exe
Кто-нибудь, кто имел дело с последовательными портами, когда-либо слышал об этих трех чередующихся ошибках? Есть ли что-нибудь кроме неисправного порта (или, скорее, двух неисправных портов), которое могло бы вызвать это? Я думаю, что размер аппаратного буфера может быть проблемой, но не могу найти способ преодолеть это.
Все ошибки, кажется, говорят о том, что данные не движутся, и в обоих направлениях. RXOver недостаточно быстро очищает приемный буфер. Переполнение - драйвер последовательного порта недостаточно быстро очищает буфер отправки чипа. Я не уверен, что существует способ увеличить размер аппаратного буфера. Буфер Windows может быть увеличен с помощью API, но драйвер может его игнорировать. Я бы попробовал больше оборудования, чтобы лучше понять проблему, может быть, проблему совместимости, но у меня нет прямого опыта работы с последовательными портами.
harrymc 6 лет назад
1
https://www.stratusengineering.com/5-common-serial-port-problems/
harrymc 6 лет назад
0
1 ответ на вопрос
1
harrymc
Все ошибки, кажется, говорят о том, что данные не движутся, и в обоих направлениях.
RXOver недостаточно быстро очищает приемный буфер. Переполнение - драйвер последовательного порта недостаточно быстро очищает буфер отправки чипа.
Я не уверен, что существует способ увеличить размер аппаратного буфера. Буфер Windows может быть увеличен с помощью API, но драйвер может его игнорировать.
Я предлагаю попробовать больше оборудования, чтобы лучше понять проблему, возможно, проблему совместимости с тестовым компьютером.
Неверные параметры связи Оба устройства должны быть настроены с одинаковыми параметрами связи, включая скорость передачи, четность, количество битов данных и количество стоп-битов.
Неверный последовательный кабель
Bad Serial Cables
Неисправная проводка
До того, как я это опубликовал, я исходил из предположения, что есть неверные параметры. При моих параметрах по умолчанию 9600-E-8-1 и отсутствии рукопожатия у меня был ~ 25% успеха. Я перепробовал все возможные комбинации параметров по умолчанию, которые допускает устройство Wyse, и лучшая конфигурация 1200-E-8-1 с подтверждением связи все еще работает только в ~ 75% времени. Если я вручную пытаюсь установить скорость передачи ниже 1200, он перестает работать. Хотя я не смог найти рабочий набор параметров, ваша информация была по крайней мере полезной. Поэтому я наградил тебя за вознаграждение. Спасибо за вашу помощь. Время попробовать различное оборудование.
Big EMPin 6 лет назад
0