重要な要約:アプリケーションが開いているCOMポートのCOMポートの状態をプログラムで監視できますか?そして方法は何ですか?
ttyS0(COM1)を介してホストHOSTから別のデバイスCLIENTへのデータ通信を実行するため、そのポートは確実に使用されています。 CLIENTはポートのHOSTにデータを送信するだけでなく、CLIENTのバッテリが不足しているときにピン(「RIピン9」)をLowからHighに設定してHOSTに状況を通知します。その後、HOSTは通常のシャットダウンを開始できます。
シリアルポートが一度だけ開いてロックできる場合は、genpower(UPS監視ツール)などのプロセスがPINの状態をどのように確認できますか?
追加情報を提供するには:
特定のシリアルポートの特定のピンが高くなることを確認すると、システムをシャットダウンできる電源監視デーモン「genpowerd」があります。 Ubuntu 10では、シリアルポートが2つのランダムエンドポイント間のデータ接続としても使用されているにもかかわらず、これを行うようです(シリアルポートが確実に使用されていることを意味します)。 Googleはシリアルポートを検索しましたが、以前のUnixバージョンにアドインファイルがあるようです。
/dev/cua0
/dev/ttyS0 は除外されます。プロバイダは、genpowerがUbuntuの一部ではなくなったため、UPS検出を使用できなくなったと主張します。 /dev/cau*が消えたからかと思います。私が欲しいものを達成するために使用できますか?私はstraceが関係していないと確信しています。 genpowerdユーティリティは、単純なコマンドでシリアルポートを開きます。
fd = open(port, O_RDWR | O_NDELAY))
次に、ioctl(...)呼び出しを実行します。