Как инициализировать последовательный порт, используя Java? - PullRequest
4 голосов
/ 29 октября 2011

Я знаю, что этот вопрос задавался много раз, и я просмотрел 20 лучших результатов поиска от Google, и все еще не могу заставить свой код работать.

portList = CommPortIdentifier.getPortIdentifiers();
System.out.println("portList... " + portList);
while (portList.hasMoreElements()) {
    portId = (CommPortIdentifier) portList.nextElement();
    if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
        System.out.println("port identified is Serial.. "+ portId.getPortType());
        if (portId.getName().equals("COM2")) {
            System.out.println("port identified is COM2.. "+ portId.getName());  
            SimpleRead reader = new SimpleRead();
        } else {
            System.out.println("unable to open port");
        }
    }else{
        System.out.println("pordId.PortType = "+portId.getPortType());
        System.out.println("CommPortIdentifier.PORT_SERIAL = "+CommPortIdentifier.PORT_SERIAL);
    }
}

Я получаю вывод

run:

portList ... javax.comm.CommPortEnumerator@18020cc СТРОИТЬ УСПЕШНО (общее время: 0 секунд)

Кто-нибудь знает, что не так? почему portId не имеет больше элементов? программа не входит в цикл while.

Заранее спасибо за чтение этого поста.

1 Ответ

2 голосов
/ 31 октября 2011

Мне удалось решить проблему. Мне нужно скопировать файлы в следующие места для работы javac.comm

1) win32com.dll to directory : jdk1.7.0/bin
2) javax.comm.properties to directory : jdk1.7.0/jre/lib
3) comm.jar to directory : jdk1.7.0/lib

теперь вывод

portList... javax.comm.CommPortEnumerator@9173ef
port identified is Serial.. 1
port identified is CO11.. COM11
In SimpleRead() contructor
Serial Port.. COM11
Input Stream... com.sun.comm.Win32SerialInputStream@95c083
................
port identified is Serial.. 1
unable to open port
pordId.PortType = 2
CommPortIdentifier.PORT_SERIAL = 1
pordId.PortType = 2
CommPortIdentifier.PORT_SERIAL = 1
ending main
In run() function 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...