Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/11/2009, 07:44
Osanchez
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Leer el puerto serie desde .net

Buenos dias ante todo disculpen soy nuevo en esto de los foros.

Pues para leer datos desde el puerto serial(en framework 3.5) espero te sirva el ejemplo lo comentarie bastante.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace PruebadeTramas
{
public partial class EscuchaPuerto : Form
{
SerialPort serialPort = new SerialPort();
public EscuchaPuerto()
{
InitializeComponent();
}

private void btnListen_Click(object sender, EventArgs e)
{

}

private void EscuchaPuerto_Load(object sender, EventArgs e)
{

try
{
serialPort.Open();//abro el puerto
serialPort.DataBits = 8;//numero de bits que componen el byte
timer1.Interval = 1000;//tiempo de intervalo del timer
timer1.Enabled = true;//habilito el timer
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "error abriendo");
}
}

private void EscuchaPuerto_FormClosed(object sender, FormClosedEventArgs e)
{
if (serialPort.IsOpen)
{
serialPort.Close();//cuando se cierra el formulario se cierra el puerto

}

}
int conteo = 0;
private void timer1_Tick(object sender, EventArgs e)
{
if (conteo < 9)//como mi trama tiene 8 bytes para que muestre toda la trama en una linea
{
conteo = conteo + 1;//contador para saber en que byte de la trama va
if (serialPort.BytesToRead > 0)
{
textBox1.Text += serialPort.ReadByte().ToString() + "-";//leo el byte y lo entrego al textbox
textBox2.Text = conteo.ToString();//muestro el conteo
//string var = serialPort.ReadByte().ToString();

}

}
else
{
conteo = 0;
textBox1.Text += "\r\n";//doy un salto de linea cuando mi trama sea completa
}



}


}
}