Поиск строки для динамического адресации последовательного порта

1

У меня есть приложение, разработанное на Java, и второе в разработке в Ruby on Rails, которое требует подключения к Arduino по последовательной связи. Хотя я могу ввести строку на моем собственном компьютере для адресации правильного последовательного порта, строка меняется в зависимости от того, какой порт USB я использую, что заставляет меня думать, что было бы лучше, если бы пользователь мог выбрать правильный последовательный порт из тех, которые отсканированы из списка на своих компьютерах, а не из одного предопределенного мной. У кого-нибудь есть стратегия, которую я могу использовать, чтобы позволить пользователю сканировать свой компьютер для всех последовательных портов и выбрать правильный из массива/списка, либо в Java, либо Ruby on Rails?

Теги:
serial-port

1 ответ

0
Лучший ответ

Из списка портов:

import java.util.Enumeration;

import javax.comm.CommPortIdentifier;

/**
 * List the ports.
 * 
 * @author Ian F. Darwin, http://www.darwinsys.com/
 * @version $Id: CommPortLister.java,v 1.4 2004/02/09 03:33:51 ian Exp $
 */
public class CommPortLister {

  /** Simple test program. */
  public static void main(String[] ap) {
    new CommPortLister().list();
  }

  /** Ask the Java Communications API * what ports it thinks it has. */
  protected void list() {
    // get list of ports available on this particular computer,
    // by calling static method in CommPortIdentifier.
    Enumeration pList = CommPortIdentifier.getPortIdentifiers();

    // Process the list.
    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);
      }
    }
  }
}
  • 0
    Этот код - то, что я искал, однако объект Enumeration не заполняется элементами (метод getPortIdentifiers возвращает пустое Enumeration). есть идеи?
  • 0
    Хм. Работает здесь по моде. Этот ноутбук утверждает, что имеет два параллельных порта ...: $ java Порт CommPortLister LPT1 - это параллельный порт: javax.comm.CommPortIdentifier@11d50c0 Порт LPT2 - это параллельный порт: javax.comm.CommPortIdentifier@e53b93 Ошибка 2: открытие ключа реестра HARDWARE \ DEVICEMAP \ SERIALCOMM
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню