|
分類:[VB.NET/VB2005 以降]
OS :WindowsXP SP2 使用言語:VB.net2008
シリアル送受信で、受信を試しています。
Public Function GetMsg(ByVal LoopNum As Integer, ByVal strNum As String) As String Dim i As Integer ' ループカウンタ GetMsg = "" ' For i = 0 To LoopNum ' GetMsg = GetMsg + frmMain.ComRead ' 受信処理 ※1 If strComp_Find(GetMsg, strNum) Then ' Exit Function ' ETXを見つけたら抜ける End If ' Call WaitTime(100) ' Next ' End Function
Public Function ComRead() As String Dim rDATA(512) As Byte Dim rLen As Int32 Dim N As Integer Dim A As String = "" Dim i As Short = 0 ComRead = "" Do A = "" bRet = CSP.ReadFile(hcomm, rDATA, 512, rLen, IntPtr.Zero) For N = 0 To rLen A = A & Chr(rDATA(N)) Next N Loop While rLen > 512 strData = A ComRead = A End Function
※1の受信処理で、1回目の受信でETXが無かった場合に もう1度受信処理をするのですが、この処理で取得したデータを見ると、 1回目と2回目の取得データの間に良く分からないスペース?のようなゴミが入ってしまいます。
もし、上記のような経験がある方で解決方法があれば御教授いただきたく。 よろしくお願いいたします。
|