TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: groundman en 02 de Mayo de 2009, 16:54:00
-
hola.estoy ya loco perdido.no se que estoy haciendo mal.aqui pongo el codigo por si alguien me puede ayudar.
y es que no se como introducir el valor del puerto.como han quitado el mscomm del vb8.pues a aprender.
me dice: El puerto '1:' no existe. y eso que lo tengo abierto.
lo que hace el programa es mandar los codigos de las teclas de direccion al com1.al pulsarlas.
Imports System.IO.Ports 'para el uso del serial port
Public Class Form1
Dim dato As String
Dim portcom As String
Dim value As String
Dim instance As New SerialPort
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
value = 1
instance.PortName = value
If SerialPort1.IsOpen() Then SerialPort1.Close()
SerialPort1.Open() 'Abrimos el puerto para las comunicaciones.
End Sub
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If (e.KeyCode = System.Windows.Forms.Keys.Up) Then
'Up
End If
If (e.KeyCode = System.Windows.Forms.Keys.Down) Then
SerialPort1.Write("e.KeyCode", 0, dato.Length)
'Down
End If
If (e.KeyCode = System.Windows.Forms.Keys.Left) Then
SerialPort1.Write("e.KeyCode", 0, dato.Length)
'Left
End If
If (e.KeyCode = System.Windows.Forms.Keys.Right) Then
SerialPort1.Write("e.KeyCode", 0, dato.Length)
'Right
End If
If (e.KeyCode = System.Windows.Forms.Keys.Enter) Then
SerialPort1.Write("e.KeyCode", 0, dato.Length)
'Enter
End If
End Sub
End Class
-
Miraste la ayuda de MSDN (http://msdn.microsoft.com/es-es/library/system.io.ports.serialport.aspx). Tiene un ejemplo que puede ayudarte a detectar tu problema.
-
he visto el ejemplo.pero no es una funcion basica para poder enviar algo o recivir.es un ejemplo muy enredado. para un principiante en vb8.
este varia vastante del vb6.
-
Yo tampoco manejo serialport, pero estuve buscando info, haber si alguna de estas te sirve.
http://electronicapic.iespana.es/manual/PicRS232_vcpp_y_vb.pdf A Partir de la pagina 115.
http://www.itworld2.com/serialport.aspx
http://mteheran.wordpress.com/2008/10/13/programa-de-comunicacion-serial-pc-a-pc-con-visual-basic-modo-consola/
Alguno de los enlaces puede dar con el clavo y solucionar el problema. La primera explica paso a paso como hacer la comunicación, asi que empezaria por es. Saludos!
-
muchas gracias.me han serivido tus enlaces.
pero sigo teniendo problemas,y no se de que puede ser.resulta que si pongo un puerto no existente,me sale un mensage de error en la pda virtual que sale en la implementacion.pero si pongo el com1,al pulsar el boton del formulario.la aplicacion se queda bloqueada.
he provado a conectar un adaptador usb-rs232 en com1.e incluso un emulador de puertos.
pero nada.aqui pongo lo que he insertado en el programa.con un boton en el formulario.
Imports System.IO.Ports
Public Class Form1
Public Sub New()
InitializeComponent()
If Not SerialPort1.IsOpen Then
Try
SerialPort1.Open()
Catch ex As System.Exception
MessageBox.Show(ex.ToString())
End Try
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim mbuffer As Byte() = New Byte(0) {}
mbuffer(0) = &H74 ' t
SerialPort1.Write(mbuffer, 0, mbuffer.Length)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
-
Hola
No uso VB2008 pero uso VC# 2008 que es casi casi lo mismo.
Debes crear un objeto del tipo serial port. En tu ventana de diálogo ve al menú Cuadro de Herramientas y busca el SerialPort. Es como si dibujaras un botón, pero es un objeto serialport y no se verá en tu ventana.
Después podrás modificar sus propiedades, incluyendo la que tanto buscas...
serialPort1.PortName = "COM1";
(http://img14.imageshack.us/img14/7962/serialu.th.jpg) (http://img14.imageshack.us/img14/7962/serialu.jpg)
Usando google encontré un ejemplo bien fácil.
http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx
Pasarlo a VB es fácil ya que las funciones son idénticas en ambos lenguajes.