Hola:
He hecho esto con el puerto serie pero me da error al pulsar CONECTAR.
(http://www.subeimagenes.com/img/fsdafasdfsad-1245832.png)
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?
Hola compi :laugh:
'////////////////////////////////////////
'/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: