|  | 分類:[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回目の取得データの間に良く分からないスペース?のようなゴミが入ってしまいます。
 
 もし、上記のような経験がある方で解決方法があれば御教授いただきたく。
 よろしくお願いいたします。
 
 |