424,960 Members | 1,142 Online Need help? Post your question and get tips & solutions from a community of 424,960 IT Pros & Developers. It's quick & easy.

help for the code

 P: 32 Can somebody help? Really need help. I got this sample from internet but there some parts I could not understand well why we have to use the thing for .. Hope can seek some advice through this forum...thanks.. Expand|Select|Wrap|Line Numbers Private Sub Receiver(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles COMPort.DataReceived   ' Note this subroutine is executed on the serial port thread - not the UI thread.   Dim RXByte, Nibble As Byte   Dim RXArray(2047) As Char   Dim I As Integer = 0   Do     RXByte = COMPort.ReadByte     Nibble = (RXByte >> 4) + 48          ' Convert received byte to Hex       If Nibble > 57 Then       Nibble = Nibble + 7     End If     RXArray(I) = Chr(Nibble)     I = I + 1     Nibble = (RXByte And 15) + 48     If Nibble > 57 Then       Nibble = Nibble + 7     End If     RXArray(I) = Chr(Nibble)     I = I + 1     RXArray(I) = " "     I = I + 1     SpaceCount = (SpaceCount + 1) And 31 ' Insert spaces and CRLF for better readability     If SpaceCount = 0 Then               ' Insert CRLF after 32 numbers       RXArray(I) = Chr(13) ' CR       I = I + 1       RXArray(I) = Chr(10) ' LF       I = I + 1     Else       If (SpaceCount And 3) = 0 Then   ' Insert two extra spaces for each 4 numbers         RXArray(I) = " "         I = I + 1         RXArray(I) = " "         I = I + 1       End If     End If   Loop Until (COMPort.BytesToRead = 0)   Dim RxString As New String(RXArray, 0, I) ' Convert the first part of the Char Array to a String   ' Put a message with a delegate, which points to the display routine and holds the RxString,   '   on the message queue and return immediately.   Me.BeginInvoke(New StringSubPointer(AddressOf Display), RxString) End Sub   ' Text display routine, which appends the received string to any text in the Received TextBox.   Private Sub Display(ByVal Buffer As String)   Received.AppendText (Buffer) End Sub   ' Transmitter subroutine.   Private Sub Transmitter(ByVal sender As Object, ByVal e As EventArgs) Handles SendButton.Click   Received.AppendText ("TX" & vbCrLf)       ' Switch to a new line after every transmission   SpaceCount = 0   Dim TextString As String   Dim TXArray(2047) As Byte   Dim I As Integer   Dim J As Integer = 0   Dim Ascii As Boolean = False   Dim Quote As Boolean = False   Dim Temp As Boolean   Dim Second As Boolean = False   Dim TXByte As Byte = 0   Dim CharByte As Byte     If COMPort.IsOpen Then     TextString = Transmitted.Text     For I = 0 To TextString.Length - 1       CharByte = Asc(TextString.Chars(I))       If CharByte = 34 Then ' If " Then         Temp = Ascii         Ascii = Ascii Or Quote         Quote = Not (Temp And Quote)       Else         Ascii = Ascii Xor Quote         Quote = False       End If       If Not Quote Then         If Ascii Then           TXArray(J) = CharByte           J = J + 1         Else           If (CharByte <> 32) And (CharByte <> 10) And (CharByte <> 13) Then ' Skip spaces, LF and CR             CharByte = (CharByte - 48) And 31 ' And 31 makes it case insensitive             If CharByte > 16 Then               CharByte = CharByte - 7             End If             If Second Then               TXArray(J) = TXByte + CharByte               Second = False               J = J + 1             Else               TXByte = CharByte << 4               Second = True             End If           End If         End If       End If     Next     Try       COMPort.Write(TXArray, 0, J)     Catch ex As Exception       MsgBox (ex.Message & "  Check CTS signal or set Flow Control to None.")     End Try   Else     thanks again..     MsgBox ("COM port is closed. Please select a COM port")   End If End Sub   Sep 6 '07 #1 