domingo, 22 de julho de 2012

NeonMika.Webserver: páginas de internet no Netduino+

Uma das coisas que mais atraem no Netduindo+ é a porta de Ethernet na própria placa. Isso porque certamente todos vocês leitores do blog tem interesse em fazer algum projeto que se conecte a internet, eu em especial, tenho vários projetos e interesses com isso, mas antes de tudo tenho que começar a realizar testes.

Pesquisando no fórum do Netduino achei um tópico do Markus  VV. que falava sobre o NeonMika, um projeto a parte para aplicações envolvendo internet, nesse post pretendo realizar uma não breve explanação do que está disponível na página do projeto NeonMika.Webserver.

Eu fiz aqui no blog meio que uma tradução comentada do que está em algumas páginas do projeto.

Introdução:
 O NeonMika.Webserver trata de uma plataforma fácil de configurar e fácil de estender que através de um código otimizado com o mínimo necessário pretende atingir grandes resultados controlar e acessar o Netduino+.

Desenvolvido utilizando a tecnologia .NET MF, consegue se adaptar para qualquer dispositivo que já esteja rodando o .NET MF, assim pode funcionar bem até mesmo para o Netduino Go e a Fez Panda.

Entre as grandes vantagens apontadas para utilizá-lo são:
  • Respostas a requisições por XML. Basta criar uma instância do XML e atribuir uma URI para ouvir e preencher um Hashtable com as teclas de resposta e de valores; 
  • Funciona diretamente como um túnel entre uma requisição feita pela prota de internet e uma página HTML hospedade no sistema de arquivos do cartão SD. Além disso, segundo a página do projeto, o NeonMika permite ainda funcionar como uma espécie de "ftp" deixando colocar no cartão microSD arquivos diversos. 
  • Resposta a requisições personalizadas, o projeto visa permitir ainda ciar respostas personalizadas para a troca de informações com outros dispositivos em algum protocolo louco que você deseje criar.
O objetivo é simplificar para tornar "utilizável". Para quem vem do limbo que nem eu, e está acostumado com  os complexos códigos de TCP/IP da MICROCHIP em C com máquinas de estado infinitas etc e tal... isso é bastante interessante porque reduz muito o trabalho, especialmente quando pretende-se construir aplicativos mais comerciais (universal/confiável).

Estrutura:

O esquema da figura mostra como funciona o NeonMika. Os métodos do projeto manipulam tudo exceto a "ação" que trata efetivamente do que se deseja realizar e depende da aplicação em atividade.

Funcionamento do NeonMika.Webserver
Dessa forma a passagem das informações para sua camada de código denominada no esquema como camada de ação pode ser feita de três maneiras distintas:
  1. Respostas por XML;
  2. Respostas Complexas; e
  3. Respostas por arquivo. 

De modo mais específico a versão atual do NeonMika permite algumas coisas interessantes:
  1. Processamento de arquivos - envio e recebimento de arquivos colocados no cartão SD;
  2. Echo (xml) - Pode enviar informações do tipo variável = valor por xml ex.:ipnetduino/echo?value=toEcho;
  3. SwitchPin (xml) - mudar o estado da IO - ex.:ipnetduino/switchPin?pin=0-13
  4. SetPin (xml) - setar o estado da IO - ex.:ipnetduino/setPin?pin=0-13&value=true
  5. IndexPage (complex) -manipulação de páginas de html escritas em código. - ex.:ipnetduino/
A ideia do funcionamento sem cartão, segundo o autor é permitir a manipulação do Netduino+ via o navegador de Internet, o que é bem legal e útil mas limita muito o projeto,  lembre-se que um dos problemas do Netduino+ é a quantidade de memória disponível para aplicações porque dos 512Kb uma boa parte é ocupada pelo .NET MF e agora pelo NeonMika.

Outra vantagem útil é que o NeonMika permite que você deixe-o funcionando de modo independente sendo um túnel de código entre uma requisição feita pela rede a arquivos HTML devidamente dispostos no cartão microSD

O codeplex é bem organizado tem a documentação do código escrita em na parte de Documentação, não é muita coisa, mas ajuda um pouco. Como eu estou começando também nisso de servidor web com o Netduino+ to tendo que estudar tudo que está disponível.

Se você baixar o arquivo mais atual do NeonMika você vai ver disponível três pastas: Executeable, Framework  e Pictures.

Na pasta Framework está disponível o código básico para um novo projeto baseado em NeonMika.Webserver. Confira esta pasta se você quiser uma versão "virgem" do NeonMika.Webserver.

Na outra pasta, Executeable, tem contem pequenos projetos criados pelo próprio Markus que são baseados no NeonMika.Webserver, ou seja, é a referência do que funciona com o NeonMika.Webserver.


Então, finalmente vamos ao primeiro teste com  programa do Markus!  Seguindo os passos dados pelo mestre:
  1. Baixar o NeonMika.Webserver e abrir o projeto contido em "Executeable\NeonMikaWebserver" 
  2. Debugar o projeto no Netduino; Como ele entra no DHCP teoricamente funciona, para mim ficou na teoria mesmo porque não entendi nada.
  3. Fique atendo no Output do Debug que ele vai dizer o IP que o dispositivo subui, no meu foi http://192.168.1.153/
  4. Joga o valor no navegador que você verá uma página como da figura.

Tela do teste do NeonMika
 Pronto. Agora já fiz um webserver com o Netduino+. só falta todo o resto que vou deixar para um próximo post, especialmente porque não ficou todo colorido como mostra no site do Markus,
 



Nenhum comentário:

Postar um comentário