Подтвердить что ты не робот

Java-последовательная связь в Windows

Я искал Java API, который может связываться с последовательными устройствами в Windows/Win32, но многие из API, которые я проверил, либо для Linux, либо слишком устарели, либо просто были плохими критиками.

Может кто-нибудь порекомендовать мне, что они пробовали или знают о том, что легко реализовать в Windows XP?

4b9b3361

Ответ 1

Я начал искать то же самое пару недель назад, и я был очень доволен многоплатформенной библиотекой RXTX, поэтому далеко. Работает с любыми Windows, Linux и OS X. Имеет очень простой и понятный API.

edit: RXTX также является открытым исходным кодом.

Ответ 2

Без резервирования я рекомендую Java Serial Port от serialio.com; У меня были серьезные проблемы с стабильностью с серийным пакетом Sun, IBM и RxTx. SerialPort имеет твердость в производстве 24/7 в течение более 5 лет.

Они поддерживают стандартный API-интерфейс Java, а также собственную альтернативную проприетарную технологию. Я бы придерживался стандартного API, хотя, если вам действительно не нужно что-то, что у них есть, то стандартного нет, просто чтобы ваши варианты открывались.

Ответ 3

Java известна своей колоссальной последовательной поддержкой ввода-вывода. На предыдущей работе мы попробовали как RXTX, так и SerialIO для приложения, которое передавало данные на 56 кбит/с с сервоконтроллера Teknic и обнаружило, что они немного поглощают процессор. Возможно, для приложений, которые не требуют непрерывной потоковой передачи из последовательного порта, обе эти библиотеки хороши, но мы не считаем, что потоковый ввод-вывод из последовательного порта должен потреблять 15-30% когда он очень необходим для других потоков в JVM, которые должны быть отзывчивыми.

Вместо этого мы создали сервер на С++, который бы считывал поток данных из последовательного порта серво, преобразовывал/пакетировал его и отправлял в наше приложение Java в XML через соединение сокета. Загрузка ЦП на сервере последовательного ввода-вывода в С++? Едва ползет на 1% в худшем случае.

Есть определенные вещи, которые Java делает хорошо - серийный ввод-вывод, на мой взгляд, не один из них, в зависимости от типа приложения...

В конечном счете, вы должны взять даже то, что я сказал с солью, и попробуйте оба: RXTX и SerialIO (который дешевый, например, 50 долларов или около того для версии java), и если они отвечают вашим потребностям, идите с ним, Лично я придерживаюсь SerialIO, потому что он поддерживается и активно работает. RXTX, не так много.

Ответ 4

Я использовал PureJavaComm последние пять лет или около того. Он активно поддерживается и представляет собой чистую реализацию Java (через JNA). RXTX подвела меня из-за отсутствия обслуживания и многочисленных тонких проблем.

Ответ 5

Я написал библиотеку Java с открытым исходным кодом, потому что ни один из существующих не соответствует моим потребностям (устаревший, закрытый источник, трудно модифицировать, не поддерживать,...).

Он называется JSerial, он лицензирован MIT, и вы можете узнать больше здесь: https://github.com/thibautd/JSerial!

В настоящее время поддерживается только Windows, но у меня есть планы по поддержке Linux. Вы можете легко изменить исходную часть с помощью новейшей Visual Studio, если вам нужно.