.NET2010のSerialPortコンポーネントを使ったタイムアウト


.NET初心者  2013-03-13 15:05:19  No: 148105  IP: [192.*.*.*]



ヨツョホナヤイーアーでモミコンポーネントを使って
シリアル通信をするプログラムを作成しています。

例えば、ケーブルが外れたりした場合のコマンドの
受信タイムアウトはモミコンポーネントの
どのプロパティを使えば設定できるでしょうか。
下記のようなプログラムを作成しましたが、
テヲサヲサチヲサヤナ
に飛んでくるかと思いきや、何もイベントが飛んできません。
ご存知の方、ご教授の程よろしくお願い致します。


※コマンド送信イベント


ョメヤヲサスヲサイーーーヲサヲサヲサヲサヲサァ受信開始後のタイムアウト
ョラヤヲサスヲサオーーーヲサヲサヲサヲサァコマンド送信開始後のタイムアウト

トヲサヲサチヲサツィゥヲサスヲサモョヤョナョトョヌツィモヤリヲサォ  「「ヲサォヲサナヤリゥ
ョラィャヲサーャヲサョヌフィーゥゥ


ヲサヲサァ受信待ち
ヲサヲサチョトナィゥ
フヲサユヲサ゜ノモヲサスヲサニ

テヲサヲサチヲサヤナ
ヲサヲサァタイムアウト
ヲサ

※受信

  ァヲサシリアルポートからデータ受信
  トヲサヲサチヲサツィゥヲサスヲサホヲサツィョツヤメヲサュヲサアゥヲサ

  ァ受信ィバイナリ受信ゥ
ヲサヲサョメィャヲサーャヲサョヌフィーゥゥ

テヲサヲサチヲサヤナ
ヲサヲサァ受信タイムアウト
ヲサヲサ゜メトヲサスヲサ「ヤノヘナマユヤ「


ヲサヲサ゜ノモヲサスヲサニ
ナヲサヤ
スススススススススススススススススススススススススススススススススススススススス
ニコ オショウ
トコ イーアウッーウッアウィ水ゥ アケコイウコイケ  書込者ノト:ロ 」。ィ「  ン

同期式の書き方では、ダメです。
非同期式にプログラム構造を変更すれば、取得できます。

以上。参考まで
スススススススススススススススススススススススススススススススススススススススス
ニコ ョホナヤ初心者ヲサ
トコ イーアウッーウッアエィ木ゥ アケコエエコウク  書込者ノト:ロ 」 ァ」ハノ


 ン

オショウ様、アドバイスありがとうございます。

受信部分を以下のように変更しましたがタイムアウトしません。
テヲサヲサチヲサヤナにイベントが来るかと思ったのですが。。
非同期式の意味を取り違えていますでしょうか。
お手数をおかけしますが、よろしくお願い致します。

ヲサヲサヲサヲサミヲサモヲサモミア゜トメィツヨヲサヲサチヲサマャヲサツヨヲサヲサチヲサモョノマョミョモトメナチゥヲサネヲサモミアョトメ

ヲサヲサヲサヲサヲサヲサヲサヲサラヲサモミア
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヤ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサァヲサシリアルポートからデータ受信
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサトヲサトヲサチヲサツィゥヲサスヲサホヲサツィョツヤメヲサュヲサアゥヲサ

ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサァ受信ィバイナリ受信ゥ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサョメィトャヲサーャヲサトョヌフィーゥゥ

ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサァ受信データ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサ゜メトヲサスヲサ゜メトヲサォヲサィモョヤョナョトョヌモィトゥゥ

ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサテヲサヲサチヲサヤナ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサァ受信タイムアウト
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサ゜メトヲサスヲサ「「

ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサニ

ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサナヲサヤ

ヲサヲサヲサヲサヲサヲサヲサヲサナヲサラ
スススススススススススススススススススススススススススススススススススススススス
ニコ オショウ
トコ イーアウッーウッアエィ木ゥ イウコアアコーケ  書込者ノト:ロ 「・「「 ン

ポートのオープン時に
モミアョメツヤヲサスヲサア
としていますか?

ヲサヲサヲサヲサヲサヲサヲサヲサァヲサイベントの宣言
ヲサヲサヲサヲサヲサヲサヲサヲサナヲサメトィツヨヲサメヲサチヲサモゥ
ヲサヲサヲサヲサヲサヲサヲサヲサナヲサメヤィゥ

非同期受信部分は・・・
受信イベントには制御線の変化等も発生するので必ず受信
イベントか確認する必要があります。

ヲサヲサヲサヲサヲサヲサヲサヲサラヲサモミア
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサノヲサョナヤヲサスヲサモトョテヲサヤ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサトヲサヲサヲサモ

ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサスヲサ「「

ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサァ受信ィバイナリ受信ゥ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヤ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサスヲサモョメヤィナヤリゥ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサノヲサヲサヲサヲサヲサモョナヲサヤ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサメナヲサメトィゥ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサナヲサノ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサテヲサヲサチヲサヤナ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサァ受信タイムアウト
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサメナヲサメヤィゥ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサニ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサナヲサヤ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサナヲサノ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサナヲサラ

ただ、1バイト受信した後にナヤリが来るまでの時間がタイムアウト
時間を超えた場合、エラーが発生するのですが、1バイトも受信
しない場合、タイムアウトは発生しません。

その場合は、自身でタイマークラスを使って、タイムアウトを
監視する必要があります。

※  ョメヤを使うと、その指定したデリミタが来るまで待ち合わせる
    ので、CPU負荷が発生しない。

※  シリアル送受信機能のみをクラスにしてDLL化して
    ますので、メナヲサ使って、通知する仕掛けにして
    ます。必要な形に変更してください。

以上。参考まで

編集 削除