- PR -

C#のシリアル通信確認方法について

1
投稿者投稿内容
KenTarO
常連さん
会議室デビュー日: 2007/02/10
投稿数: 42
投稿日時: 2007-03-07 11:48
C#でシリアル通信のプログラムを作成しております。
SerialPortクラスを利用してプログラムを作成しているのですが、例えば「接続先にアクセス出来ずにエラーになる」といったエラーステータスデータ等はあるのでしょうか?
具体的にいうと、ボーレートが合っていない時や必要な設定が合っていない時のエラー対処処理に使おうと考えております。

#ちょっと初歩的な質問かもしれませんが、ご掲示宜しくお願いいたします。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2007-03-07 12:30
ケーブルが接続されているか否かを判断するには、CDHoldingやDsrHoldingを使用するのが一般的です。もちろんCDやDTR/DSRが結線されており、有効にしていることが前提です。シリアルポートの中には最初からこれらの信号線が使えないものもあるので注意してください。

ボーレートの設定ミスなどに起因するエラーについては、ErrorReceiveイベントのFrameエラーやRXParityエラーである程度判断できます。設定を間違えていてもエラーが発生しない場合もあるので、必要ならプロトコルレベルでのエラー判定もしてください。

ハードウェアに近いレイヤーの処理なので、シリアルポートのハードウェアの事をちょっとだけ学習することをお勧めします。
未記入
大ベテラン
会議室デビュー日: 2006/12/15
投稿数: 157
投稿日時: 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
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-03-07 13:11
引用:

具体的にいうと、ボーレートが合っていない時や必要な設定が合っていない時のエラー対処処理に使おうと考えております。



既にコメントが付いていますが、シリアルポートはその辺の不都合を厳密に検出することが出来ないんですよ。

なので、ポートが開けないとか、パリティエラーが出るとかその程度のエラー処理し貸してないアプリケーションが大多数だと思います。
1

スキルアップ/キャリアアップ(JOB@IT)