Foro de elhacker.net

Programación => 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
  1. Private Sub cmdcon_Click()
  2.    If cmdcon.Caption = "CONECTAR" Then
  3.        puerto.CommPort = Val(cmbsel.ListIndex + 1)
  4.        puerto.PortOpen = True
  5.        cmdenviar.Visible = True
  6.        Timer1.Enabled = True
  7.        cmdcon.Caption = "DESCONECTAR"
  8. Else
  9.    If cmdcon.Caption = "DESCONECTAR" Then
  10.        Timer1.Enabled = False
  11.        cmdenviar.Visible = False
  12.        puerto.PortOpen = False
  13.        cmdcon.Caption = "CONECTAR"
  14.    End If
  15. End If
  16. End Sub
  17.  
  18. Private Sub cmdenviar_Click()
  19. textout = txtenviar.Text
  20. puerto.Output = textout
  21. End Sub
  22.  
  23. Private Sub Timer1_Timer()
  24. textin = puerto.Input
  25. If textin <> "" Then
  26. puerto.Output = textout
  27. End Sub
  28.  


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
  1. '////////////////////////////////////////
  2. '/Agregar los siguientes controles al proyecto:
  3. '////////////////////////////////////////
  4. '/CommandButton1 --name= cmdConectar
  5. '/CommandButton2 --name= cmdEnviar
  6. '/ComboBox1 --name = cmbSel
  7. '/MSComm -- name = Puerto  <---Agregar componente (ctrl+t): Microsoft Comm Control 6.0
  8. '/TextBox --name = txtEnviar
  9. '/Timer1 -- name: Timer1
  10. '/Label -- name: lblMostrar
  11. '////////////////////////////////////////'//////////////////////////////////////////
  12.  
  13. Dim TextOut, TextIn As String
  14.  
  15. Private Sub Form_Load()
  16. cmdConectar.Caption = "Conectar"
  17. cmdenviar.Caption = "Enviar"
  18. Timer1.Enabled = False
  19. Timer1.Interval = 1
  20. 'Lista los puertos y comprueba su disponibilidad
  21. cmbSel.Clear
  22. Call GetInstalledCOMPorts(cmbSel)
  23. cmbSel.ListIndex = 0
  24. End Sub
  25.  
  26. Private Sub cmdConectar_Click()
  27. On Error GoTo EvitarError
  28.    If cmdConectar.Caption = "Conectar" Then
  29.        puerto.CommPort = Val(cmbSel.ListIndex + 1)
  30.        puerto.PortOpen = True
  31.        cmdenviar.Visible = True
  32.        Timer1.Enabled = True
  33.        cmdConectar.Caption = "Desconectar"
  34.    End If
  35.   ' procedimiento para desconectar puerto
  36.    If cmdConectar.Caption = "Desconectar" Then
  37.        Timer1.Enabled = False
  38.        cmdenviar.Visible = False
  39.        puerto.PortOpen = False
  40.        cmdConectar.Caption = "Conectar"
  41.    End If
  42. EvitarError:
  43.    If Err Then
  44.    MsgBox "Puerto no disponible", vbExclamation, "Atención"
  45.    End If
  46. End Sub
  47. Private Sub cmdEnviar_Click()
  48. On Error GoTo EvitarError
  49.    TextOut = txtEnviar.Text
  50.    puerto.Output = TextOut
  51. EvitarError:
  52.    If Err Then
  53.    MsgBox "Puerto " & Left(cmbSel.List(cmbSel.ListIndex), 4) & _
  54.    " no conectado", vbExclamation, "Atención"
  55.    End If
  56.  
  57. End Sub
  58. Private Function GetInstalledCOMPorts(ByVal lstCmb As ComboBox) As Long
  59.   Dim Port As Long
  60.   For Port = 1 To 16
  61.      If COMCheckPort(Port) Then
  62.         lstCmb.AddItem "COM" & Port & "  disponible"
  63.      Else
  64.         lstCmb.AddItem "COM" & Port & "  (no disponible o no hay ningún puerto)"
  65.      End If
  66.   Next
  67.  
  68. End Function
  69. Private Function COMCheckPort(ByVal NumPort As Long) As Boolean
  70. On Error GoTo EvitarError
  71.   puerto.CommPort = NumPort
  72.   If puerto.PortOpen = True Then
  73.      COMCheckPort = False
  74.      Exit Function
  75.   Else
  76.     'Test the port by opening and closing it
  77.      puerto.PortOpen = True
  78.      puerto.PortOpen = False
  79.      COMCheckPort = True
  80.      Exit Function
  81.   End If
  82. EvitarError:
  83.   COMCheckPort = False
  84. End Function
  85.  
  86. Private Sub Timer1_Timer()
  87.    TextIn = puerto.Input
  88.    If TextIn <> vbNullString Then
  89.        lblMostrar.Caption = TextIn
  90.    End If
  91. End Sub


A ver si te vale... :silbar: