/ / Java Comm порт на Windows - Автоматично откриване на портове - java, windows, serial-port, jssc

Порт Java Comm в Windows - Автоматично откриване на портове - java, windows, serial-port, jssc

Разработвам приложение, което трябва да бъдеспособни да комуникират с устройства през Serial Comms на Windows OS. Приложението е написано на Java. Аз използвам библиотеката jSSC. (Javax.comm има проблеми и RxTx няма поддръжка за Java 8 освен неофициална актуализация) Устройствата могат да се свързват директно към компютъра посредством сериен порт или алтернативно да използват преобразувател от USB към сериен.

Моят въпрос: COM пристанищата на прозорците са динамични. Това поражда проблем за определяне кой комутационен порт да се свърже. Има ли начин да се разбере автоматично кой COM порт да се свърже?

Досега единствените решения, които успяхда излезе с това включва сканиране на всички COM портове за активни портове, записване на този списък и след това искане от потребителя да вкара устройството и да извърши друго сканиране - допълнителният COM порт ще бъде този, с който да се свърже.

Алтернативно, устройството ще отговори на aспецифичен "идентификационен" пакет: мога да отварям всеки COM порт и да изпращам този пакет и да оценявам отговора. Това има опасност другите устройства да бъдат отвлечени за кратък период от време, което не е идеално.

Отговори:

0 за отговор № 1

За откриване на портове трябва да се извикват динамично специфични функции на операционната система. SCM библиотеката осигурява API за динамично откриване на пристанища.

try {
scm.registerUSBHotPlugEventListener(this, PRODUCT_VID, PRODUCT_PID, null);
if(scm.isUSBDevConnected(PRODUCT_VID, PRODUCT_PID, null)) {
USBhotplugEventQueue.offer(SerialComUSB.DEV_ADDED);
}
} catch (Exception e) {
e.printStackTrace();
}