Iniciando SUN Spot com NetBeans 6.1

Artigo original Starting with Sun SPOT using NetBeans 6.1
http://weblogs.java.net/blog/brunogh/archive/2008/04/starting_with_s.html

Se você não tem um SUN Spot (Figura 1), não se aborreça, você pode ainda ter muita diversão. Neste artigo, estaremos explicando como iniciar programação para este mundo usando NetBeans 6.1.


SUNSspot
Figura 1: SUN Spot

Transferindo NetBeans 6.1

1. Transfira o NetBeans 6.1. Um bom conjunto de novas funcionalidades, dê uma olhada “New and Noteworthy” e na página de “release” para uma lista detalhada.

Instalando o plugin SUN Spot

2. Instale o plugin SUN Spot para NetBeans. Transfira com-sun-sunspot-updatecenter.nbm. Agora no NetBeans, vá para:

2.1 Menu Ferramentas -> Plugin

2.2 Clique em na aba Downloaded

2.3 Clique no botão Add Plugins e selecione o arquivo. Confirme a instação clicando no botão install e aceite a licença.

Plugin SUNSpot NetBeans

Figura 2. Selecionando local e o arquivo  do com-sun-sunspot-updatecenter.nbm.

2.4 Finalmente, vá para a aba Available Plugins, marque SunSPOTApplicationTemplate, SunSPOTHostApplicationTemplate e Sun SPOT Info clique no botão Install e aceite a licença.

Plugin SUNSpot NetBeans

Figura 3. Selecionando os itens para instalar.

PS: David Simmons tem descrevido sobre estes passos no seu blog.

Plugin SUNSpot NetBeans

Figura 4. Itens instalados.

Obtendo Sun SPOT SDK 3.0 Beta

3. Obter o Sun SPOT SDK 3.0 Beta emailing David Simmons, mais detalhes aqui . Você receberá um link para transferir a ferramenta SPOTManager, que um jar que instala o SDK e pode executar o emulador. Tenha a certeza que que pelo menos possua o JDK 1.5 e pelo menos o Ant 1.6.5 instalado e configurado em seu sistema.

Criando uma Aplicação Demo

4. Vamos fazer rodar a aplicação demo padrão

4.1 File menu -> New Project

4.2 Selecione categoria Java, selecione projeto Sun SPOT Application e clique em Next.

4.3 Deixe o nome do projeto e o pacote de padrão e clique em Finish.

4.4 Abra org.sunspotworld.StartApplication.java. Você poderá observar que existe MIDlet que já tem algum código. Se você esta familiarizado com Java ME, você não terá grandes problemas. Mas basicamente, a arquitetura Sun SPOT é um CLDC (Connected Limited Device Profile) 1.1 e tem IMP (Information Module Profile) no topo – que pode ser definico com um MIDP (Mobile Information Device Profile) sem o material UI. Além disso, tem as mesmas bibliotecas e todas podem ser executadas na VM chama Squawk, isto é uma caracterizado sendo na maioria escritas em Java. Assim, implemente StartApplication o método abstrato da hierarquia do MIDlet (startApp,pauseApp que Squawk nunca chama o destroyApp). Este trabalha no ambiente sand box.

O código startApp code, na Lista 1, basicamente pega uma referência de objeto para o singleton eDemo Board e então faz com o LED blink red para um quarto de cada segundo. Como você pode ver, o código é de bastante alto nível e de fácil compreensão.

protected void startApp() throws MIDletStateChangeException {

     System.out.println("Hello, world");
new BootloaderListener().start(); // monitor the USB (if connected) and recognize commands from host
long ourAddr = Spot.getInstance().getRadioPolicyManager().getIEEEAddress();
System.out.println("Our radio address = " + IEEEAddress.toDottedHex(ourAddr));
ISwitch sw1 = EDemoBoard.getInstance().getSwitches()[EDemoBoard.SW1];
leds[0].setRGB(100,0,0); // set color to moderate red
while (sw1.isOpen()) { // done when switch is pressed
leds[0].setOn(); // Blink LED
Utils.sleep(250); // wait 1/4 seconds
leds[0].setOff();
Utils.sleep(1000); // wait 1 second
}
notifyDestroyed(); // cause the MIDlet to exit
}

Lista 1: código startApp.

Executando a Aplicação Demo no emulador

5 Coloque sua aplicação para executar no emulador.

5.1 Selecione o projeto e clique no botão direito do mouse e selecione Build. Isto vai gerar um jar na pasta /$PROJECT_HOME/suite/. Se você tem um dispositivo spot, você poderá enviar diretamente clicando no botão direito do mouse e selecionando Build Project + Deploy to Sun SPOT e clicando , esquecendo os próximos passos.

5.2 Abra o emulador (em ToolManager, vá para a aba Solarium tab e clique no botão Solarium). Então, no emulador, clique no menu Emulator -> New virtual SPOT, você perceberá um Sun SPOT poderá aparecer no quadrado na área direita.

Emulador SUNSpot

Figura 5. Novo virtual Spot

5.3 Clique no botão direito do mouse na figura do Sun SPOT, então clique em Specify application jar file... e selecione a application jar em /$PROJECT_HOME/suite/, em qual local a aplicação será construída no passo 

SUNSpot

Figura 6. Menu de seleção do local do arquivo jar  da aplicação.

SUNSpot

Figura 7. Selecionando local do arquivo jar  da aplicação.

5.4 Depois disto, clique novamente sobre o mesmo, então Run MIDlet and StartApplication. Finalmente, você poderá observar o LED vermelho piscando!!! Uau!

SUNSpot

Figura 8. Executando aplicação.

SUNSpot
Figura 9: NetBeans 6.1, ToolManager, Emulator e o LED vermelho piscando!

Meus próximos passos?

No NetBeans, checar o Sun SPOT Info, se você instalou com o plugin, para clicar no menu Window.

David Simmons' Blog - http://blogs.sun.com/davidgs

Roger Meike's Blog - http://blogs.sun.com/roger

Sun SPOT Feeds (realmente agrega muita coisas boas nos blogs) - http://planets.sun.com/SunSPOT/group/SunSPOT

Project Sun SPOT - https://www.sunspotworld.com

Open source Sun SPOT - https://spots.dev.java.net (dê uma olhada nestes bom subprojetos).

Pesquise por spaughts no youtube.com ou assine diretamente a tag feed.

Recentemente, Aaron Houston tem organizado uma chamada para conferência sobre o Sun SPOT com Roger Meike e publicado os agradáveis links que nós pegamos durante o envio de e-mail. Os links são avaliados aqui também. Slides aqui.

Sobre os autores

Lucas Torri (lucastorri@gmail.com) é estudante de Ciências da Computação na Universidade Federal de Santa Catarina (UFSC) e Embaixador de Campus da Sun Microsystems na UFSC. Em paralelo às suas atividades, escreve no seu blog (http://weblogs.java.net/blog/lucastorri), trabalha em seus projetos no portal java.net e participa da organização do GUJavaSC (http://www.gujavasc.org.br).

Bruno Ghisi (brunogh@gmail.com) é Bacharel em Sistemas de Informação pela  UFSC e desenvolvedor no Centro de Convergência Digital da Fundação CERTI (Centros de Referência em Tecnologias Inovadoras). É Java Champion e Mobile & Embedded Community Star. Dedica seu tempo livre e alguns projetos open source, ao seu blog técnico (http://weblogs.java.net/blog/brunogh) e ao GUJavaSC.

Dicas

Problemas na execução do Emulador.

A istalação do Emulador no Windows, possui um pequeno erro que aqui será descrito.

Após a instalação fazer a cópia de dois arquivos:

squawk.suite
squawk.suite.metadata

Os mesmo se encontram na pasta C:\java\Sun\SunSPOT\sdk\arm e devem ser copiados para a pasta C:\java\Sun\SunSPOT\sdk\lib, desta forma:

cp  C:\java\Sun\SunSPOT\sdk\arm\squawk.suite C:\java\Sun\SunSPOT\sdk\lib\squawk.suite

cp C:\java\Sun\SunSPOT\sdk\arm\squawk.suite.metadata C:\java\Sun\SunSPOT\sdk\lib\squawk.suite.metadata

Neste momento é recomendado que faça uma nova iniciação do Emulador.

Esta dica foi mencionada no foum:

https://projectsunspot.org/forums/viewtopic.php?p=5163&sid=10228f4b9017b6cc7add75304c1dafe8