Я пытаюсь прочитать данные с последовательного порта Windows через Java. У меня есть библиотеки javax.comm, и я могу получить некоторые данные, но не правильные данные. Когда я читаю порт в байтовый массив и преобразовываю его в текст, я получаю серию символов, но не текстовую строку. Я попытался указать байтовый массив как UTF-8 и US-ASCII. Кто-нибудь знает, как извлечь из этого настоящий текст?
Вот мой код:
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
System.out.println("Reading from " + portId.getName() + ": ");
System.out.println("Read " + numBytes + " bytes");
}
System.out.println(new String(readBuffer));
System.out.println(new String(readBuffer, "UTF-8"));
System.out.println(new String(readBuffer, "US-ASCII"));
вывод первых трех строк не позволит мне копировать и вставлять (я предполагаю, потому что они не являются нормальными символами). Вот результат Hex:
78786000e67e9e60061e8606781e66e0869e98e086f89898861878809e1e9880
Я читаю с устройства Hollux GPS, которое выводит данные в строковом формате. Я знаю это наверняка, потому что я сделал это через C #.
Настройки, которые я использую для общения, которые, как я знаю, являются правильными по работе в приложении C #:
Скорость в бодах: 9600
Базы данных: 8
Стоп бит: 1
четность: нет