web-dev-qa-db-ja.com

シリアルポートを有効/無効にする方法は?

Javaプログラムでテストするために、シリアルポートを無効にしてから有効にする必要があります。

mansetserialページには次のように記載されているため: "UART type noneを使用すると、ポートが無効になります。 "、Sudo setserial /dev/ttyS4 uart noneを使用してポートを無効にします。これにより、シリアルポートが正常に無効になります。シリアルポートを再度有効にするには、Sudo setserial /dev/ttyS4 -a autoconfigを使用すると、期待どおりにポートが起動します。

ポートを無効にした後、 Java gnu.io.CommPortIdentifier 関数を使用してポートを開こうとします。 gnu.io.CommPortIdentifier関数を実行した後にポートを有効にしようとすると、次の出力が得られます。

$ Sudo setserial /dev/ttyS4 -a autoconfig
Cannot autoconfigure port: Device or resource busy

この問題を回避するにはどうすればよいですか?シリアルポートを有効/無効にするより良い方法はありますか?または、ポートに対して行われた要求のリストをクリアできますか?

テストが実行されているため、プロセスを強制終了することはできません。

3
MarcioB

Java gnu.io.CommPortIdentifierは、シリアルポートを無効にしている/ dev/ttySxを削除すると、さらに大きな問題が発生すると思います。

再度有効にする必要がある場合は、最初にMAKEDEVスクリプトまたはmknodコマンドを使用してノードを作成する必要があります。 ここ はシリアルデバイスの作成に関する情報です。

1
LHristov