Chào buổi sáng,RXTX không thể liệt kê hoặc tìm các cổng trong các cửa sổ 7 64 bit
Tôi gặp sự cố khi sử dụng/hoặc cài đặt rxtx trên windows 7 64 bit. Tôi đã làm việc với nó trước đây trên một hệ thống XP x86 chiến thắng và không có vấn đề gì. Kể từ khi cài đặt lại hệ thống mới này vì lý do nào đó, rxtx không thể định vị bất kỳ cổng nào. Tôi đã thử cài đặt rxtx, thư viện gốc 64 bit của Cloud Hopper và xóa tất cả các tệp rxtx và bắt đầu từ đầu. Đã tìm thấy RXTXcomm.jar và tôi có thể duyệt các gói trong NetBeans nhưng việc triển khai có vẻ bị hỏng hoặc không tìm thấy.
Dòng này thất bại khi thực hiện, mỗi lần:
comPort = "COM1";
portId = CommPortIdentifier.getPortIdentifier(comPort);
và ném một NoSuchPortException.
Liệt kê các cổng nối tiếp bằng cách sử dụng tính năng này không tạo ra gì.
Enumeration ports = CommPortIdentifier.getPortIdentifiers();
String portArray[] = null;
while (ports.hasMoreElements()) {
CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
System.out.println(port.getName());
}
Tôi đã kiểm tra các cổng nối tiếp sẵn có tại thời điểm này, tôi tự hỏi liệu các thư viện gốc có bị hỏng cho windows 7 64 bit không.
Có ai đã sử dụng thành công RXTX 2.2pre2 trong cửa sổ 7 64 bit không?
phần mã vi phạm trong xây dựng:
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;
}
}
cả hai công cụ 'SerialControl' và CommPortIdentifier # getPortIdentifiers()' hoạt động từ Eclipse và dòng lệnh – GrahamA
Một chút followup cho những người có thể gặp phải điều này, dự án của tôi đã được nhập từ môi trường Windows XP, xây dựng lại chúng trong Windows 7 sửa chữa bất cứ vấn đề gì. – darkhelmet