MSComm- VB6

Passing data to mulitple text boxes

Page 1 of 1

1 Replies - 5454 Views - Last Post: 08 November 2010 - 07:52 AM Rate Topic: -----

#1 P3ach3s  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 05-November 10

MSComm- VB6

Posted 05 November 2010 - 11:20 AM

Hi all gurus!
I have a controller with a switch. When the switch is pressed, the RS232 cable recieves it into my VB6 program. I am able to recieve the data ok. The problem is ...how do i place the 1 value in the text1.text and then place the second value in the text2.text. I then want to take those two values and calculate them. Do I need two text boxes or can i just take that number and place it somewhere in code and then go get the second value from same text box?
Below is what I have:
 
Const Xon = &H11
      Const Xoff = &H13

      Private Sub Form_Load()
         Form1.Caption = "mscommtemp"
         With MSComm1
            .CommPort = 1
            .Handshaking = 2 '- comRTS
            .RThreshold = 1
            .RTSEnable = True
            .Settings = "9600,n,8,1"
            .SThreshold = 1
            .PortOpen = True
            .InputLen = 0
            
         End With
         Text1.Text = ""
      Label1.Caption = "No input yet"
      End Sub

      Private Sub Form_Unload(Cancel As Integer)
         MSComm1.PortOpen = False
      End Sub

      Private Sub MSComm1_OnComm()
         Dim InBuff As String

         Select Case MSComm1.CommEvent
         ' Handle each event or error by placing
         ' code below each case statement.

         ' This template is found in the Example
         ' section of the OnComm event help topic
         ' in VB help.

         ' Errors
            Case comEventBreak   ' A Break was received.
            Case comEventCDTO    ' CD (RLSD) Timeout.
            Case comEventCTSTO   ' CTS Timeout.
            Case comEventDSRTO   ' DSR Timeout.
            Case comEventFrame   ' Framing Error
            Case comEventOverrun ' Data Lost.
            Case comEventRxOver  ' Receive buffer overflow.
            Case comEventRxParity   ' Parity Error.
            Case comEventTxFull  ' Transmit buffer full.
            Case comEventDCB  ' Unexpected error retrieving DCB]

         ' Events
            Case comEvCD   ' Change in the CD line.
            Case comEvCTS  ' Change in the CTS line.
            Case comEvDSR  ' Change in the DSR line.
            Case comEvRing ' Change in the Ring Indicator.
            Case comEvReceive ' Received RThreshold # of chars.
               Label1.Caption = "Input"
               InBuff = MSComm1.Input
               Call ParseChars(InBuff)
            Case comEvSend ' There are SThreshold number of
                           ' characters in the transmit
                           ' buffer.
            Case comEvEOF  ' An EOF character was found in
                           ' the input stream.
         End Select

      End Sub

      Sub HandleInput(InBuff As String)
         ' This is where you will process your input. This
         ' includes trapping characters, parsing strings,
         ' separating data fields, etc. For this case, you
         ' are simply going to display the data in the text
         ' box.
        compstring = compstring & InBuff
        Text1.Text = compstring
             Rem parse through the input and look for the line feed character
        If Asc(Mid(compstring, Len(compstring), 1)) = Asc(vbLf) Then
         Text1.Text = Text1.Text & InBuff
         
         End If
         
         
      End Sub

      Sub ParseChars(ByVal InString As String)
         Dim temp As String
         Dim x As Long
         Dim OutString As String

         For x = 1 To Len(InString)
            temp = Mid$(InString, x, 1)
            If temp = Chr$(Xoff) Then
               Label1.ForeColor = vbRed
               Label1.Caption = "Xoff received"
               temp = ""
            ElseIf temp = Chr$(Xon) Then
               Label1.ForeColor = vbGreen
               Label1.Caption = "Xon received"
               temp = ""
            End If
            OutString = OutString & temp
            temp = ""
         Next x
         Call HandleInput(OutString)
      End Sub



Edited by macosxnerd101: Please, :code:.

Is This A Good Question/Topic? 0
  • +

Replies To: MSComm- VB6

#2 P3ach3s  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 05-November 10

Re: MSComm- VB6

Posted 08 November 2010 - 07:52 AM

 Const Xon = &H11
      Const Xoff = &H13

      Private Sub Form_Load()
         Form1.Caption = "mscommtemp"
         With MSComm1
            .CommPort = 1
            .Handshaking = 2 '- comRTS
            .RThreshold = 1
            .RTSEnable = True
            .Settings = "9600,n,8,1"
            .SThreshold = 1
            .PortOpen = True
            .InputLen = 0
            
         End With
         Text1.Text = ""
      Label1.Caption = "No input yet"
      End Sub

      Private Sub Form_Unload(Cancel As Integer)
         MSComm1.PortOpen = False
      End Sub

      Private Sub MSComm1_OnComm()
         Dim InBuff As String

         Select Case MSComm1.CommEvent
         ' Handle each event or error by placing
         ' code below each case statement.

         ' This template is found in the Example
         ' section of the OnComm event help topic
         ' in VB help.

         ' Errors
            Case comEventBreak   ' A Break was received.
            Case comEventCDTO    ' CD (RLSD) Timeout.
            Case comEventCTSTO   ' CTS Timeout.
            Case comEventDSRTO   ' DSR Timeout.
            Case comEventFrame   ' Framing Error
            Case comEventOverrun ' Data Lost.
            Case comEventRxOver  ' Receive buffer overflow.
            Case comEventRxParity   ' Parity Error.
            Case comEventTxFull  ' Transmit buffer full.
            Case comEventDCB  ' Unexpected error retrieving DCB]

         ' Events
            Case comEvCD   ' Change in the CD line.
            Case comEvCTS  ' Change in the CTS line.
            Case comEvDSR  ' Change in the DSR line.
            Case comEvRing ' Change in the Ring Indicator.
            Case comEvReceive ' Received RThreshold # of chars.
               Label1.Caption = "Input"
               InBuff = MSComm1.Input
               Call ParseChars(InBuff)
            Case comEvSend ' There are SThreshold number of
                           ' characters in the transmit
                           ' buffer.
            Case comEvEOF  ' An EOF character was found in
                           ' the input stream.
         End Select

      End Sub

      Sub HandleInput(InBuff As String)
         ' This is where you will process your input. This
         ' includes trapping characters, parsing strings,
         ' separating data fields, etc. For this case, you
         ' are simply going to display the data in the text
         ' box.
         Dim invar As String
         
        compstring = compstring & InBuff
        Text1.Text = compstring
        'MsgBox (InBuff)
        
        
        Rem parse through the input and look for the line feed character
        If Asc(Mid(compstring, Len(compstring), 1)) = Asc(vbCr) Then
         invar = Text1.Text
        If Text1.Text <> "" Then Text2.Text = invar
        If Text1.Text = "" Then Text1.Text = invar
         
         
         
         compstring = ""
         End If
         
         
         
      End Sub

      Sub ParseChars(ByVal InString As String)
         Dim temp As String
         Dim x As Long
         Dim OutString As String

         For x = 1 To Len(InString)
            temp = Mid$(InString, x, 1)
            If temp = Chr$(Xoff) Then
               Label1.ForeColor = vbRed
               Label1.Caption = "Xoff received"
               temp = ""
            ElseIf temp = Chr$(Xon) Then
               Label1.ForeColor = vbGreen
               Label1.Caption = "Xon received"
               temp = ""
            End If
            OutString = OutString & temp
            temp = ""
         Next x
         Call HandleInput(OutString)
      End Sub




Was This Post Helpful? 0
  • +
  • -

Page 1 of 1