- - PR -
C#のシリアル通信確認方法について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-03-07 11:48
C#でシリアル通信のプログラムを作成しております。
SerialPortクラスを利用してプログラムを作成しているのですが、例えば「接続先にアクセス出来ずにエラーになる」といったエラーステータスデータ等はあるのでしょうか? 具体的にいうと、ボーレートが合っていない時や必要な設定が合っていない時のエラー対処処理に使おうと考えております。 #ちょっと初歩的な質問かもしれませんが、ご掲示宜しくお願いいたします。 | ||||
|
投稿日時: 2007-03-07 12:30
ケーブルが接続されているか否かを判断するには、CDHoldingやDsrHoldingを使用するのが一般的です。もちろんCDやDTR/DSRが結線されており、有効にしていることが前提です。シリアルポートの中には最初からこれらの信号線が使えないものもあるので注意してください。
ボーレートの設定ミスなどに起因するエラーについては、ErrorReceiveイベントのFrameエラーやRXParityエラーである程度判断できます。設定を間違えていてもエラーが発生しない場合もあるので、必要ならプロトコルレベルでのエラー判定もしてください。 ハードウェアに近いレイヤーの処理なので、シリアルポートのハードウェアの事をちょっとだけ学習することをお勧めします。 | ||||
|
投稿日時: 2007-03-07 12:30
SerialPortクラスだけでなく全てに言えることですけど
障害に合わせた例外が帰るようになってます。 参考:Openメソッドの例外の項 http://msdn2.microsoft.com/ja-jp/library/system.io.ports.serialport.open(VS.80).aspx @IT>Insider.NET>連載:改訂版C#入門>第18章例外とエラー処理 http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_018/cs2_018_01.html | ||||
|
投稿日時: 2007-03-07 13:11
既にコメントが付いていますが、シリアルポートはその辺の不都合を厳密に検出することが出来ないんですよ。 なので、ポートが開けないとか、パリティエラーが出るとかその程度のエラー処理し貸してないアプリケーションが大多数だと思います。 |
1