puerto serie con c#
TRANSCRIPT
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 System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using 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()); } }}
Puerto serie con C# Aintzane Conde
Código (guardar los datos)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;
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 spPuertoSerie_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { string Linea; Linea = spPuertoSerie.ReadLine(); rtbDatos.AppendText(Linea);
} }}
Puerto serie con C# Aintzane Conde
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 System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using 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); }