Mudanças entre as edições de "Fundamentação Teórica do Projeto - Processamento de Strings e acesso ao TinyWebDB usando o Scratch"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '= O acesso via Scratch = O ''Scratch'' na versão 1.4 não apresenta facilidades para acesso a um ''Web Database'' (''WebDB''). Para o desenvolvimento do Projeto Integrador, foi...')
 
 
(11 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 6: Linha 6:
 
#Baixe o programa scratch de [[Media:InterfaceWebDB.sb | InterfaceWebDB]].
 
#Baixe o programa scratch de [[Media:InterfaceWebDB.sb | InterfaceWebDB]].
 
#Carregue o programa no Scratch. Você deve observar, uma mensagem de conexão com sensore remoto ativa.
 
#Carregue o programa no Scratch. Você deve observar, uma mensagem de conexão com sensore remoto ativa.
#Baixe o arquivo java de [http://www.sj.ifsc.edu.br/~eraldo/PI1/InterWebDB.jar Programa Java]
+
#Baixe o arquivo java de [http://www.sj.ifsc.edu.br/~eraldo/PI1/InterWebDB.jar Programa Java InterWebDB v0.3]
 
#Abra um terminal e vá até o diretório onde foi baixado o arquivo java. Execute-o com:
 
#Abra um terminal e vá até o diretório onde foi baixado o arquivo java. Execute-o com:
 
   java -jar InterWebDB.jar
 
   java -jar InterWebDB.jar
Linha 12: Linha 12:
 
Pronto, agora pode-se executar o programa ''Scratch''. Mas antes vamos entender um pouco do programa. O  ''sprite'' InterfWevDB encapsula um código crítico de comunicação com o programa Java e expõe uma interface para outros scripts que podem ser acionados através de broadcast.  O código desse sprite não deve ser modificado. Para demonstrar o funcionamento da comunicações com o WebDB foi disponibilizado um código no palco.
 
Pronto, agora pode-se executar o programa ''Scratch''. Mas antes vamos entender um pouco do programa. O  ''sprite'' InterfWevDB encapsula um código crítico de comunicação com o programa Java e expõe uma interface para outros scripts que podem ser acionados através de broadcast.  O código desse sprite não deve ser modificado. Para demonstrar o funcionamento da comunicações com o WebDB foi disponibilizado um código no palco.
  
[[imagem:RpalcoInterfaceWebDB-PI1-Engenharia.png|500px]]
 
  
 
==Apontando para a base de dados==
 
==Apontando para a base de dados==
  
O servidor WebDb se encontra em alguma máquina com endereço IP válido. Este endereço pode estar associado a um nome (nome de DNS). Por default, na implementação no Scratch, o servidor apontado é o do MIT.
+
O servidor WebDb se encontra em alguma máquina com endereço IP válido. Este endereço pode estar associado a um nome (nome de DNS). Para apontar para uma outra base de dados deve-se configurar o endereço da mesma usando o sinal setUrlWebDB. Para tanto, deve-se atribuir atribuir ao parâmetro ''par1WebDB'' o nome desejado ('''ifscengtelecom-pji1.appspot.com''). Em seguida, deve-se emitir o sinal ''setUrlWebDB'' com opção de espera (anuncie para todos e espere).
  
Para apontar para uma outra base de dados deve-se configurar o endereço da mesma usando o sinal setUrlWebDB
+
[[Arquivo:setUrlWebDB.png]]
Para tanto, deve-se atribuir atribuir ao parâmetro ''par1WebDB'' o nome desejado. No exemplo o parâmetro é configurado para a máquina ''raul''. Em seguida, deve-se emitir o sinal ''setUrlWebDB'' com opção de espera (anuncie para todos e espere)
 
  
 
==Acompanhando o conteúdo e atualizando a base de dados via browser==
 
==Acompanhando o conteúdo e atualizando a base de dados via browser==
  
Para operar e monitorar a base de dados via browser basta colocar a ''url raul:8080'' na barra de endereços. Clicar em ''store'' ou ''get'' para acessar uma ''tag'' específica.
+
Para operar e monitorar a base de dados via browser basta colocar a [[url do TinyWebDB]]
 +
na barra de endereços. Clicar em ''store'' ou ''get'' para acessar uma ''tag'' específica. Quando deixar de usar alguma tag, use o comando [Delete] para apagá-la.
  
 
==Lendo dados associados a um dado ''tag''==
 
==Lendo dados associados a um dado ''tag''==
  
Para ler um dado associado a um dado ''tag'' deve-se simplesmente atribuir ao parâmetro ''par1WebDB'' o nome do tag desejado e fazer um envio do sinal ''LerValorTagWebDB'' com opção de espera. Na sequência, estará armazenado no mesmo parâmetro, o valor lido. No caso de erro de conexão será retornada uma mensagem de ERRO DE CONEXÃO.
+
Para ler um dado associado a um dado ''tag'' deve-se simplesmente atribuir ao parâmetro ''par1WebDB'' o nome do tag desejado e fazer um envio do sinal ''LerValorTagWebDB'' com opção de espera. Após o acesso ao WebDB e recuperação do valor da Tag, o valor retornado estará disponível no parâmetro ''par1WebDB''. Caso haja erro de conexão será retornada uma mensagem de ERRO DE CONEXÃO dentro do parâmetro ''par1WebDB''.
 +
 
 +
Exemplo de uso:  Como o seguinte código será obtido
 +
 
 +
[[Arquivo:LerValorTagWebDB.png]]
 +
 
 +
[[Arquivo:LerValorTagWebDBresp.png]]
  
 
==Escrevendo dados associados a um dado ''tag'' ==
 
==Escrevendo dados associados a um dado ''tag'' ==
Linha 33: Linha 38:
 
Para escrever um dado basta colocar no ''par1WebDB'' o nome do tag desejado e no ''par2WebDB'' o nome do valor desejado.
 
Para escrever um dado basta colocar no ''par1WebDB'' o nome do tag desejado e no ''par2WebDB'' o nome do valor desejado.
 
Deve-se então enviar o sinal EscreverValorTagWebDB e esperar.
 
Deve-se então enviar o sinal EscreverValorTagWebDB e esperar.
 +
 +
==Processamento de Strings no Scratch==
 +
 +
Faça o download do [[Media:ExemploProcessamentoStrings.sb | Tutorial de Processamento de Strings]] e siga esse tutorial passo-a-passo para aprender como processar strings com Scratch.  Observe que o sprite <tt>ProcStrings</tt> não deve ser alterado para processar a string.  Esse sprite tem dois procedimentos <tt>listaSubitens</tt> e <tt>cortarLetras</tt>.
 +
*O procedimentos <tt>listaSubitens</tt> separa uma string em subitens usando o carater separador escolhido,  sendo ativado pelo envio da mensagem <anuncie (listaSubitens) para todos e espere>.
 +
 +
[[Arquivo:listaSubitens.png]]
 +
*O procedimentos <tt>cortarLetras</tt> corta de uma string os caracteres centrais de acordo com os índices fornecidos, sendo ativado pelo envio da mensagem <anuncie (cortarLetras) para todos e espere>.
 +
[[Arquivo:cortarLetras.png]]
 +
 +
<!--Para usar o sprite ProcStrings basta importar esse sprite para o seu código Scratch e chamar os procedimentos do -seu código (script).
 +
 +
*[[Media:SpriteProcStrings.sprite | Sprite ProcStrings]]-->
 +
 +
O sprite abaixo pode ser lido para dentro de um projeto e diretamente usado.
 +
 +
[[Media:ProcessamentoStrings.sb]]

Edição atual tal como às 08h21min de 12 de julho de 2013

O acesso via Scratch

O Scratch na versão 1.4 não apresenta facilidades para acesso a um Web Database (WebDB). Para o desenvolvimento do Projeto Integrador, foi criado um sprite que permite acessar a WebDB de forma semelhante ao App Inventor. Um programa java auxiliar deve ser usado para viabilizar este acesso.

Para testar o acesso faça os seguintes passos:

  1. Baixe o programa scratch de InterfaceWebDB.
  2. Carregue o programa no Scratch. Você deve observar, uma mensagem de conexão com sensore remoto ativa.
  3. Baixe o arquivo java de Programa Java InterWebDB v0.3
  4. Abra um terminal e vá até o diretório onde foi baixado o arquivo java. Execute-o com:
  java -jar InterWebDB.jar

Pronto, agora pode-se executar o programa Scratch. Mas antes vamos entender um pouco do programa. O sprite InterfWevDB encapsula um código crítico de comunicação com o programa Java e expõe uma interface para outros scripts que podem ser acionados através de broadcast. O código desse sprite não deve ser modificado. Para demonstrar o funcionamento da comunicações com o WebDB foi disponibilizado um código no palco.


Apontando para a base de dados

O servidor WebDb se encontra em alguma máquina com endereço IP válido. Este endereço pode estar associado a um nome (nome de DNS). Para apontar para uma outra base de dados deve-se configurar o endereço da mesma usando o sinal setUrlWebDB. Para tanto, deve-se atribuir atribuir ao parâmetro par1WebDB o nome desejado ('ifscengtelecom-pji1.appspot.com). Em seguida, deve-se emitir o sinal setUrlWebDB com opção de espera (anuncie para todos e espere).

SetUrlWebDB.png

Acompanhando o conteúdo e atualizando a base de dados via browser

Para operar e monitorar a base de dados via browser basta colocar a url do TinyWebDB na barra de endereços. Clicar em store ou get para acessar uma tag específica. Quando deixar de usar alguma tag, use o comando [Delete] para apagá-la.

Lendo dados associados a um dado tag

Para ler um dado associado a um dado tag deve-se simplesmente atribuir ao parâmetro par1WebDB o nome do tag desejado e fazer um envio do sinal LerValorTagWebDB com opção de espera. Após o acesso ao WebDB e recuperação do valor da Tag, o valor retornado estará disponível no parâmetro par1WebDB. Caso haja erro de conexão será retornada uma mensagem de ERRO DE CONEXÃO dentro do parâmetro par1WebDB.

Exemplo de uso: Como o seguinte código será obtido

LerValorTagWebDB.png

LerValorTagWebDBresp.png

Escrevendo dados associados a um dado tag

Para escrever um dado basta colocar no par1WebDB o nome do tag desejado e no par2WebDB o nome do valor desejado. Deve-se então enviar o sinal EscreverValorTagWebDB e esperar.

Processamento de Strings no Scratch

Faça o download do Tutorial de Processamento de Strings e siga esse tutorial passo-a-passo para aprender como processar strings com Scratch. Observe que o sprite ProcStrings não deve ser alterado para processar a string. Esse sprite tem dois procedimentos listaSubitens e cortarLetras.

  • O procedimentos listaSubitens separa uma string em subitens usando o carater separador escolhido, sendo ativado pelo envio da mensagem <anuncie (listaSubitens) para todos e espere>.

ListaSubitens.png

  • O procedimentos cortarLetras corta de uma string os caracteres centrais de acordo com os índices fornecidos, sendo ativado pelo envio da mensagem <anuncie (cortarLetras) para todos e espere>.

CortarLetras.png


O sprite abaixo pode ser lido para dentro de um projeto e diretamente usado.

Media:ProcessamentoStrings.sb