У меня есть приложение, разработанное на Java, и второе в разработке в Ruby on Rails, которое требует подключения к Arduino по последовательной связи. Хотя я могу ввести строку на моем собственном компьютере для адресации правильного последовательного порта, строка меняется в зависимости от того, какой порт USB я использую, что заставляет меня думать, что было бы лучше, если бы пользователь мог выбрать правильный последовательный порт из тех, которые отсканированы из списка на своих компьютерах, а не из одного предопределенного мной. У кого-нибудь есть стратегия, которую я могу использовать, чтобы позволить пользователю сканировать свой компьютер для всех последовательных портов и выбрать правильный из массива/списка, либо в Java, либо Ruby on Rails?
Из списка портов:
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);
}
}
}
}