0

javax.comm ライブラリから奇妙な結果が得られます。私はこのコンストラクタを実行しています:

SerialPort port;

public Scale(String porttotry) {
    CommPortIdentifier cpi = null;
    try {
        cpi = CommPortIdentifier.getPortIdentifier(porttotry);

        //Open Port and establish stream
        log.trace("Opening CPI: {}", cpi.getCurrentOwner());
        port = (SerialPort) cpi.open("My Application", 2000);
        log.trace("CPI opened");

        //... configuration stuff
    } catch (PortInUseException ex) {
        log.error("{}: Port in use by {}", porttotry, cpi.getCurrentOwner());
    } catch (NoSuchPortException ex) {
        log.error("No such port as {}", porttotry);
    }
}

本当に奇妙なのは、ポートが使用されていないときにCommPortIdentifier.open(String, int)がスローされているように見えるという事実です。PortInUseExceptionログ出力は言う

TRACE [10:19:03.147] スケール:72 オープニング CPI: ポートは現在所有されていません
エラー [10:19:05.149] スケール:98 COM4: ポートは使用中 ポートは現在所有されていません

最初のログ行は、私には成功するopen() はずですが、そうではありません。以前にこのデバイスに接続してデータを取得したことがあります。これは奇妙な新しいエラーです。誰がこれを引き起こす可能性があるか考えていますか? 私の直感では、これはWindowsが所有の問題を抱えているため、トリッキーなことだと私に言っています。私はどんなアイデアにもオープンであり、必要に応じてより多くの情報を提供します.

4

1 に答える 1