Comunicacion serial

14/09/2006 - 23:35 por Abel | Informe spam
Hola,

Quisiera saber como se maneja el puerto serie para un programa para PPC en
VB2005

Preguntas similare

Leer las respuestas

#1 Alejandro Mezcua
15/09/2006 - 08:46 | Informe spam
Hola, Abel.

En VB 2005 tienes un control llamado SerialPort que puedes incluir en un
formulario. Lo único que tienes que hacer es decirle el puerto COM que quieres
usar (y otros parámetros si quieres, como la velocidad, fijada por omisión
a 9600bps). Una vez configurado llamas al método Open del puerto y, si se
abre correctamente, podrás escribir datos con los métodos Write o WriteLine.
Para leer datos tienes un evento (DataReceived) que salta cuando llegen datos
al puerto. Para leer los datos que lleguen tienes los métodos Read o ReadLine.

Ten en cuenta que este evento salta en un Thread secundario con lo que si
quieres actualizar algo del UI a la recepción de los datos deverás usar el
método Invoke del formulario o alguno de sus controles.

Espero que te sirva. En la documentación de VS tienes ejemplos concretos
para ver código.

Un saludo,

Alejandro Mezcua
MVP .NET Compact Framework
http://www.byteabyte.net/

Hola,

Quisiera saber como se maneja el puerto serie para un programa para
PPC en VB2005

Respuesta Responder a este mensaje
#2 Abel
15/09/2006 - 22:27 | Informe spam
Gracias Alejandro,

Hice un pequeño programa que manda la hora del sistema por el Comm1 de la
PC. El codigo lo muestro a continuación. Que cambios le debo hacer para que
funcione en la pocket. Mi pocket tiene el puerto serie físico.

Gracias de antemano.

Imports System.IO.Ports
Public Class Form1
Dim Comm1 As System.IO.Ports.SerialPort =
My.Computer.Ports.OpenSerialPort("COM1") ', 2400, IO.Ports.Parity.none, 8,
IO.Ports.StopBits.One)

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Comm1.BaudRate = 9600
Comm1.Parity = IO.Ports.Parity.None
Comm1.DataBits = 8
Comm1.StopBits = IO.Ports.StopBits.One
Comm1.Handshake = IO.Ports.Handshake.None
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
TextBox1.Text = TimeOfDay
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim hora As String, b As String
hora = TimeOfDay
b = Mid(hora, 1, 5) & vbCrLf
Comm1.Write(b)
End Sub
Respuesta Responder a este mensaje
#3 RFOG
16/09/2006 - 12:37 | Informe spam
En teoría, nada.

Pero ten en cuenta que si el receptor no está hecho en VB, va a recibir una
burrada de caracteres sin sentudo alguno, porque si no me equivoco estás
enviando un string, no una una tira de bytes.



Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
De las potencias del alma/ la memoria es la cruel,/ porque causa el mayor
mal/ recordando el mayor bien.

"Abel" wrote in message
news:
Gracias Alejandro,

Hice un pequeño programa que manda la hora del sistema por el Comm1 de la
PC. El codigo lo muestro a continuación. Que cambios le debo hacer para
que
funcione en la pocket. Mi pocket tiene el puerto serie físico.

Gracias de antemano.

Imports System.IO.Ports
Public Class Form1
Dim Comm1 As System.IO.Ports.SerialPort > My.Computer.Ports.OpenSerialPort("COM1") ', 2400, IO.Ports.Parity.none, 8,
IO.Ports.StopBits.One)

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Comm1.BaudRate = 9600
Comm1.Parity = IO.Ports.Parity.None
Comm1.DataBits = 8
Comm1.StopBits = IO.Ports.StopBits.One
Comm1.Handshake = IO.Ports.Handshake.None
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
TextBox1.Text = TimeOfDay
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim hora As String, b As String
hora = TimeOfDay
b = Mid(hora, 1, 5) & vbCrLf
Comm1.Write(b)
End Sub

Respuesta Responder a este mensaje
#4 Alejandro Mezcua
18/09/2006 - 09:56 | Informe spam
Hola, Abel.

De manera muy parecida a como estás haciendo aquí, tienes que usar el método
Write del control de puerto de serie. Añade un puerto de serie a tu form,
llama al método Open y luego llama a Write, pasando el string que tenga la
hora que quieres enviar.

Un saludo,

Alejandro Mezcua
MVP .NET Compact Framework
http://www.byteabyte.net/


"Abel" wrote in message
news:
Gracias Alejandro,

Hice un pequeño programa que manda la hora del sistema por el Comm1 de la
PC. El codigo lo muestro a continuación. Que cambios le debo hacer para
que
funcione en la pocket. Mi pocket tiene el puerto serie físico.

Gracias de antemano.

Imports System.IO.Ports
Public Class Form1
Dim Comm1 As System.IO.Ports.SerialPort > My.Computer.Ports.OpenSerialPort("COM1") ', 2400, IO.Ports.Parity.none, 8,
IO.Ports.StopBits.One)

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Comm1.BaudRate = 9600
Comm1.Parity = IO.Ports.Parity.None
Comm1.DataBits = 8
Comm1.StopBits = IO.Ports.StopBits.One
Comm1.Handshake = IO.Ports.Handshake.None
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
TextBox1.Text = TimeOfDay
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim hora As String, b As String
hora = TimeOfDay
b = Mid(hora, 1, 5) & vbCrLf
Comm1.Write(b)
End Sub

Respuesta Responder a este mensaje
#5 Abel
19/09/2006 - 01:51 | Informe spam
Que tal alejandro,
Gracias por tus respuestas. Ya tengo en mi form el puerto serie. El programa
funciona bien en la PC, pero cuando lo paso al compact framework me dice
'Computer' is not a member of 'My'.

Otra duda que tengo es ¿que debo utilizar, el desarrollo para pocket pc 2003
o el de windows ce5.?

Gracias
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida