Cómo Manejar El PUERTO SERIE en C#
Cómo Manejar El PUERTO SERIE en C#
Cómo Manejar El PUERTO SERIE en C#
[singlepic id=2 w=320 h=240 float=right]Para manejar el puerto serie en C# es una tarea relativamente
sencilla, esto por permitirá conectarnos a infinidad de dispositivos electrónicos que utilizan este medio para
comunicarse con el ordenador. La forma mas habitual de conectar nuestro programa con cualquier dispositivo
electrónico (Arduino, …, etc.) suele ser mediante el puerto serie, ya sea por el tradicional RS232 o un puerto
USB que funciona como un puerto serie. Para poder conectar nuestros programas hechos en c# con estos
dispositivos, este nos facilita un control para poder realizar este tipo de comunicaciones. Este control es el
“SerialPort”. Para poder utilizarlo tenemos dos maneras, 1º arrastrándolo desde la barra de controles hasta
nuestro programa o, la otra forma de crearlo es desde nuestro propio código C#. Como la primera es obvio lo
que hay que hacer, paso a explicar la segunda forma.
Lo primero que tenemos que hacer es añadir un nuevo “using” para agregar todos objetos relacionados con el
manejo de puertos, System.IO.Ports, una vez que ya tengamos esto insertado en nuestro codigo, ya podemos
pasar ha definir la variable que contendrá nuestro control Serial Port, de la siguiente manera.
De esta forma creamos el objeto “spPuertoSerie”, que le hemos paso como parametros:
Nombre del puerto: el puerto al que nos queremos conectar, en el ejemplo “COM1”.
Velocidad de transmisión: la velocidad de trasmisión.
Paridad: Sirve para verificar si hay errores en la transmisión. Existen cuatro tipos posibles de paridad:
par (even), impar (odd), marcada (mark) y espaciada (space). También esta permitido no usar paridad
(none), como en el ejemplo.
Bits de datos: Es la cantidad de datos que se van ha enviar en cada paquete. Este valor puede ser 5, 7 u 8.
Valor más habitual es el 8.
Bits de parada: Indica el final del paquete, Los valores permitidos son 1, 1.5 o 2. También vale para la
sincronización de la comunicación.
También podemos crear nuestro objeto de una manera mas sencilla, si no conocemos los parámetros de la
comunicación.
// Abrir la comunicación
spPuertoSerie.Open();
// Cerrar la comunicación
spPuertoSerie.Close();
Y con esto ya tenemos resuelto el problema de la comunicación con los dispositivos mediante el puerto serie.
Ahora solo queda la recepción y envió de los datos. Pero eso sera en otro post.
Publicaciones relacionadas
[singlepic id=5 w=320 h=240 float=right]Muchas veces cuando cerramos nuestro programa en C# necesitamos
verificar que realmente se quiere cerrar el programa. Para hacer esto solo necesitamos utilizar
la función “FormClosing”
Para cancelar el cierre de la aplicación solo tenemos que poner a “true” la función “e.cancel”, esto hará que se
cancele el cierre del programa.
[singlepic id=4 w=320 h=240 float=right]Cuando queremos que el usuario introduzca una dirección de e-mail
en nuestro programa en C#, siempre nos queda la duda si la dirección es correcta o no. El siguiente código en
C# nos permite comprobar que la dirección de e-mail que se introduzca este por lo menos en su formato
correcto, es decir, “nombre”@”Dominio”.”extensión”. Esta comprobación no asegura que la dirección sea
valida, solo que el formato introducido es el correcto.
using System.Text.RegularExpressions;
La función nos devolverá “true”, si el formato del email es correcto, o “false” si el formato del email es
incorrecto. Ejemplo de como trabajar con la función.
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;
Descargar
Verificar Email en C#
Y esto es todo, sabiendo que el formato del email es correcto, la siguiente comprobación seria saber si la
dirección es valida, es decir, si pertenece a una cuenta real. Pero eso sera para otro post.
Conectarse ha una base de datos MySql con C#
13 marzo, 2013 pruebas Deja un comentario
Para conectarse ha una base de datos en MySql lo primero que tenemos que hacer es agregar la siguiente linea a
nuestro programa
using MySql.Data.MySqlClient;
Con esto agregamos todos las funciones que necesitamos para poder manejar la conexión con el servidor de
MySql.
Lo siguiente que tendremos que hacer sera crear las variables que nos permitirá manejar la conexión con el
servidor de MySql deseado.
Ahora lo que tenemos que hacer es pasarle los parámetros como la dirección del servidor de base de datos, el
nombre de la base datos ha la que queremos tener acceso, el nombre de usuario de la cuenta y su
correspondiente contraseña. Esto se puede hacer de la siguiente manera:
String sConexion;
sConexion1 = "Server=192.168.1.4;Database=BaseDeDatos;Uid=Usuario;Pwd=contrasenya;";
Creamos una variable string, luego le pasamos los valores anteriores con el siguiente formato:
Estos campos los tendremos que separar en la cadena que le pasemos a la variable con “;”.
Ahora solo tendremos que pasar la variable string que acabamos de crear , al parámetro correspondiente en la
variable de la conexión
dbConexion1.ConnectionString = sConexion1;
Despues de esto solo nos queda decirle al conector que se conecte al servidor.
dbConexion1.Open();
Siguiendo con lo explicado en el post (Leer ficheros XML a través de DataSet (c#)) al final del post se muestra
un ejemplo de como leer un fichero xml con un dataset y se mostraba el contenido en un DataGribView. En este
ejemplo los nombres que aparecen en las cabeceras de las columnas son los nombres de los campos
que están en el fichero. Para modificar estos nombres solo hay que utilizar la siguiente función implementada
dentro del objeto DataGridView
dataGridView1.Columns[0].HeaderText = "TextoAMostrarEnLaCabecera";
El numero entre corchetes en Columns, en el ejemplo 0, es el numero de la columna que vamos a cambiar el
texto del encabezado. Las columnas empiezan ha enumerarse desde el 0, es decir la primera columna es la 0.
Ejemplo de funcionamiento.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Xml_DataSet_1
{
public partial class fLeerXmlDataSet : Form
{
// Objeto dataset para manejar el fichero
// no le ponemos nombre de la base de datos para poder abrir cualquier fichero
DataSet dsLeerFicheroXML = new DataSet();
public fLeerXmlDataSet()
{
InitializeComponent();
}
Fácil, No?
Leer ficheros XML a través de DataSet (c#)
7 marzo, 2013 pruebas Deja un comentario
Para leer un fichero xml en c# se puede utilizar los componentes de manejo de base de datos. Esto
facilita enormemente su manejo.
Formato como se guarda la información en el fichero XML. El fichero en si es la base de datos, este puede
contener una base de datos o varias, dentro de este están las posibles tablas que pudiera tener esa base de datos.
Y estas a su vez contendrá los registros que tenga cada una de las tabla con sus respectivos campos.
Para leer el fichero XML lo primero tendremos que crear un objeto del tipo “DataSet” para que maneje el
fichero. Hay dos formas de crearlo, sabiendo como se llama nuestra base de datos o no.
De esta otra forma solo se podrán manejar los datos que estén dentro de esa base de datos. Teniendo creado el
objeto DataSet solo queda asignarle el nombre que tiene el fichero XML.
dataSet1.ReadXml("RutayNombreDelFicheroXML");
Con esto ya tenemos configurado nuestra DataSet para leer los datos del fichero. A partir de aqui, se maneja de
la misma forma que cualquier otro DataSet que funcione con cualquier otro tipo de base de datos.
Ejemplo de funcionamiento.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Xml_DataSet_1
{
public partial class fLeerXmlDataSet : Form
{
// Objeto dataset para manejar el fichero
// no le ponemos nombre de la base de datos para poder abrir cualquier fichero
DataSet dsLeerFicheroXML = new DataSet();
public fLeerXmlDataSet()
{
InitializeComponent();
}
En un principio el puerto com no dispone de ningun meto para saber si hay algo conectado a el, pero si dispone
de un metodo que enumera los puertos com disponibles en el PC tanto fisicos como virtuales, que es
SerialPort.GetPortNames() que devuelve un array.
Con la ayuda de este metodo y un foreach, podrias ir cambiando el puerto y pedir el dato, si no hay dato ese
puerto no es, si hay respuesta es el puerto correcto. El codigo para que sea lo mas automatico posible podria ir
en el evento load del formulario.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
namespace Consola_SERIAL1
{
class SerialPortExample
{
public static void Main()
{
// Get a list of serial port names.
string[] ports = SerialPort.GetPortNames();
Console.ReadLine();
}
}
}