USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Redes/Comunicações)

Título da Dica:  Ler porta serial usando o componente MSComm
Postada em 19/9/2000 por Webmaster      Clique aqui para enviar email para o autor  webmaster@vbweb.com.br
'Use o componente MSComm.
'Caso vc j's esteja usando ele, vc deve ter esquecido de setar a propriedade RThreshold para 1, desta forma ele irá gerar um evento que pode ser tratado.
'Crie um formulário e coloque nele um botão e um textbox, depois insira o seguinte código:

Private Sub BtConectar_Click()
    
    MSComm1.Output = Chr$(240) + Chr$(1) + Chr$(1) + Chr$(240)

End Sub

Private Sub Form_Load()
    
    ' Usa COM2.
    MSComm1.CommPort = 2
    ' 9600 baud, no parity, 8 data, and 1 stop bit.
    MSComm1.Settings = "9600,N,8,1"
    ' Indica que o controle deve ler todo o conteúdo do buffer
    ' quando o input é usado.
    MSComm1.InputLen = 0
    ' Indica que os dados que chegarem estarão no formato texto
    MSComm1.InputMode = comInputModeBinary
    
    ' Gera um evento OnComm a cada byte recebido
    MSComm1.RThreshold = 1
    ' Espera o buffer de saída ter apenas 1 byte para enviá-lo
    MSComm1.SThreshold = 1
    
    ' Abre a porta.
    MSComm1.PortOpen = True

End Sub

Private Sub MSComm1_OnComm()
    
    Dim strsaida As Variant
    Dim tamanho, tamanho2 As Integer
    
    Select Case MSComm1.CommEvent
    ' Handle each event or error by placing
    ' code below each case statement
    
    ' 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.
    tamanho = MSComm1.InBufferCount
    strsaida = MSComm1.Input
    tamanho2 = 0
    While tamanho2 < tamanho
    
    Tracer.Text = Tracer.Text & "#"
    Tracer.Text = Tracer.Text & Format(strsaida(tamanho2))
    Tracer.Text = Tracer.Text & ","
    tamanho2 = tamanho2 + 1
    Wend
    Case comEvSend ' There are SThreshold number of
    ' characters in the transmit
    ' buffer.
    tamanho = MSComm1.OutBufferCount
    tamanho2 = 0
    While tamanho2 < tamanho
    
    Tracer.Text = Tracer.Text & "#"
    Tracer.Text = Tracer.Text & Format(strsaida(tamanho2))
    Tracer.Text = Tracer.Text & ","
    tamanho2 = tamanho2 + 1
    Wend
    Case comEvEOF ' An EOF charater was found in ' the input stream
    End Select

End Sub

 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página