2

私の開発ターゲットは、/dev/ttyS0 と /dev/ttyS1 にある 2 つの物理シリアル ポートを持つ Linux コンピューターです。また、/dev/ttyS2 と /dev/ttyS3 が定義されていることも期待しています。

stty -f /dev/ttyS0 および S1 を使用すると、2 つのシリアル ポートの構成が報告され、S2 および S3 について「存在しない」というメッセージが報告されます。

ハードウェア設計者は、メイン ボードに組み込まれたシリアル ポートに USB を提供することについて話し合っています。外側は DB9 コネクタで、回路のみで、内側に USB コネクタはありません。USB からシリアルへの接続の数は保証されていません。

そのため、ポート サーバー デーモンをセットアップする際に、どの ttyS とどの ttyUSB が「本物」で、どれがそうでないかを判断できる必要があります。プレースホルダ ttyUSB はありますか? 1 つが「取り外された」場合はどうなるでしょうか (実際、PC の内部にある実際の USB カプラーであるとします)。

stty を popen() し、その出力を調べてシリアルポートのステータスを判断するよりも良い方法はありますか? stty 用の C API はありますか?

ありがとう!

4

1 に答える 1

4

stty が使用する「C-API」はtcsetattr(3)tcgetattr(3)です。

デバイスを開かずに TTY を見つけるには、次の質問を参照してください。

Linuxですべてのシリアルデバイス(ttyS、ttyUSBなど)を開かずに見つける方法は?

于 2012-04-09T19:45:40.867 に答える