#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