RXTX виртуальный последовательный порт прочитал проблему

StackOverflow https://stackoverflow.com/questions/3229802

  •  14-09-2020
  •  | 
  •  

Вопрос

Фон: Windows Server 2003 R2, Wire Service Virtual Serial Port создан с программным обеспечением RealPort, Последовательный порт, сконфигурированный как COM5, 9600 Baud, 8 битов данных, без битов четности, 1 секундочковой бит, без контроля потока, Использование RXTX 2.1-7.

COM5 PORT COM5, последовательный порт создан с использованием метода Portid.Open, а параметры порта и элемент управления потоком установлены для соответствия настройкам драйвера устройства выше. Я получаю InterialPort Intupstream и оберните его в InposeStreamreader, чтобы я мог контролировать входную кодировку. Кодировка по умолчанию, конечно, CP1252 Я прочитал, что если вы используете 8 битов данных, кодировка должна быть ISO-8859-1 AKA Latin1. и я использую метод INPUTSTREAMREADER: int c= isr.read (); В то время как цикла в случае serialport.event.data_available Распечатывают целое число C и его отбрасывают на символ ((CHAR) C); Проблема в том, что числа и полученные персонажи смещены слишком высоки (диапазон 135 - 250) Сообщения все заканчиваются «Все права защищены)», а последние символы в каждом сообщении одинаковы. Однако смещение не соответствует характеру к характеру. Попробовали другие кодировки: UTF8 / UTF-8 Сдвиньте цифры еще выше. Как и ASCII / US-ASCII. CP1252 сдвигает числа к диапазону 130 - 350, за исключением 3 символов, которые смещены на 65533, 8222 и 8240. ПРИМЕЧАНИЕ. Использование InputstreamReader.GetEncoding () UTF8 и UTF-8 - UTF8 и ASCII и US-ASCII являются ASCII.

Есть ли другие кодировки, которые я должен попробовать? Кто-нибудь еще видел такого рода вещи?

Это было полезно?

Решение

Я делаю почти то же самое.9600 BAUD, 8n1 (8 битов данных, нет четности, 1 остановок), и у нас нет проблем с изменением персонажа.Мы даже не устанавливаем кодировку в любом месте.

Наш входной поток просто ввода ввода типа, и он установлен с SerialPort.getInputStream ();

Попробуйте вернуться от Inputstreamreader и просто используя простой «вход».Кодировка должна заботиться о себе.

Надеюсь, что это помогает каким-то образом,

- gmale

Другие советы

У

есть два из портов проводов.Я один, который я разместил о оказании, оказался конфликтом между конфигурацией аппаратного обеспечения в TCP к последовательному устройству под названием Digi.Я смог исправить проблему на этом порту, изменив последовательные параметры COM5 до 9600,7,1,0,0,0.Переключение значений было связано с использованием 8 бит данных VS 7. Это, конечно, означало, что мне пришлось изменять параметры порта в код, чтобы соответствовать.Ваш правильный в том, что читатель был не нужен, однако это помогло мне прийти к решению, наблюдая за изменением смещения с кодировкой, пока оно не ошеломлено, что меньшее количество битов данных также будет иметь тот же эффект.

Теперь я ищу магию на втором порту.

Настройки второго порта составляли 1200,8,1,0,0, используя 9600, вызванные в основном 0 с 128S.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top