したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

SerialPort.Readについて

3たか:2010/02/16(火) 14:50:47
回答ありがとうございます。

最初に書き込んだプログラムと少し異なるのですが
flg を Static や
SerialPort1_DataReceivedイベントの外側(Public)で指定したのですが
①の部分で、同じ異常が発生します。

受信データに改行が見つからないので
②のようにしているのですが
その操作が、悪影響を与えているのでしょうか?

宜しくお願いします。


Private Sub SerialPort2_DataReceived(ByVal sender As Object, _
ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
Handles SerialPort2.DataReceived

If flg = True Then
Exit Sub
End If

flg = True

'データ受信用のバイト配列
Dim inByte2(SerialPort2.BytesToRead - 1) As Byte

'データの読み込み
SerialPort2.Read(inByte2, 0, SerialPort2.BytesToRead) ←①

'読み込んだデータを改行を確認しながらジェネリクスに移す
For i As Integer = 0 To inByte2.Length - 1

lByte2.Add(inByte2(i)) 'ジェネリクスに足しこむ

'改行が有った
'If lByte2.Count > 2 AndAlso lByte2(lByte2.Count - 2) = 13 AndAlso lByte2(lByte2.Count - 1) = 10 Then
If lByte2.Count > 2 AndAlso lByte2.Count = 8 Then ←②

'ジェネリクスからByte配列に移す
Dim tmpByte2(lByte2.Count - 1) As Byte
For j As Integer = 0 To lByte2.Count - 1
tmpByte2(j) = lByte2(j)
Next

lByte2.Clear() 'ジェネリクスをクリアー

'Shift-Jisからユニコードに変換
Dim uniByte2() As Byte = Encoding.Convert(encSjis2, encUni2, tmpByte2)

'Unicodeの配列から文字列に変換
Dim uniString2 As String = encUni2.GetString(uniByte2)

'メインスレッドのテキストに追加する
Me.Invoke(New dlgAddText2(AddressOf AddText2), New Object() {uniString2})

End If
Next

flg = False
End Sub


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板