tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: シリアル通信の割込み禁止
投稿日: 2009/10/21(Wed) 06:51
投稿者オショウ
> ご助言ありがとうございます。
> とありましたのでデリゲートをはずしたところ、
> _comdt_1.Textに受信データをセットするところでエラーになってしまいます。
> デリゲートをうまく使わない方法があるのでしょうか?

  SerialPortコントロールをフォームに貼っておられると
  思いましたが・・・

  私は通常、コントロールを貼らないでクラス生成して、
  送受信するプログラムを作りますので、デリゲートは必
  要だったのですが。

  コントロールでも『必要』であるなら、戻して下さい。

  因みに・・・

  SerialPort.ReceivedBytesThreshold が受信バイト数の
  ような使い方をされていますが、それは間違いです。
  BytesToRead で、実際に受信したバイト数を使うべきです。

  ReceivedBytesThreshold は、あくまで受信イベントを発生
  させる為のバイト数で、イベントが発生した時点ではそれ
  以上の受信データが既にバッファに溜まっているかもしれ
  ないからです。

  デリミタがあるプロトコルならば・・・
  .RadTo("デリミタ文字")
  とすればよいでしょう。

  尚、受信イベントを処理するルーチンでは・・・
  If e.EventType = SerialData.Chars Then 〜
  として、イベントの種類を確認して、データ受信の時のみ
  受信動作を行うようにして下さい。
  そうすれば、タイムアウト以外では、Try 〜 は必要なくな
  ります。

以上。参考まで

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。