C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

RS232Cで通信できる状態にあるか確認する方法

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■87392 / inTopicNo.1)  RS232Cで通信できる状態にあるか確認する方法
  
□投稿者/ 猫太郎 (5回)-(2018/05/17(Thu) 11:38:41)

分類:[.NET 全般] 

SerialPortを使って
RS232C機器の制御プログラムを作成しているのですが、
予め、機器と通信できる状態にあるか確認したいのですが
そのようなコードはございますでしょうか?

適当なコードを機器に送信して
Try Catchでエラーが出るかどうか確認するという方法しかないでしょうか?
 
引用返信 編集キー/
■87393 / inTopicNo.2)  Re[1]: RS232Cで通信できる状態にあるか確認する方法
□投稿者/ 774RR (606回)-(2018/05/17(Thu) 13:11:52)
RS232C というか EIA574 はとても古い規格なので「通信できる状態」というのがそもそも定義されていない。
オイラたちのような組み込み機器開発しているとこでは必要最小限の結線 (GND/TXD/RXD の3本) でのみ
PCと機器を接続していたりするけど、そうすると事前に状態を判別するすべが無い、ってことになる。
Try/Catch で囲っても「通信できないこと」が原因で例外になったりはしない。

猫太郎氏の使う機器の仕様によっては事前に判別することができるかもしれないし、できないかもしれない。

というわけで
・最終目的の機器
・機器と COMx 間を結ぶケーブル
・ COMx 自体の出来 (内蔵シリアルポートと USB/COM 変換器とで挙動が異なることは普通にある)
あたりが全部対応しているなら「できる」「その具体的手法は機器やケーブルの仕様で違う」

まあ普通は無理と考えるべきだろう。

普通は何らかのコマンドを送って、一定時間内に返事が無かったら接続されていないと判断するしかないっす。
送信ハンドラ+受信ハンドラ+タイマ、でタイムアウトを実装するってことになるでしょう(コード略)

で、考えなしにコマンドを送ると機器側が動作しちゃったりしていろいろ困ることになったりするかもです。

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ