从串口读取数据

时间:2012-06-29 07:15:01

标签: java serial-port

我有一个要求,我必须读取串行端口上的数据流。我正在使用javax.comm API。

当我尝试列出端口时,使用下面的代码我从来没有得到任何端口列表。

portList = CommPortIdentifier.getPortIdentifiers();
System.out.println("start: "+portList.hasMoreElements());

返回false。

如果我遗失任何东西,有人可以帮助我吗?


我的PS2端口未列入清单。有没有其他方法列出PS2端口??

我的完整代码如下,

    while (portList.hasMoreElements()) {
       portId = (CommPortIdentifier) portList.nextElement();
       System.out.println("portid: "+portId.getName());
    }

输出

portid: COM1
portid: COM3
portid: LPT1

我的实际要求是读取USB端口上的数据。我在使用JUSB时遇到了问题而且没有用。所以我决定连接到USb转换器并读取串口。但是,市场上没有这种可转换的产品。

现在,考虑到另一项工作我能够获得PS2到USB转换器。如果你可以帮我列出使用Java的PS2端口并对它进行读/写或在Windows平台上为它建议一些API,那就太好了。

对此方面的任何帮助表示高度赞赏。

3 个答案:

答案 0 :(得分:2)

看看RXTX。 然后你可以使用类似的东西:

 CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("/dev/tty1");
 CommPort commPort = portIdentifier.open("owner-name", 2000);
 SerialPort serialport;
 if (commPort instanceof SerialPort) {
   serialPort = (SerialPort)commPort;
   serialPort.setSerialPortParams(rate, databits, stopbits, parity);
 }
 InputStream in = serialPort.getInputStream();
 OutputStream out = serialPort.getOutputStream(); 

答案 1 :(得分:0)

答案 2 :(得分:0)

我正在使用ubuntu而我的电脑没有任何串行/并行端口,但我需要开发它。

在这种情况下,您需要模拟此端口。

我的回答:

serial port identification with java on ubuntu