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

Como rellenar una hoja Excel, directamente de los ‘datapoints’ de un Chart

Esta seria la idea:

Imports Microsoft.Office.Interop
        ' Definir Aplicacion, Hoja y Rango
        Dim oXL As Excel.Application
        Dim oWB As Excel.Workbook
        Dim oRg As Excel.Range
        ' Iniciar excel y obtener objeto "aplicacion"
        oXL = New Excel.Application
        ' Ajustar propiedades a tu gusto
        oXL.Visible = True
        oXL.DisplayAlerts = False
        ' Obtener una nueva hoja
        oWB = oXL.Workbooks.Add
        ' Trabajar con la hoja 1
        Dim ws As Excel.Worksheet = DirectCast(oWB.Worksheets(1), Excel.Worksheet)
        ws.Cells(1, 1) = "Titulo 1"
        Dim Col As Integer = 2
        Dim Row As Integer
        ' Imaginando un LineChar con valores numericos... distribuir series en columnas
        For Each s As Charting.Series In LineChar2D1.chart1.Series
            ws.Cells(1, Col) = s.Name
            Row = 1
            For Each p As Charting.DataPoint In LineChar2D1.chart1.Series(s.Name).Points
                'Mostrar valores en columnas por series
                ws.Cells(Row, Col) = p.YValues(0).ToString("N2")
                Row += 1
            Next
            Col += 1
        Next
        ' Ajustar aspecto final (Seleccionando rangos)
        oRg = CType(ws.Columns("A"Type.Missing), Excel.Range)
        oRg.AutoFit()

No olvideis que en chart tambien disponemos de la utilidad ‘Points.DataBindXY’ para procesarlos en bloque 😉
Espero os sea util,
PepLluis,

PD. No olvideis importar el espacio de nombres de ‘Office.Interop’

Un buen momento para saber como progresa Roslyn

Nuestra visión de compilador continua siendo el proceso por el que el código entra por un extremo, produciendo los binarios que salen por el otro. No dejes de conocer "Roslyn" pues vas a ver como los compiladores de Visual Basic y C # como API’s. Estas API’s van a permitir tener una vista previa de la próxima generación de modelos de objetos y de idiomas para la generación de código, el análisis y la refactorización, y el soporte para el uso de secuencias de comandos interactivos para Visual Basic y C #.

http://msdn.microsoft.com/es-es/roslyn

Saludos,
PepLluis,

GadgetoPlayer!

Te gusta mi ‘GadgetoPlayer’? Cualquier cosa es posible con esta colección de dispositivos con diversos procesadores, con plataformas de distintos fabricantes y un solo entorno MicroFramework en “Visual Studio” y dos lenguajes “VB / C#”… nada mejor para desarrollar prototipos rápidos en tiempo record!

GadgetoPlayer

Saludos,
PepLluis,