监视已经用java打开的串口

时间:2012-04-26 12:44:23

标签: java serial-port

我正在监控com端口并获取可用的数据,该端口正在被另一个程序使用,因此可以监控端口而无需打开它 这是代码

package comtest;

import javax.comm.*;
import java.io.*;

public class PortTyper {

    public static void main(String[] args) {

        try {
            CommPortIdentifier com =
                    CommPortIdentifier.getPortIdentifier("COM2");

            CommPort thePort = com.open("port", 10);

            CopyThread output = new CopyThread(thePort.getInputStream(),
                    System.out);

            output.start();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

class CopyThread extends Thread {

    InputStream theInput;
    OutputStream theOutput;


    CopyThread(InputStream in, OutputStream out) {
        theInput = in;
        theOutput = out;
    }

    @Override
    public void run() {

        try {
            byte[] buffer = new byte[256];
            while (true) {
                int bytesRead = theInput.read(buffer);
                if (bytesRead == -1) {
                    break;
                }
                theOutput.write(buffer, 0, bytesRead);
            }
        } catch (IOException e) {
            System.err.println(e);
        }
    }
}

所以我可以看到没有

的数据来到COM2
CommPort thePort = com.open("port", 10);

由于

2 个答案:

答案 0 :(得分:2)

如果串口被其他程序打开,则无法监控串口,因为串口无法同时打开2次。

答案 1 :(得分:-1)

您可以使用PortMon等软件手动尝试监控串口。

但是此软件仅在Windows NT之前可用。