usbSerial test en FEZ-Cerberus

Uno de los requerimientos habituales en nuestros diseños es la posibilidad de intercambiar tramas con otros dispositivos a través del puerto serie.

En este ejemplo, realizaremos el punto de entrada para el modulo “usbSerial” en un FEZ-Cerberus. En el siguiente ejemplo recibiremos los bytes enviados por el dispositivo anfitrión y simplemente los reenviaremos… efectivamente! “Echo Response!”.

Espero os sea útil.
PepLluis,

using Microsoft.SPOT;
 
using GT = Gadgeteer;
using Gadgeteer.Modules.GHIElectronics;
 
namespace usbSerialSample
{
    public partial class Program
    {
        void ProgramStarted()
        {
            // Configurar el modulo serie
            usbSerial.Configure(9600, GT.Interfaces.Serial.SerialParity.None, GT.Interfaces.Serial.SerialStopBits.One,8);
            usbSerial.SerialLine.DataReceived += new GT.Interfaces.Serial.DataReceivedEventHandler(SerialLine_DataReceived);
            usbSerial.SerialLine.Open();
        }
 
        void SerialLine_DataReceived(GT.Interfaces.Serial sender, System.IO.Ports.SerialData data)
        {
            try
            {
                led7r.TurnLightOn(1, true);                     // Indicar Recepción led 1 (modulo led7r)
                int toRead = usbSerial.SerialLine.BytesToRead;  // Cantidad de bytes disponibles para leer
                byte[] buffer = new byte[toRead];               // Dimensionar array para leer del buffer
                usbSerial.SerialLine.Read(buffer, 0, toRead);   // leer bytes recibidos
                usbSerial.SerialLine.Write(buffer, 0, toRead);  // reenviar de vuelta bytes recibidos
                led7r.TurnLightOff(7);                          // apagar led señalizacion "error"
                led7r.TurnLightOff(1);                          // apagar led 1, para indicar fin operación
            }
            catch
            {
                led7r.TurnLightOn(7, true);                     // señalizar error encendiendo led rojo (led7r)
            }
        }
 
     }
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *