Post invitado: “MiniWeb Server Experience” por Pep Lluis Bano.

clip_image002 

Esta es una pequeña guía de introducción, para completar de manera abreviada los pasos necesarios y hacerte con el control de tu “Premio Megathon” en pocos minutos.

Contenido:

- Placa Cerbuino Bee

- Modulo Ethernet ENC28

- Cable Mini-USB

clip_image002[5]

Pasos previos:

Necesitaremos disponer de un equipo que tenga Visual Studio 2010, en cualquiera de sus versiones: “Express”, “Professional”, “Premium”, “Ultimate” (**)

Para poder empezar la gran aventura, y disponer de la plantillas de proyecto deberemos instalar los SDK de Microframework, Gadgeteer y gadgets del fabricante de los módulos.

Puedes instalarlos desde los siguientes enlaces:

Netmf desde codeplex : https://netmf.codeplex.com/downloads/get/470705
Gadgetter y SDK Hardware : https://www.savecomm.net/downloads/GHISDK4v2_1402.zip

Este último te conducirá a un a un asistente con seis apartados diferentes que deberás completar con el típico “siguiente” “siguiente”.

Llegados a este punto ya podemos poner manos a la obra.

(**) Microframework ya está disponible en su versión 4.3 para Visual Studio 2012, en la actualidad el SDK de gadgeteer solo está disponible para la versión 4.2, aunque está anunciada en breve su liberación para Visual Studio 2012.

Comprobación:

Cada uno de los kits ha sido revisado y actualizado a la última versión para el SDK de Microframework 4.2 QEF2.

Todas las unidades centrales de Microframework y Gadgeteer disponen de un led normalmente de color rojo que indica la presencia de alimentación, además acostumbran a incluir un led conocido “DebugLed” o “Configurable Led” que nos permite utilizarlo para señalizar operaciones definidas por nosotros mismos.

Con el propósito de testear cada una de las placas, hemos descargado una aplicación con el temporizador de un segundo, por lo tanto nadas más conectar nuestro cerbuino al USB el sistema nos instalara el driver “WINUSB” y observaremos de forma inmediata que nuestro “led de usuario” parpadea con una cadencia de un segundo.

                                                                            clip_image002[7]

Estos últimos años algunos de nosotros hemos recibido el merecido apodo de “Blinking mans”, es fácil de entender después de repetir y repetir el desgastado ejemplo de poner un led a parpadear en las introducciones a microframework, no por nada es nuestro “Hello World”

Pues bien vamos a ello.

  • Iniciaremos una instancia de Visual Studio
  • Nuevo proyecto>Gadgeteer>.NET Gadgeteer Aplicaction (NETMF 4.2)

             clip_image002[12]

  • Pulsamos Aceptar
  • Cuadro de Herramientas>Gadgeteer Mainboards>FEZCerbuinoBee

             clip_image002[14]

  • Pestaña Program.cs o Program.vb

              clip_image002[16]

             clip_image002[18]

Los siguientes pasos… los de siempre: “F5” y ¡arrancando!

Al iniciar la depuración “debug” Visual Studio enviara el ensamblado al Cerbuino, iniciara el modo ‘debug’ y finalmente lanzara la ejecución de nuestro ensamblado para el “Blinking led”.

Esta simple introducción nos pondrá en disposición para poder afrontar nuestro siguiente reto, pues lo tendremos todo dispuesto para nuestra:

“MiniWeb Server Experience”

Así que no seas perezoso y ¡continua leyendo!

 

TCP / IP stack para NET MicroFramework - Desde nuestra “Open Community”

Este es uno de esos trabajos que podemos encontrar en nuestra comunidad de open source y que no deja de sorprenderme por su gran valor educativo. A menudo hablando con diversos desarrolladores (sobre todo si son de los antiguos), me parece detectar una cierta nostalgia que recela de los espacios de nombres porque abstraen la pila del lenguaje y terminan sintetizando complejos algoritmos en una sola línea. En tal sentido este es un verdadero ejemplo de cómo podemos cimentar nuestro interés y conocimiento en desgranar las tramas que circulan por los cables y materializan la pila de TCP/IP para su posterior implementación y estudio, eso si, de forma “Administrada”.

Para finalizar, lo curioso de este proyecto es su promiscuidad por ser fruto de la observación “de lo que circula por los cables” más que de la implementación de los famosos RFC’s del consorcio.
Aquí tenéis el Link:

https://mip.codeplex.com/

Una vez lo tengas descargado y descomprimido (Carpeta) : mip_v.03

  • Abrir el proyecto : NetworkingService
  • Dentro de la Solución>Establecer proyecto de Inicio>NetworkingExample
  • Abrir la clase>WebServerProgram

Para que funcione en tu LAN debes efectuar tres ajustes manuales, uno de ellos asignar una IP. (Más adelante cuando seas experto puedes dejar que la adquiera de un DHCP) pero inicialmente será más fácil darle una conocida.

1) En la función “Main” asignaremos nuestra Ip Static adecuando el siguiente código:

#region Static IP example

Networking.Adapter.IPAddress = "10.5.0.95".ToBytes();

Networking.Adapter.Gateway = "10.5.0.1".ToBytes();

Networking.Adapter.DomainNameServer = Networking.Adapter.Gateway;

Networking.Adapter.DomainNameServer2 = "193.147.208.12".ToBytes();

Networking.Adapter.DhcpDisabled = true;

#endregion

Como podéis ver en nuestro ejemplo la 10.5.0.95

2) Indicaremos a nuestra pila que la interface Ethernet está conectada a nuestro cerbuino a través del perfil “Cerb40_ENC28J60” de la siguiente forma :

Networking.Adapter.Start(new byte[] { 0x5c, 0x86, 0x4a, 0x00, 0x00, 0xde }, "mip", InterfaceProfile.Cerb40_ENC28J60);

2) IMPORTANTE : Conectar el modulo ENC28 al Zócalo número 1 de nuestro Cerbuino bee

Sin más preámbulos, conectaremos nuestro cable usb del cerbuino y pulsaremos F5

        clip_image002[20]

 

Una vez iniciada la depuración podremos verificar que nuestro MIP está rodando correctamente, Lanzaremos un ping contra la IP estática fijada anteriormente, en tal caso ya podremos atacar a nuestro “Mini YO” en el explorer con https://mip

      clip_image002[22]

      clip_image002[24]

¡Bienvenidos a los mini web Servers!

Pep Lluis Bano

Microsoft MVP – Visual Developer

netMF y Gadgeteer {Compartir, Aprender, Aportar, Debatir}

https://msmvps.com/blogs/peplluis/

https://savecomm.net/bloghttps://savecomm.net/boards