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