Java InputStream пропускает данные

#java #io #serial-port #inputstream #rxtx

#java #io #последовательный порт #входной поток #rxtx

Вопрос:

Я хочу считывать данные с последовательного порта, используя библиотеку RXTX. Пока это работает нормально. У меня есть прослушиватель событий, который выполняется, когда данные InputStream доступны.

Проблема: InputStream пропускает некоторые байты каждые несколько сотен байт. Я думал, что нашел решение, создав BufferedInputStream. Теперь данные теряются гораздо реже, но это все еще иногда случается.

Параметры последовательного порта: Скорость передачи данных: 921600, биты данных: 8, Четность: отсутствует, Стоп-биты: 1, Подтверждение связи: отсутствует

Мне нужны 100% полные данные. Как я могу обеспечить это в Java?

Комментарии:

1. используете ли вы UDP в качестве протокола или TCP. TCP — безопасное соединение. Поскольку ваш параметр «Рукопожатие» говорит «нет», я делаю вывод, что вы не используете TCP.

2. На самом деле я не уверен, что это значит. Я знаю теоретическое определение UDP и TCP, но я понятия не имею, как реализовать TCP в моем приложении.

3. Никаких других рекомендаций?

4. Я не очень разбираюсь ни в сериалах, ни в библиотеке RXTX. Другой возможностью потери данных может быть ваш outputstream (не уверен, что у вас есть один 0.0). Выходной поток должен быть сброшен. Бывают случаи, когда пакеты данных слишком малы для отправки, поэтому вам необходимо очистить свой outputstream