puerto serie con c#

6
Puerto serie con C# Aintzane Conde Puerto serie con C#

Upload: aintzane-conde

Post on 03-Mar-2015

5.533 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Puerto Serie Con C#

Puerto serie con C# Aintzane Conde

Puerto serie con C#

Page 2: 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.

Page 3: Puerto Serie Con C#

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.

Page 4: Puerto Serie Con C#

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()); } }}

Page 5: Puerto Serie Con C#

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);

} }}

Page 6: Puerto Serie Con C#

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); }