Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Meta en 8 Marzo 2015, 02:13 AM

Título: Error que no encuentro en Visual Basic 6 con el puerto serie
Publicado por: Meta en 8 Marzo 2015, 02:13 AM
Hola:

He hecho esto con el puerto serie pero me da error al pulsar CONECTAR.
(http://www.subeimagenes.com/img/fsdafasdfsad-1245832.png)

Código (vb) [Seleccionar]
Private Sub cmdcon_Click()
   If cmdcon.Caption = "CONECTAR" Then
       puerto.CommPort = Val(cmbsel.ListIndex + 1)
       puerto.PortOpen = True
       cmdenviar.Visible = True
       Timer1.Enabled = True
       cmdcon.Caption = "DESCONECTAR"
Else
   If cmdcon.Caption = "DESCONECTAR" Then
       Timer1.Enabled = False
       cmdenviar.Visible = False
       puerto.PortOpen = False
       cmdcon.Caption = "CONECTAR"
   End If
End If
End Sub

Private Sub cmdenviar_Click()
textout = txtenviar.Text
puerto.Output = textout
End Sub

Private Sub Timer1_Timer()
textin = puerto.Input
If textin <> "" Then
puerto.Output = textout
End Sub



Uso Windows 7 de 64 bits. He seguido este vídeo (https://www.youtube.com/watch?v=9vEDy8ODKAY).

El error que me aparece es este.

(https://social.msdn.microsoft.com/Forums/getfile/619946)

Mi idea principal es enviar tramas de bytes o texto y también recibirlas por el puerto serie.

¿Alguna idea?
Título: Re: Error que no encuentro en Visual Basic 6 con el puerto serie
Publicado por: okik en 11 Marzo 2015, 14:00 PM
Hola compi :laugh:

Código (vb) [Seleccionar]
'////////////////////////////////////////
'/Agregar los siguientes controles al proyecto:
'////////////////////////////////////////
'/CommandButton1 --name= cmdConectar
'/CommandButton2 --name= cmdEnviar
'/ComboBox1 --name = cmbSel
'/MSComm -- name = Puerto  <---Agregar componente (ctrl+t): Microsoft Comm Control 6.0
'/TextBox --name = txtEnviar
'/Timer1 -- name: Timer1
'/Label -- name: lblMostrar
'////////////////////////////////////////'//////////////////////////////////////////

Dim TextOut, TextIn As String

Private Sub Form_Load()
cmdConectar.Caption = "Conectar"
cmdenviar.Caption = "Enviar"
Timer1.Enabled = False
Timer1.Interval = 1
'Lista los puertos y comprueba su disponibilidad
cmbSel.Clear
Call GetInstalledCOMPorts(cmbSel)
cmbSel.ListIndex = 0
End Sub

Private Sub cmdConectar_Click()
On Error GoTo EvitarError
   If cmdConectar.Caption = "Conectar" Then
       puerto.CommPort = Val(cmbSel.ListIndex + 1)
       puerto.PortOpen = True
       cmdenviar.Visible = True
       Timer1.Enabled = True
       cmdConectar.Caption = "Desconectar"
   End If
  ' procedimiento para desconectar puerto
   If cmdConectar.Caption = "Desconectar" Then
       Timer1.Enabled = False
       cmdenviar.Visible = False
       puerto.PortOpen = False
       cmdConectar.Caption = "Conectar"
   End If
EvitarError:
   If Err Then
   MsgBox "Puerto no disponible", vbExclamation, "Atención"
   End If
End Sub
Private Sub cmdEnviar_Click()
On Error GoTo EvitarError
   TextOut = txtEnviar.Text
   puerto.Output = TextOut
EvitarError:
   If Err Then
   MsgBox "Puerto " & Left(cmbSel.List(cmbSel.ListIndex), 4) & _
   " no conectado", vbExclamation, "Atención"
   End If
   
End Sub
Private Function GetInstalledCOMPorts(ByVal lstCmb As ComboBox) As Long
  Dim Port As Long
  For Port = 1 To 16
     If COMCheckPort(Port) Then
        lstCmb.AddItem "COM" & Port & "  disponible"
     Else
        lstCmb.AddItem "COM" & Port & "  (no disponible o no hay ningún puerto)"
     End If
  Next

End Function
Private Function COMCheckPort(ByVal NumPort As Long) As Boolean
On Error GoTo EvitarError
  puerto.CommPort = NumPort
  If puerto.PortOpen = True Then
     COMCheckPort = False
     Exit Function
  Else
    'Test the port by opening and closing it
     puerto.PortOpen = True
     puerto.PortOpen = False
     COMCheckPort = True
     Exit Function
  End If
EvitarError:
  COMCheckPort = False
End Function

Private Sub Timer1_Timer()
   TextIn = puerto.Input
   If TextIn <> vbNullString Then
       lblMostrar.Caption = TextIn
   End If
End Sub



A ver si te vale... :silbar: