2014-01-14 5 views
1

Я искал код, который может представлять собой последовательные порты, которые у меня есть. Я нашел этот:Найти последовательные порты

Enumeration pList = CommPortIdentifier.getPortIdentifiers(); 

// Process the list.CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("/dev/tty1"); 
while (pList.hasMoreElements()) { 
    CommPortIdentifier cpi = (CommPortIdentifier) pList.nextElement(); 

    System.out.print("Port " + cpi.getName() + " "); 
    if (cpi.getPortType() == CommPortIdentifier.PORT_SERIAL) { 
    System.out.println("is a Serial Port: " + cpi); 
    } else if (cpi.getPortType() == CommPortIdentifier.PORT_PARALLEL) { 
    System.out.println("is a Parallel Port: " + cpi); 
    } else { 
    System.out.println("is an Unknown Port: " + cpi); 
    } 
} 

но он не работает, кажется, что у pList нет элементов. Возможно, у моего компьютера нет последовательных портов, в этом случае, как я могу проверить его?

+0

Возможный дубликат [Как найти COM-порт через CommPortIdentifier] (http://stackoverflow.com/questions/14786432/how-to-find-a-com-port-via-commportidentifier) ​​ – lurker

+0

Как вы Знать pList нет элементов? Вы используете отладчик? Если вы собираетесь основываться исключительно на операторах печати, есть ли исключения? – bblincoe

ответ

2

Если вы используете библиотекуRxTx, следующие должны предоставить список доступных COM-портов на вашем компьютере:

List<String> list = new ArrayList<>(); 
    Enumeration thePorts = CommPortIdentifier.getPortIdentifiers(); 
    while (thePorts.hasMoreElements()) 
    { 
    CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement(); 
    switch (com.getPortType()) 
    { 
     case CommPortIdentifier.PORT_SERIAL: 
      list.add(com.getName()); 
    } 
    } 

Вы можете проверить доступные COM-порты в Windows, с помощью устройства менеджер. Перейдите к Ports (COM & LPT). На большинстве настольных компьютеров доступно COM1. Другие устройства, такие как USB Virtual COM-порты, также будут отображаться в списке, если они существуют.

RXTX имеет довольно конкретные инструкции по установке. Эти инструкции можно найти here.

Как правило, необходимо выполнить следующие действия:

  1. копии на rxtxSerial.dll и rxtxParallel.dll к вашему JRE/bin каталогу. В Windows это будет C:\Program Files (x86)\Java\jre7\bin или что-то подобное на основе вашего компьютера.
  2. Затем вы должны скопировать файл JAR rxtx в C:\Program Files (x86)\Java\jre7\lib\ext.

Примечание: Если вы работаете в IDE, как Netbeans, возможно, придется поместить эти файлы под JDK/jre.

+0

Большое спасибо !!!! есть самая красивая неделя! :), еще один маленький вопрос, что каждый компьютер имеет эти порты, тогда ноутбуки? – user3194834

+0

Добро пожаловать - Добро пожаловать в СО! Если этот ответ сработал для вас, выберите его в качестве ответа на вопрос. – bblincoe

+0

'COM1' обычно относится к физическому порту на компьютере (в отличие от виртуального COM-порта USB). Если компьютер имеет физический последовательный порт, он должен иметь 'COM1', независимо от того, есть ли его ноутбук или рабочий стол. – bblincoe

Смежные вопросы