Comunicación puerto serie en C #

Comunicación puerto serie en C #
El puerto serie es una interfaz de comunicación serie a través del cual se transfiere información de entrada o salida bit a bit. Una búsqueda rápida en Google revela que hay un montón de aplicaciones gratuitas para monitorización de puestos serie disponibles para usuarios de PC. Sin embargo, lo que a estas aplicaciones le falta, es la posibilidad de controlar el puerto serie de manera directa. Son generalmente buenos "sniffers", pero no permiten que el usuario realmente escriba en el puerto serie o controle cualquier dispositivo acoplado a él. Las aplicaciones con capacidad de escritura incluida no son gratuitas y el coste más bajo es de alrededor de 50 EUR- una gran cantidad de dinero teniendo en cuenta lo fácil que es hacer una aplicación personalizada. En este artículo se muestra cómo es posible construir este tipo de aplicación utilizando el entorno C #. La intención no es ser un tutorial C #, sino enseñar a un usuario que tenga conocimientos básicos de C o C # a integrar el control de puerto serie en una de sus aplicaciones. Para la aplicación de ejemplo, he utilizado el entorno de desarrollo SharpDevelop, que incluye un compilador de C #. Este es un IDE de código abierto que ocupa muy poco espacio en el disco duro y puede ser una buena alternativa a los usuarios que no desean instalar los gigabytes de Visual Studio en su PC para una simple aplicación de puerto serie. Una vez que haya descargado e instalado el entorno SharpDevelop, cree un proyecto de aplicación para Windows (solución) denominado SerialPort:

Una vez que haya creado la aplicación, muestre el formato de ventanas que fue automáticamente creado (haciendo clic en el botón "Design" situado en la parte inferior de la pantalla) y despliegue el menú disponible en "Components" disponible en el menú de la izquierda:

Se dará cuenta de que uno de los componentes disponibles aquí es la denominada "SerialPort". Recoja ese componente y arrástrelo a la superficie de la forma de la derecha. Esto agregará el componente a su proyecto. El objeto que se crea se llama "serialPort1" y se utilizará para acceder al puerto serie. Para poder utilizar este componente, sin embargo, es necesario añadir al comienzo de su código la directiva para el uso del espacio para nombres de System.IO.Ports, ya que este no se agrega por defecto cuando usted crea la solución: using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using System.IO.Ports; Una vez hecho esto, cree un botón en la superficie de la forma, llámelo "button1" y cambie su etioqueta a “Write”. Haga doble clic en él con el fin de crear la función que se ejecutará cuando se hace clic en el botón.

En esta función se llevarán a cabo varias tareas. La primera es configurar la velocidad de transmisión, el puerto COM, el número de bits de datos, la paridad y los bits de parada de la comunicación:

//configuring the serial port
serialPort1.PortName="COM1";
serialPort1.BaudRate=9600;
serialPort1.DataBits=8;
serialPort1.Parity=Parity.None;
serialPort1.StopBits= StopBits.One;

Tenga en cuenta que si el puerto COM1 ya es utilizado por una aplicación, usted recibirá un mensaje de error cuando se ejecuta esta instrucción. Alternativamente, si se abre el puerto COM1 con su aplicación de C # y, a continuación, no se cierra, cualquier otra aplicación que esté tratando de utilizarlo no será capaz de hacerlo. Bien, ahora es el momento de escribir en el puerto serie: //write data to serial port serialPort1.Write("ABC"); Cuando se ejecuta esta instrucción, tres bytes son enviados al puerto serie: el código ASCII de "A", el código ASCII de "B" y el código ASCII de "C". Una vez que la operación de escritura se realiza, no debe olvidar cerrar el puerto: //close the port serialPort1.Close();

Por lo tanto, como resumen, todo el código que compone el cuerpo de la función debería ser:

void Button1Click(object sender, EventArgs e)
{
//configuring the serial port
serialPort1.PortName="COM1";
serialPort1.BaudRate=9600;
serialPort1.DataBits=8;
serialPort1.Parity=Parity.None;
serialPort1.StopBits= StopBits.One;

//opening the serial port
serialPort1.Open();

//write data to serial port
serialPort1.Write("ABC");

//close the port
serialPort1.Close();

}


Ahora usted tiene un amplio camino abierto delante de usted, ya que usted podrá escribir sus propias aplicaciones personalizadas que puedan enviar cualquier dato a cualquier dispositivo conectado al puerto serie. El código anterior es también compatible con convertidores USB a serie, a condición de que sus drivers trabajen emulando los puertos COM.

 

Nuevos

  • JackyLee
  • hector albornoz
  • Antonio848
  • ingalqa
  • jose enrique lo...

En línea

En este momento hay 0 usuarios y 1 invitado en línea.
hit counter