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が所有の問題を抱えているため、トリッキーなことだと私に言っています。私はどんなアイデアにもオープンであり、必要に応じてより多くの情報を提供します.