All pastes #439685 Raw Edit

Untitled

public text v1 · immutable
·published 2007-04-14 13:20 UTC
rendered paste body
Private Sub srlPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles srlPort.DataReceived

  Dim intIndex As Integer
  Dim strRxdCRC As String
  Dim strHexData As String
  Dim strCRCCode As String = ""

  Dim intNumBytes As Integer = srlPort.BytesToRead
  Dim bytCharData(intNumBytes - 1) As Byte

  Try

    '//Disable buffer timeout interrupt
    tmrBufferDelay.Enabled = False
    blnReceived = True

    strRxd = ""

    srlPort.Read(bytCharData, 0, intNumBytes)

    For intIndex = 0 To intNumBytes - 1
      strRxd = strRxd & Chr(bytCharData(intIndex))
    Next intIndex
    If strRxd = "" Then Exit Sub
    srlPort.ReceivedBytesThreshold = CType(txtBufferCount.Text, Integer)

    '//Receive light - ON
    With lblRxdIndicator
      .BackColor = Color.Red
      .Refresh()
    End With
    '//Transmit light - OFF
    With lblTXDIndicator
      .BackColor = Color.Black
      .Refresh()
    End With

    '//Enable loop send timer
    If hsbRepeatTime.Value <> 0 Then
      tmrLoopDelay.Enabled = True
    End If

    lblStatus.Text = " Receiving. . ."

    '//16 bit CRC
    If mnuCRC16.Checked = True Then

      Dim intDataLength As Integer = strRxd.Length

      '//Store received CRC
      strRxdCRC = strRxd.Substring((intDataLength - 2), 2)
      '//All but CRC
      strHexData = strRxd.Substring(0, (intDataLength - 2))

      Call CRC16(strHexData, strCRCCode)

      If strRxdCRC <> strCRCCode Then
        lblCRC.ForeColor = Color.Red
      Else
        lblCRC.ForeColor = Color.Black
      End If

      Call DisplayUpdate()

    '//32 bit CRC
    ElseIf mnuCRC32.Checked = True Then
      'hexdata = Left(hexdata, Len(hexdata) - 8)
      'Call CRC32(hexdata, crccode)
      'If rxdcrc <> crccode Then
      '  lblCRC(1).ForeColor = vbRed
      'Else
      '  lblCRC(1).ForeColor = vbBlack
      'End If
    Else
      Call DisplayUpdate()
    End If

  Catch ex As Exception

    Call MainErrTrap()

  End Try

End Sub 'srlPort_DataReceived