RXTX ne peuvent liste de, ou trouver des ports sous windows 7 64 bits

Bon matin,

Je vais avoir des problèmes à l'aide d'/ou de l'installation rxtx sur windows 7 64 bits. J'ai travaillé avec lui auparavant sur un x86 win XP et pas eu de problèmes. Depuis la réinstallation de ce nouveau système pour une raison quelconque rxtx est pas en mesure de localiser tous les ports que ce soit. J'ai essayé de la rxtx installer, Nuage de Hopper 64 bits natif de la bibliothèque et la suppression de toutes les rxtx fichiers et de partir de zéro. RXTXcomm.jar est trouvé et je peux parcourir les paquets dans NetBeans, mais la mise en œuvre semble être endommagé ou non trouvé.

Cette ligne échoue lors de l'exécution, à chaque fois :

comPort = "COM1";
portId = CommPortIdentifier.getPortIdentifier(comPort);

et jette un NoSuchPortException.

Liste des ports série à l'aide de ce produit rien.

Enumeration ports = CommPortIdentifier.getPortIdentifiers();
String portArray[] = null;
while (ports.hasMoreElements()) {
    CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
    System.out.println(port.getName());
} 

J'ai vérifié les ports série sont disponibles, de sorte à ce point, je me demandais si les bibliothèques natives sont tout simplement rompu pour windows 7 64 bits.

Quelqu'un a utilisé avec succès RXTX 2.2pre2 sous windows 7 64 bits?

Délinquance de la section de code dans le constructeur :

public SerialControl(String name, String comPort, int baudrate, int databits, String     parity, double stopbits) throws Exception {
int stop = 0;
int data = 0;
int par = 0;
this.name=name;
//Sanity checks and interpretation
if (baudrate > 115200 || baudrate < 300) {
System.err.println(name+": constructor(): Invalid baudrate "+baudrate);
throw new Exception("Invalid baudrate, " + baudrate);
}
if (databits >= 5 && databits <= 8) {
switch (databits) {
case 5:
data = SerialPort.DATABITS_5;
break;
case 6:
data = SerialPort.DATABITS_6;
break;
case 7:
data = SerialPort.DATABITS_7;
break;
case 8:
data = SerialPort.DATABITS_8;
break;
default:
System.err.println(name+": constructor(): Invalid data bits, switched " + databits);
throw new Exception("Invalid data bits, switched " + databits);
}
} else {
throw new Exception("Invalid data bits=" + databits);
}
if (stopbits >= 1.0 && stopbits <= 2.0) {
if (stopbits == 1.0) {
stop = SerialPort.STOPBITS_1;
} else if (stopbits == 1.5) {
stop = SerialPort.STOPBITS_1_5;
} else if (stopbits == 2.0) {
stop = SerialPort.STOPBITS_2;
} else {
System.err.println(name+": constructor(): Invalid stop bits, switched " + stopbits);
throw new Exception("Invalid stop bits, switched " + stopbits);
}
} else {
System.err.println(name+": constructor(): Invalid stop bits, switched " + stopbits);
throw new Exception("Invalid stop bits " + stopbits);
}
switch (parity) {
case "S":
par = SerialPort.PARITY_SPACE;
break;
case "E":
par = SerialPort.PARITY_EVEN;
break;
case "M":
par = SerialPort.PARITY_MARK;
break;
case "O":
par = SerialPort.PARITY_ODD;
break;
case "N":
par = SerialPort.PARITY_NONE;
break;
default:
System.err.println(name+": constructor(): Invalid parity, switched " + parity);
throw new Exception("Invalid parity, switched " + parity);
}
//Inits
//Try to find the port specified
try {
portId = CommPortIdentifier.getPortIdentifier(comPort);
} catch (Exception e) {
System.err.println(name+": constructor(): No such port \"" + comPort+"\"");
e.printStackTrace();
throw e;
}
//Open the port
try {
serialPort = (SerialPort) portId.open("User Port", 2000);
} catch (PortInUseException e) {
System.err.println(name+": constructor(): Could not open port " + comPort);
throw e;
}
//Grab the input stream
try {
inputStream = serialPort.getInputStream();
} catch (IOException e) {
System.err.println(name+": constructor(): Could not get input stream for " + comPort);
throw e;
}
//Set the serial port parameters, no flow control
try {
serialPort.setSerialPortParams(baudrate, data, stop, par);
serialPort.setDTR(false);
serialPort.setRTS(false);
} catch (UnsupportedCommOperationException e) {
System.err.println(name+": constructor(): Error initializing " + comPort);
throw e;
}
}
les deux SerialControl et CommPortIdentifier#getPortIdentifiers()` travail de l'Éclipse et de la ligne de commande
Un peu de suivi pour les personnes qui peuvent souffrir de cela, mes projets ont été importés à partir d'un environnement windows XP, la reconstruction dans Windows 7 semblent avoir corrigé quel que soit le problème.

OriginalL'auteur darkhelmet | 2012-08-29