1

デバイスがシリアルポートに接続されているかどうかを確認する方法を知っている人はいますか? デバイスに ping を送信し、ping が成功した場合にのみ接続を試みることができるように、一種の ping 機能が必要です。たとえば、COM ケーブルが接続されていない場合、接続に失敗したというメッセージをより速く表示できます。

4

1 に答える 1

4

Ping を使用して、1,000 マイル離れた場所にあるサーバーがオンラインかどうかを確認する必要があるのとは、まったく同じ問題ではありません。シリアル ポートを使用すると、ケーブルのもう一方の端を見るだけで、数フィート以上歩く必要はほとんどありません。

また、TCP のようなステートフルな接続に似たものはありません。実際にできることは、ハードウェア ハンドシェイク信号を見ることだけです。SerialPort.DsrHolding は、Data Set Ready シグナルの状態を示します。適切に実装されたシリアル デバイスは、その信号を使用して、電源が入っていることを示します。CtsHolding は追加のシグナルであり、データを送信する準備ができていることを示します。通常、送信を検討する前に両方をオンにする必要があります。

これらのハンドシェイク シグナルは、常に適切に実装されているわけではありません。たとえば、シリアル ポートが実際に BlueTooth または USB デバイス ドライバによってエミュレートされている場合、問題が発生する可能性があります。これらのドライバーが実際のシリアル ポートをどれだけエミュレートするかについては、一貫性がほとんどなく、最近では非常に一般的です。あなたは試してみる必要があります。

于 2013-08-09T13:46:34.697 に答える