Puerto serie con C

Anuncio
Puerto serie con C#
Aintzane Conde
Puerto serie con C#
Puerto serie con C#
Aintzane Conde
Puerto serie con C#
Se trata de crear una aplicación para poder utilizar datos recibidos y/o enviados desde un
puerto serie.
Abrimos un nuevo proyecto de Microsoft Visual C# Express 2010.
Puerto serie con C#
Aintzane Conde
Para leer datos desde el puerto serie debemos añadir al formulario un Serialport (puerto serie)
desde el Cuadro de Herramientas (Componentes), al que le cambiaremos las siguientes
propiedades:
•
•
•
(Name):PuertoSerie.
BaudRate: es la velocidad en bps.
PortName: aparece por defecto COM1. Podremos saber qué puerto estamos utilizando así:
◦ En Windows XP: Inicio, Panel de Control, Sistema, Administrador de dispositivos,
Puertos(COM y LPT).
◦ En Windows Vista: Inicio, Panel de Control, Hardware y Sonido, Administrador de
dispositivos, Puertos (COM y LPT). También tenemos la opción, en el Panel de
Control, de ir a la Vista Clásica y seguir los pasos de Windows XP.
Por otra parte, en Eventos, pincharemos en DataReceived para que nos aparezca
PuertoSerie_DataReceived.
También arrastraremos un RichTextBox (Controles Comunes) al que llamaremos (propiedad
(Name))rtbTexto.
Haciendo doble click encima del control PuertoSerie anteriormente citado, escribiremos el código.
Puerto serie con C#
Aintzane Conde
Código (leer los datos)
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
CheckForIllegalCrossThreadCalls = false;
InitializeComponent();
try
{
PuertoSerie.Open();
}
catch (Exception ex)
{
MessageBox.Show("Error al abrir el puerto serie: " + ex.Message);
}
}
}
private void PuertoSerie_DataReceived(object sender,
System.IO.Ports.SerialDataReceivedEventArgs e)
{
rtbDatos.AppendText(PuertoSerie.ReadLine());
}
}
Código (guardar los datos)
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
CheckForIllegalCrossThreadCalls = false;
InitializeComponent();
try
{
PuertoSerie.Open();
}
Puerto serie con C#
}
Aintzane Conde
catch (Exception ex)
{
MessageBox.Show("Error al abrir el puerto serie: " + ex.Message);
}
private void spPuertoSerie_DataReceived(object sender,
System.IO.Ports.SerialDataReceivedEventArgs e)
{
string Linea;
Linea = spPuertoSerie.ReadLine();
rtbDatos.AppendText(Linea);
}
}
}
Código (usar los datos)
En el caso en el que queramos usar los datos, en varios puntos del programa, es recomendable
declarar la variable Linea como variable global. Esto se realiza de la siguiente manera:
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
CheckForIllegalCrossThreadCalls = false;
InitializeComponent();
try
{
PuertoSerie.Open();
}
catch (Exception ex)
{
MessageBox.Show("Error al abrir el puerto serie: " + ex.Message);
}
}
internal static string Linea;
private void spPuertoSerie_DataReceived(object sender,
System.IO.Ports.SerialDataReceivedEventArgs e)
{
Linea = spPuertoSerie.ReadLine();
rtbDatos.AppendText(Linea);
}
Descargar