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

タイトル Re: VB シリアルポートは自動Closeできません。
投稿日: 2014/07/16(Wed) 15:25
投稿者オショウ
>  どなたかご教授して頂けませんでしょうか。

  受信バッファに受信した分だけ読み出すようにすれば
  いつでもクローズできます。

  原因は、
  lenBuf = SerialPort1.Read(buf, 0, 1024)
  です。

  尚、非同期受信方式を採用するなら・・・

    If e.EventType = SerialData.Chars Then
    ' ここに受信部を書く  
    End If

  として、不必要なDataReceivedイベントで、動作しない
  ようにする必要があります。

  あと、DataReceivedイベントの先頭に
   If SerialPort1.IsOpen = False Then
        Return
    End If
  このコードがありますが、ポートがクローズされていると
  DataReceivedイベントは発生しないので、不必要かと。

※ 受信データにデリミタがあれば、そのコードまで読み込むように
  受信機能を書けば、CPU負荷は減り、動作も軽量化します。
  ReadTo を調べてみて下さい。

以上。

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

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