Upload
rafaelprp
View
437
Download
3
Embed Size (px)
DESCRIPTION
This paper presents an learning tool specially developed for the Brazilian Digital TV System (SBTVD) using NCL and Lua. The tool integrates an RSS feed with different media types, such as: videos, images, audio, etc.Document in Brazilian Portuguese.
Citation preview
1º Simpósio Internacional d
Uso do RSS como Ferramenta Educacional na TV Digital
RESUMO
Este artigo apresenta uma ferramenta de autoria, especialmente desenvolvida para o Sistema Brasileiro de TV Digital (SBTVD) para leitura de RSS, utilizando-se as linguagens NCL e Lua, sendo modelada pelo diagrama de estados. O RSS (Really Siformato definido pela norma que utiliza a linguagem de marcação XML (eXtensible Markup Language. . A finalidade do RSS é a possibilidade dcom informações resumidas, sem que o mesmo seja diretamente consultado. Sítios modificam seu conteúdo com certa regularidade, possuem permitem o acesso a conteúdos específicos evisualizar diretamente através do agregadores ou leitores que armazenam previamente os conteúdos dos RSS, escolhidos pelo usuário para futura consulta. O RSS pode ser utilizado como ferramenta educacional, acessando conteúsem, contudo, ver todo o conteúdo no sítio. Durante um documentário ou aula, o aluno pode apreciar mais informações, constante no RSS de um determinado sítio correlato ao assunto que está sendo visto. E mais, pode acompanharnovidades sobre o assunto estudado, toda vez que houver alteração em tempo real do conteúdo no interessante para leitura prévia de objetos de aprendizagem, contidos em sítios que posteriormente podem ser lidocomplementar a informação. A ferramenta é carregada inicialmente no STB (Set-Top Box), por radiodifusão ou pela porta USB. O usuário escolhe a url contendo o RSS, a ferramenta acessa via canal de retorno, o seu contapresentado na forma de inferior, juntamente com o vídeo principal na tela da TV. O usuário poderá escolher ainda entre ver somente a mensagem inicial (completa do RSS, enquanto areduzido em seu tamanho para conter esta descrição na tela.
PALAVRAS-CHAVE: RSS. Ferramenta Educacional. Objetos de
Aprendizagem. EaD. SBTVD. NCL/Lua.
de Televisão Digital (SIMTVD) – 18 a 20 de novem
Uso do RSS como Ferramenta Educacional na TV Digital
PINTO, Rafael Peres RosaMENDES, Carlos Otávio Schocair
LEÃO, Jorge Lopes PEDROZA, Aloysio de Castro
Este artigo apresenta uma ferramenta de autoria, especialmente desenvolvida para o Sistema Brasileiro de TV Digital (SBTVD) para leitura de RSS,
se as linguagens NCL e Lua, sendo modelada pelo diagrama de Really Simple Syndication) é conjunto de tags
formato definido pela norma que utiliza a linguagem de marcação XML Language), normalmente indicado nos sítios com o símbolo
A finalidade do RSS é a possibilidade de receber atualizações de sítios com informações resumidas, sem que o mesmo seja diretamente consultado. Sítios modificam seu conteúdo com certa regularidade, possuem permitem o acesso a conteúdos específicos e resumidos. O usuário pode
r diretamente através do browser ou softwares conhecidos como agregadores ou leitores que armazenam previamente os conteúdos dos RSS, escolhidos pelo usuário para futura consulta. O RSS pode ser utilizado como ferramenta educacional, acessando conteúdos de forma distribuída na Internet sem, contudo, ver todo o conteúdo no sítio. Durante um documentário ou aula, o aluno pode apreciar mais informações, constante no RSS de um determinado sítio correlato ao assunto que está sendo visto. E mais, pode acompanharnovidades sobre o assunto estudado, toda vez que houver alteração em tempo real do conteúdo no feed pesquisado. O RSS mostra-se um recurso interessante para leitura prévia de objetos de aprendizagem, contidos em sítios que posteriormente podem ser lidos na sua íntegra, caso haja interesse em complementar a informação. A ferramenta é carregada inicialmente no STB
), por radiodifusão ou pela porta USB. O usuário escolhe a url contendo o RSS, a ferramenta acessa via canal de retorno, o seu contapresentado na forma de ticker (notícias contínuas deslizantes) na parte inferior, juntamente com o vídeo principal na tela da TV. O usuário poderá escolher ainda entre ver somente a mensagem inicial (ticker) ou a descrição completa do RSS, enquanto assiste ao vídeo principal. Neste caso o vídeo é reduzido em seu tamanho para conter esta descrição na tela.
: RSS. Ferramenta Educacional. Objetos de
Aprendizagem. EaD. SBTVD. NCL/Lua.
mbro, Bauru/SP
742
PINTO, Rafael Peres Rosa Carlos Otávio Schocair
Lopes de Souza de Castro Pinto
Este artigo apresenta uma ferramenta de autoria, especialmente desenvolvida para o Sistema Brasileiro de TV Digital (SBTVD) para leitura de RSS,
se as linguagens NCL e Lua, sendo modelada pelo diagrama de tags (marcas) de
formato definido pela norma que utiliza a linguagem de marcação XML indicado nos sítios com o símbolo e receber atualizações de sítios
com informações resumidas, sem que o mesmo seja diretamente consultado. Sítios modificam seu conteúdo com certa regularidade, possuem feeds que
resumidos. O usuário pode conhecidos como
agregadores ou leitores que armazenam previamente os conteúdos dos RSS, escolhidos pelo usuário para futura consulta. O RSS pode ser utilizado como
forma distribuída na Internet sem, contudo, ver todo o conteúdo no sítio. Durante um documentário ou aula, o aluno pode apreciar mais informações, constante no RSS de um determinado sítio correlato ao assunto que está sendo visto. E mais, pode acompanhar as novidades sobre o assunto estudado, toda vez que houver alteração em tempo
se um recurso interessante para leitura prévia de objetos de aprendizagem, contidos em sítios
s na sua íntegra, caso haja interesse em complementar a informação. A ferramenta é carregada inicialmente no STB
), por radiodifusão ou pela porta USB. O usuário escolhe a url contendo o RSS, a ferramenta acessa via canal de retorno, o seu conteúdo
(notícias contínuas deslizantes) na parte inferior, juntamente com o vídeo principal na tela da TV. O usuário poderá
) ou a descrição ssiste ao vídeo principal. Neste caso o vídeo é
: RSS. Ferramenta Educacional. Objetos de
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
743
1. Introdução
Este trabalho apresenta uma ferramenta que pode ser utilizada no
aprendizado mediado por TV no SBTVD (Sistema Brasileiro de TV Digital)
desenvolvida a partir das especificações do GINGA, especialmente a parte
GINGA-NCL (ABNT NBR 15606, 2008).
O GINGA é um middleware desenvolvido para o SBTVD, padrão
adotado pelo governo brasileiro para aplicações interativas.
A ferramenta pode ser utilizada como coadjuvante durante as aulas na
TV como recurso adicional de Educação a Distância (EaD) ao conteúdo
apresentado pelo palestrante/professor (MENDES et. al., 2008 e 2009).
O aluno/telespectador poderá acessar via canal de retorno ou de
interatividade, conteúdos simplificados sobre o assunto correlato, através do
RSS (2009) ou até mesmo obter a descrição contida no RSS sem, contudo,
acessar todo o conteúdo da página do sítio em questão.
2. Apresentação
O trabalho está dividido em capítulos, o primeiro contém uma breve
introdução do assunto. E neste capítulo 2 é apresentada a estrutura dos
capítulos.
No capítulo 3 a fundamentação teórica do RSS.
No capítulo 4 apresenta conteúdo sobre Objetos de Aprendizagem
demonstrando a importância das ferramentas de aprendizado na EaD.
No capítulo 5 a metodologia empregada com a visão geral do
funcionamento da ferramenta, incluindo a modelagem da ferramenta utilizando
diagrama de estados.
1º Simpósio Internacional d
No capítulo 6 a demonstração do sistema apresentando as principais
linhas de códigos usadas na aplicação e telas do sistema de acordo com o
diagrama de estados do capítulo 5.
No capítulo 7 apresenta as principais dificuldades e soluções
encontradas durante o desenvolvimento da ferramenta.
No capítulo 8 a conclusão e por último no capítulo 9 as sugestões para
trabalhos futuros.
3. RSS
O RSS possui alguns significados conforme a versão. Neste artigo será
considerada a versão RSS 2.0, portanto, seu
Simple Syndication. Seu principal uso é na divulgação de modificação de
informações contidas em sítios, muitas vezes usados em notícias e
A leitura do feed
indicado pelo símbolo
(Internet Explorer, Firefox, Opera, dentre outros) ou leitores específicos de RSS
denominados agregadores como, por exemplo: Google Reader, Bloglines,
FeedReader que armazenam previamente o conte
O RSS utiliza a linguagem XML (
construção do conteúdo, que pode ser disponibilizado através de canais de
notícias (RSS, 2009) (XML, 2009).
O canal contém um conjunto de itens referentes à me
conhecimento, portanto, um sítio pode conter um ou mais canais dependendo
da área de conhecimento.
A produção de mais canais é comum em sítios de notícias como por
exemplo: portais, jornais e revistas eletrônicas.
de Televisão Digital (SIMTVD) – 18 a 20 de novem
No capítulo 6 a demonstração do sistema apresentando as principais
linhas de códigos usadas na aplicação e telas do sistema de acordo com o
diagrama de estados do capítulo 5.
No capítulo 7 apresenta as principais dificuldades e soluções
radas durante o desenvolvimento da ferramenta.
No capítulo 8 a conclusão e por último no capítulo 9 as sugestões para
O RSS possui alguns significados conforme a versão. Neste artigo será
considerada a versão RSS 2.0, portanto, seu significado neste caso é
. Seu principal uso é na divulgação de modificação de
informações contidas em sítios, muitas vezes usados em notícias e
que representa o caminho para o conteúdo do RSS,
lo símbolo , pode ser feita diretamente através de
(Internet Explorer, Firefox, Opera, dentre outros) ou leitores específicos de RSS
denominados agregadores como, por exemplo: Google Reader, Bloglines,
FeedReader que armazenam previamente o conteúdo para posterior consulta.
O RSS utiliza a linguagem XML (eXtensible Markup Language
construção do conteúdo, que pode ser disponibilizado através de canais de
notícias (RSS, 2009) (XML, 2009).
O canal contém um conjunto de itens referentes à me
conhecimento, portanto, um sítio pode conter um ou mais canais dependendo
da área de conhecimento.
A produção de mais canais é comum em sítios de notícias como por
exemplo: portais, jornais e revistas eletrônicas.
mbro, Bauru/SP
744
No capítulo 6 a demonstração do sistema apresentando as principais
linhas de códigos usadas na aplicação e telas do sistema de acordo com o
No capítulo 7 apresenta as principais dificuldades e soluções
No capítulo 8 a conclusão e por último no capítulo 9 as sugestões para
O RSS possui alguns significados conforme a versão. Neste artigo será
significado neste caso é Really
. Seu principal uso é na divulgação de modificação de
informações contidas em sítios, muitas vezes usados em notícias e blogs.
que representa o caminho para o conteúdo do RSS,
, pode ser feita diretamente através de browsers
(Internet Explorer, Firefox, Opera, dentre outros) ou leitores específicos de RSS
denominados agregadores como, por exemplo: Google Reader, Bloglines,
údo para posterior consulta.
eXtensible Markup Language ) para
construção do conteúdo, que pode ser disponibilizado através de canais de
O canal contém um conjunto de itens referentes à mesma área de
conhecimento, portanto, um sítio pode conter um ou mais canais dependendo
A produção de mais canais é comum em sítios de notícias como por
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
745
Na figura 1 é observada a forma de construção do RSS onde a linha 1
representa o cabeçalho indicando a versão do RSS 2.0.
Figura 1 – código exemplo de RSS
Na linha 2 da mesma figura é observado o canal que representa um
conjunto de notícias de uma determinada área de conhecimento, exemplo de
canais de notícias: últimas, país, esporte, tecnologia. Linhas 3 e 4 representam
respectivamente o título da página e o endereço principal do sítio. A tag <item>
na linha 6 é o título da notícia que pode ser obtida na íntegra no sítio, caso haja
interesse do usuário através da linha 7.
É possível ainda obter uma breve descrição do assunto (linhas 8 a 13),
sem a necessidade de acessar a o conteúdo inteiro no sítio. Na linha 14 existe
a indicação da data de publicação da informação. E por último nas linhas de 15
a 17 representam as tags de fechamento.
Neste exemplo foram supridas algumas tags que não eram específicas
do RSS e também outras notícias que poderiam existir em outros itens (<item>)
e/ou outros canais (<channel>).
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
746
4. Objeto de Aprendizagem
O uso de Objeto de Aprendizagem (OA) pode ser usado na construção
de cursos mediados por computador e pode ser entendido como um
componente educacional como: software, texto, figura, áudio e vídeo (WILEY,
2000).
Com a tecnologia da TV Digital é possível o uso de recursos interativos
nas teleaulas.
Este artigo propõe o uso da ferramenta de autoria interativa como objeto
de aprendizagem no auxílio a teleaulas ou vídeos, onde o emissor de conteúdo
pode enviar juntamente com o vídeo principal esta aplicação, permitindo ao
usuário/aluno escolher através de botões interativos localizadas na tela do lado
esquerdo, ler o conteúdo do RSS.
A vantagem desta técnica, como o feed é dinâmico, o telespectador
obterá conteúdos online dessas informações inicialmente no canto inferior da
tela juntamente com a teleaula ou vídeo principal.
Este sistema permite ainda ao usuário obter um pequeno resumo
quando disponível do título do feed apresentado, sem a necessidade de
acessar o site para obter a informação completa. Ficando a critério do usuário,
um acesso direto ao site para obter mais informações.
Neste trabalho procurou-se fornecer ao usuário de maior autonomia na
escolha do feed que deseja obter informações.
Como alternativa extra para a transmissão via radiodifusão da
ferramenta é possível a alteração do código, onde o usuário escolheria apenas
se desejasse ver o feed e/ou seu conteúdo resumido (opção detalhes)
simultaneamente ao vídeo ou aula principal. O feed para o RSS seria
previamente escolhido pelo emissor de conteúdo e transmitido juntamente com
a aula.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
747
5. Metodologia e Modelagem do Sistema
Neste capítulo são descritas as metodologias utilizadas na pesquisa,
bem como o diagrama de estados que compõe a ferramenta.
A aplicação foi desenvolvida permitindo o aluno acessá-la como
complemento da aula, utilizando-se do RSS. O feed pode ser inserido via
pendrive em arquivo .txt (modo texto), digitado diretamente através do teclado
comum inserido no STB ou mesmo via teclado virtual apresentado na tela,
neste caso, sendo digitado pelo controle remoto do equipamento.
Uma vez determinados os objetivos e o funcionamento da ferramenta, o
próximo passo foi a definição do middleware e posteriormente a linguagem
para concepção do protótipo.
O midlleware é componente de software intermediário entre o
hardware/sistema operacional e a aplicação para a TV Digital. Devido a este
componente, uma mesma aplicação de TV pode ser executada em qualquer
equipamento compatível com o padrão do middleware.
Neste ponto optou-se pelo SBTVD (Sistema Brasileiro de TV Digital) que
utiliza o middleware GINGA.
A parte NCL do middleware GINGA no momento da pesquisa já estava
normatizada, sendo desenvolvida e implementada pelo grupo de pesquisa
Telemídia da PUC-Rio, por este motivo foi adotada como padrão nesta
pesquisa (PUC-RIO, 2009).
O acesso ao canal de retorno, apresentação dos textos e funções foram
desenvolvidos na linguagem Lua. Esta linguagem é coadjuvante a linguagem
NCL (Nested Context Language) que é a linguagem principal que associa e
apresenta as mídias desenvolvidas em LUA (IERUSALIMSCHY, 2006) (NCL,
2009).
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
748
Durante a pesquisa foram testados dois middlewares o Set-top Box
Virtual Ginga-NCL desenvolvido pela PUC-Rio e o Middleware da RCASOFT
(PUC-RIO, 2009) (RCASOFT, 2009).
O Set-top Box Virtual apresentou problemas com relação à função
LuaTCP que até a versão v.0.10.1 ainda não tinha sido possível obter um
funcionando satisfatório de acordo com estabelecido na norma GINGA (ABNT
NBR 15606, 2008). Para contornar este problema foi instalado a classe
LuaSocket, estendendo o código do middleware original da PUC-Rio, mesmo
entendendo que esta não faz parte da norma atual.
A mudança desta classe para o LuaTCP no futuro não causará
problemas devido a modularidade que a ferramenta RSS foi desenvolvida.
A segunda opção seria a utilização do middleware da RCASOFT que
possui compatibilidade até o momento somente com o STB (Set-Top Box) da
Proview modelo XPS-1000. Este midleware é compatível com parte da norma
GINGA, sendo implementada somente a parte NCL/LUA (RCASOFT, 2009).
O middleware da RCASOFT foi descartado pela pesquisa devido a não
suportar vídeos via USB, com isso, a representação de vídeos
simultaneamente com RSS inseridos na aplicação para demonstração da
ferramenta em funcionamento, ficaria prejudicada.
Neste equipamento, os vídeos só podem ser vistos, se apresentados por
radiodifusão, utilizando-se do codec via hardware instalado no equipamento
STB (Set-top Box) da Proview.
Vale ressaltar que testes foram realizados com este equipamento
Proview durante a pesquisa, utilizando a classe LuaTCP no lugar do LuaSocket
no canal de retorno, apresentado funcionamento satisfatório em rede local, mas
utilizando a internet e, em alguns momentos, não foi possível obter o conteúdo
completo solicitado.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
749
Para melhor entendimento das funções e ações que deveriam ser
desenvolvidas pela ferramenta foi utilizado o diagrama de estados (figura 2)
com a visão geral das funções, módulos e interações das mídias na aplicação
que serão detalhadas as partes essenciais no próximo capítulo.
O vídeo utilizado na demonstração do funcionamento da ferramenta foi
obtido da aula de Língua Portuguesa do Telecurso 2000, programa educativo
desenvolvido pela Fundação Roberto Marinho (2009).
Após o sucesso na leitura do pendrive pelo STB, o usuário deve
escolher a partir de três botões RSS (vermelho), X que representa o cancelar
(verde) e Detalhes (amarelo).
O botão “RSS” exibe o conteúdo do título do RSS no canto inferior na
forma de rolagem deslizante (ticker), reduzindo o vídeo para 80% de seu
tamanho original.
O botão “Detalhes” exibe a descrição (na lateral direita) quando
disponível do RSS, reduzindo o vídeo em 50% de seu tamanho original e, por
último, o botão “X” cancela a operação Detalhes ou RSS, retornando ao início
apresentando o botão “INFO”.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
750
Figura 2 – Diagrama de estados mostrando uma visão geral da aplicação
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
751
6. Funcionamento da Ferramenta
Neste capítulo serão descritos em seções os principais códigos
representados através de figuras, sempre com linhas numeradas para facilitar o
entendimento da ferramenta, segmentados, seguindo o diagrama de estados
apresentado no capítulo 5.
Juntamente com a discussão das linhas de códigos do módulo em
questão é apresentada a tela demonstrativa correspondente, quando
pertinente.
6.1 Início da aplicação
A primeira mídia a ser executada na aplicação é o script “init.lua”, que
apenas escreve no log indicando o início da aplicação e serve como porta de
entrada para iniciar outras duas mídias com o evento “onBeginStartN”, que são
o vídeo e o botão de interatividade, como mostra a figura 3.
Figura 3 – Elo que inicia o vídeo e o botão de interatividade.
A partir deste momento o vídeo passa a ser exibido em tela cheia e o
botão de interatividade é apresentado no topo esquerdo da tela, indicando a
opção de interatividade, como mostra a figura 4.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
752
Figura 4 – Aplicação com o botão de interatividade o vídeo em execução.
6.2 Seleção do botão INFO e as formas de apresentação do RSS
Quando o usuário pressiona a tecla “INFO”, o botão de interatividade é
escondido e outros dois botões são apresentados, o botão de definição de
“RSS” e o botão “X” de cancelamento como demonstra a figura 5.
Figura 5 – Opções de definição de RSS e cancelamento em exibição.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
753
Os eventos dos botões de definição de “RSS” (botão verde do controle
remoto) e o de cancelamento, representado pelo botão “X” (botão vermelho do
controle remoto) sempre levam em consideração o valor do atributo “estagio”
da mídia “nodeSettings”, que é do tipo “application/x-ginga-settings”.
O atributo “estagio” possui o valor inicial “1”. É utilizado para diferenciar
eventos associados à mesma mídia que devem atuar de formas diferentes de
acordo com o estágio em que a aplicação se encontra, podendo assumir
valores conforme tabela 1.
Valor Significado do atributo “estagio”
1 Estágio inicial, nenhum RSS
definido
2 RSS definido e em apresentação
3 Alterando o RSS em exibição
4 Exibindo o detalhe da notícia atual
Tabela 1 – Significado dos valores possíveis para o atributo “estagio”
6.3 Seleção do botão verde (RSS)
Com o estágio da aplicação ainda definido como “1”, quando o usuário
pressiona a tecla “VERDE”, o vídeo é redimensionado a 80% da altura
referente ao valor inicial. Nos outros 20% disponíveis na parte inferior da tela
são apresentadas duas imagens com os seguintes itens do menu: “Recuperar
a URL do RSS a partir do USB” e “Definir a URL do RSS manualmente”.
A figura 6 mostra o código representativo e na figura 7 a respectiva tela.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
754
Figura 6 – Elo que exibe as opções de entrada de dados.
Figura 7 – Aplicação com as opções de entrada e exibição.
A segunda opção, ainda está em desenvolvimento, o objetivo é
apresentar um campo de texto em que o usuário possa informar a URL
(Universal Resource Locator) do feed para o RSS, utilizando o teclado virtual
através do controle remoto ou teclado real para digitação do texto, sem uso do
pendrive na porta USB.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
755
6.4 Escolha da opção “Recuperar a URL do RSS a partir do USB”
Após selecionar opção de definição de URL via USB, a mídia
“instrucoesMenuUSB” do tipo HTML carrega uma página HTML contendo as
informações necessárias para definir a URL via USB, como, o nome e formato
do arquivo que será carregado, como mostram a codificação na figuras 8 e a
sua respectiva tela na figura 9.
Figura 8 – Elo que exibe as instruções de entrada via USB.
Figura 9 – Aplicação com as instruções de entrada em execução.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
756
6.5 Montagem e tratamento da informação do dispositivo USB
Após o usuário selecionar a tecla “ENTER”, a mídia “controladorUSB” do
tipo Lua é carregada. Este script lua é responsável por montar o dispositivo,
caso necessário, recuperar a URL no arquivo especificado e armazenar esta
URL em um arquivo temporário no diretório da aplicação, utilizando o módulo
“conteudo” descrito na figura 10.
Figura 10 – Código Lua do controlador de USB.
As linhas 5 e 7 são funções de montagem e de desmontagem do
dispositivo USB, utilizadas para simular uma montagem automática no
receptor.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
757
Na linha 8 a URL do RSS é recuperada utilizando o módulo “conteudo”
que será descrito em detalhes na seção 6.8.
Caso o processo não tenha sido bem sucedido, a mídia
“instrucoesMenuUSBErro” do tipo HTML é iniciada, exibindo uma página HTML
indicando que houve um erro na recuperação da URL (figura 11) e novamente
apresentando as instruções ao usuário da figura 7.
Figura 11 – Aplicação informando que houve um erro ao recuperar a URL.
6.6. Apresentação dos botões “RSS” e “Detalhes”
Caso o processo tenha sido bem sucedido, o controlador USB exibe os
botões de definição de RSS e de detalhe de notícia, e também inicia o
controlador de rodapé, como mostra a codificação na figura 12 e tela na figura
17.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
758
Figura 12 – Elo que inicia a exibição do RSS.
O controlador de rodapé é uma mídia do tipo Lua, é o script que
recupera, processa e exibe o RSS no rodapé da tela. Todo esse
processamento foi dividido em quatro módulos Lua: rss, conteudo, texto e
stringUtil.
6.7 Módulo “stringUtil”
O primeiro módulo a ser descrito é o módulo “stringUtil”, definido no
arquivo “stringUtil.lua” ele é o módulo que disponibiliza funções de manipulação
de strings que não estão definidas no módulo “string”, como por exemplo a
remoção de espaços excedentes de uma string utilizando a função “trim()”.
6.8 Módulo “conteúdo”
O módulo “conteudo” é definido no arquivo “conteudo.lua”, este módulo
é o responsável por armazenar e recuperar o conteúdo do sistema de arquivos
local e também via protocolo HTTP. A função de recuperação HTTP utiliza o
módulo “Luasocket”, não especificado na norma oficial do Ginga, porém foi
utilizado devido a problemas com a classe “tcp” no middleware de referência,
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
759
caso a aplicação seja migrada para utilizar a classe “tcp”, o módulo “conteudo”
será responsável apenas por manusear conteúdo local.
Figura 13 – Código Lua do módulo “conteudo”.
Na figura 13 a função “obterConteudoRemoto”, na linha 20, utiliza a API
do módulo “LuaSocket” para efetuar a comunicação HTTP pelo canal de
retorno.
6.9 Módulo “rss”
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
760
O módulo “rss” é definido no arquivo “rss.lua”, este módulo é
responsável por receber uma string contendo as informações do RSS e
transformá-las para estruturas de domínio, na forma de tabelas aninhadas.
O processamento do XML do módulo “rss” foi escrito a partir da função
baseada no parser de XML desenvolvido por Yutaka Ueno (2009). Este parser
transforma o XML em uma estrutura de tabelas aninhadas e dinâmicas.
No desenvolvimento desta ferramenta foram realizados alguns ajustes,
estendendo o código original para permitir o uso de acordo com o padrão para
exibição desta mídia na tela da TV Digital (figura 14).
Figura 14 – Parte a função de processamento de XML.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
761
Na figura 14 as linhas 1 e 2 foram removidas a definição de “CDATA” e,
nas linhas 11, 12 e 13 restaurados os escapamentos e retirados os excessos
de espaços do conteúdo.
Após este processamento foram transferidas estas informações para
outras estruturas mais organizadas, selecionando apenas as informações
utilizadas na aplicação.
Figura 15 – Parte da função de criação das estruturas que armazenam o RSS.
A função demonstrada na figura 15 recebe uma estrutura em forma de
tabela que contém informações de itens e canais.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
762
A estrutura final é descrita nas linhas 2, 3 e 4, uma tabela com
informações do RSS, aninhada a outras tabelas com informações dos canais e,
cada tabela de canal possui tabelas aninhadas com informações sobre os seus
itens.
6.10 Módulo “texto”
O módulo “texto” é definido no arquivo “texto.lua”, este módulo é
responsável por exibir um texto na aplicação utilizando a API canvas.
Este módulo possui a função :
“desenharListaTextosMoveis(listaTextos,funcaoRecuperaListaAtualizada
,funcaoInformandoItemAtual)” que percorre a lista de textos exibindo-os no
rodapé da aplicação por tempo indeterminado, isso é possível devido a criação
de uma função recursiva e assíncrona que é executada utilizando a classe
“event”. Esta função basicamente preenche toda a região do rodapé de preto e
desenha o texto em cor branca no canto direito da tela. Ao final da execução,
utiliza-se a função “timer()” da classe “event” para chamar a si mesma, após 60
milissegundos, na nova execução o texto será desenhado um pixel à esquerda,
criando assim o efeito de rolagem de texto.
Essa função (figura 16) recebe como parâmetro duas outras funções:
“funcaoInformandoItemAtual” e “funcaoRecuperaListaAtualizada”.
A primeira é executada quando um texto passa por toda a tela, a função
recursiva passa para o outro item da lista de textos e invoca esta função
recebida. E como parâmetro informa o texto, como por exemplo:
“funcaoInformandoItemAtual('Texto Atual')”, funciona basicamente como um
callback para informar ouvintes sobre a atualização do texto, no caso
específico, esse ouvinte é o controlador de detalhe.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
763
Já a função “funcaoRecuperaListaAtualizada()” é executada quando
todos os itens da lista já foram exibidos, assim esta função recupera uma nova
lista atualizada que será exibida logo em seguida.
Figura 16 – Parte da função recursiva que desenha o RSS no rodapé.
A variável “ponteiro” da linha 36 (figura 16) faz referência para a função
“desenhaAssincrono”, fazendo assim um processo recursivo.
Enquanto os títulos das notícias são apresentados no rodapé da
aplicação pelo controlador de rodapé, são exibidos os botões de definição de
RSS, cancelamento e detalhe, conforme figura 17.
Neste ponto o atributo “estagio” da mídia “nodeSettings” é definido com
o valor “2”, que indica que um RSS foi definido.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
764
Figura 17 – Aplicação em execução com o RSS sendo exibido.
Ao selecionar o botão RSS será pedido um novo feed de acordo com o
explicado na seção 6.3.
Caso seja escolhido o botão “X” ele retorna a tela com botão
interatividade “INFO” e redimensiona a tela para o tamanho normal retornando
como apresentado na seção 6.1.
6.11 Apresentação do detalhe do conteúdo do RSS (tecla amarela)
O botão “Detalhe”, quando selecionado pela tecla do controle remoto
“AMARELA”, dispara o evento “comandoEscreverDetalhe” do controlador de
detalhe. Este evento faz o controlador obter o template HTML de detalhe de um
arquivo HTML local, e encaixe as informações da notícia atual enviadas pelo
controlador de rodapé no documento, como mostra a figura 18.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
765
Figura 18 – Elo que inicia a exibição do detalhe da notícia atual.
Após este procedimento tem-se em memória um documento HTML,
formatando o título e a descrição da notícia atual.
O próximo passo é armazenar este conteúdo no arquivo detalhe.html,
depois redimensionar a largura do vídeo para 50% e iniciar a execução da
mídia “detalheHTML”, tipo HTML que apontando para o arquivo criado,
apresenta os detalhes da notícia atual junto com o vídeo.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
766
Figura 19 – Detalhe da notícia atual em exibição.
Mesmo com as notícias mudando no rodapé da aplicação, a exibição do
detalhe se mantém até que o usuário pressione o botão “X” de cancelamento.
As linhas 7 a 16 da figura 20 são os eventos que atualizam as variáveis
que armazenam as informações da notícia atual.
Entre as linhas 18 e 36 representam o evento de criação do arquivo de
detalhe, o template HTML é recuperado na linha 21 e preenchido nas linhas 28
e 29.
E das linhas 24 a 27 é feito o truncamento do detalhe da notícia, caso
este tenha mais de 450 caracteres.
Finalmente na linha 33 é feito o armazenamento dos detalhes da notícia.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
767
Figura 20 – Código Lua do controlador de detalhe.
Com a seção 6.11 foram apresentados os principais códigos e as suas
respectivas telas da ferramenta.
7. Problemas encontrados
O primeiro problema como relatado inicialmente no capítulo 5 foi o
funcionamento da classe “LuaTCP” no middleware de referência. Para
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
768
remediar este problema foi utilizado o módulo “LuaSocket”, estendido da norma
Ginga.
No caso do middleware RCASOFT versão 1.6.20, o funcionamento da
classe LuaTCP funcionou parcialmente, apresentado dificuldade na
recuperação completa do conteúdo em determinadas vezes pela internet,
recebendo apenas uma parte do conteúdo. Possivelmente devido a problemas
de tempo de resposta, pois testes efetuados com RSS em rede local este
middleware funcionou satisfatoriamente para todas as consultas.
Como a ferramenta foi desenvolvida em forma modular, a modificação
da classe LuaSocket para LuaTCP seria realizada sem maiores problemas.
Os conteúdos externos no formato UTF-8, aparentemente a linguagem
Lua contida no padrão GINGA não oferece suporte nativo a esses formatos,
portanto, os arquivos HTML tiveram suas codificações alteradas para ISO-
8859-1. O módulo “LuaSocket” não recuperou corretamente os caracteres
acentuados para casos em que o XML requerido esteja no padrão UTF-8
(2009) (ISO-8859-1, 2009).
Outra dificuldade foi a não montagem automática do dispositivo USB no
middleware de referência (STB virtual da PUC-Rio). A solução foi utilizar código
de montagem e desmontagem do dispositivo de armazenagem USB (pendrive)
dentro da própria aplicação desenvolvida. Este problema não foi observado no
middleware da RCASOFT que monta automaticamente após a inserção do
pendrive.
O último problema descoberto e ainda não solucionado na parte de
exibição de detalhe do RSS. Quando o conteúdo do arquivo da mídia HTML
apontado é modificado e a mídia parada e novamente iniciada; aparentemente
o navegador Links utilizado pelo middleware, não atualiza o conteúdo.
Provavelmente o Links, browser nativo na implementação do middleware, faz
cache, mesmo o HTML possuindo marcações “META” de expiração de cache.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
769
8. Conclusão
Este artigo mostrou uma ferramenta educacional para leitura de RSS na
TV Digital implementando acesso via canal de retorno estendendo a norma
utilizando a classe LuaSocket.
Foi estudada uma forma de obter o feed para buscar o RSS montado via
pendrive.
Para o tratamento do XML proveniente da consulta ao RSS foi estendido
um parser, para apresentação deste conteúdo na TV concomitante ao vídeo
principal.
Espera-se com este trabalho ter contribuído com esta ferramenta de
autoria que pode ser utilizada como objeto de aprendizagem e coadjuvante
durante as aulas em EaD.
9. Trabalhos futuros
Como próximos passos para o aprimoramento desta aplicação podem
ser destacados:
Migrar a aplicação para utilizar a classe LuaTCP no lugar do LuaSocket
para acessar o canal de retorno.
Desenvolver suporte a recuperação de conteúdo no formato UTF-8,
construindo um parser.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
770
Estudar melhor o mecanismo de cache de HTML do browser Links
procurando uma forma de eliminá-lo quando necessário.
Desenvolver a opção de entrada de dados manual para a definição da
URL do RSS via teclado virtual e real.
Desenvolver uma segunda versão da ferramenta para uso na
transmissão via radiodifusão de conteúdo de RSS com feed estabelecidos
previamente pelo emissor de conteúdo. Cabendo ao usuário apertar o botão
“INFO”, definindo se desejam ler o título do RSS e/ou seus detalhes. Para esta
modificação elimina-se o módulo “controlador de USB”.
Referências bibliográficas
ABNT NBR 15606. http://www.abnt.org.br/m3.asp?cod_pagina=1249. Última alteração em 2008. Acesso em 16 de outubro de 2009.
FUNDAÇÃO ROBERTO MARINHO. Aula do Telecurso 2000 – Ensino Fundamental Português Aula 38. http://www.youtube.com/watch?v=ZgvPqXkTEJk. Acesso em 16 de outubro de 2009.
IERUSALIMSCHY, Roberto. Programing in Lua. 2ª ed., Rio de Janeiro: Editora Lua.org, 2006, 308p.
ISO/IEC 8859-1. http://anubis.dkuug.dk/JTC1/SC2/WG3/docs/n411.pdf. Acesso em 16 de outubro de 2009.
MENDES, C. O. S. et. al. A TV Digital e a EaD Discutindo Alternativas de Ensino. In: 6º ETIC Encontro de Educação e Tecnologias de Informação e Comunicação, 2008, Rio de Janeiro. Anais do 6º ETIC Encontro de Educação e Tecnologias de Informação e Comunicação, 2008.
MENDES, C. O. S.; SUZUKI, J. T. F. Uso da TV Digital na Escola Pública como Ferramenta de Aprendizado. 3º Congresso Nacional de Extensão Universitária, Londrina, 2009.
NCL. http://ncl.org.br. Acesso em 16 de outubro de 2009.
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP
771
PUC-RIO. Set-top Box Virtual Ginga-NCL – Versão v.0.10.1. Laboratório Telemídia. http://www.ncl.org.br/ferramentas/fedora-fc7-ginga-i386.zip. Acesso em 16 de outubro de 2009.
RCASOFT. http://www.rcasoft.com.br/. Acesso em 16 de outubro de 2009.
RSS. http://validator.w3.org/feed/docs/rss2.html. Acesso em 16 de outubro de 2009.
UENO, Y. Parser XML. http://lua-users.org/wiki/LuaXml. Acesso em 16 de outubro de 2009.
UTF-8. http://en.wikipedia.org/wiki/UTF-8. Acesso em 16 de outubro de 2009.
XML. http://www.w3.org/XML/. Acesso em 16 de outubro de 2009.
WILEY, D. A., Connecting Learning Objects to Instructional Design Theory: A Definition, A Metaphor, and A Taxonomy, The Instructional Use of Learning Objects. Publicado em 2000. http://reusability.org/read/chapters/wiley.doc. Acesso em 16 de outubro de 2009.