Está en la página 1de 10

See

discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/286777303

Plugin para Composer NCL y Aplicacin


Interactiva para TV Digital orientada a
Educacin Superior

Article January 2014

CITATIONS READS

0 82

3 authors, including:

David Mejia Ivan Bernal


Escuela Politcnica Nacional Escuela Politcnica Nacional
21 PUBLICATIONS 8 CITATIONS 29 PUBLICATIONS 4 CITATIONS

SEE PROFILE SEE PROFILE

All content following this page was uploaded by Ivan Bernal on 13 December 2015.

The user has requested enhancement of the downloaded file.


PLUGIN PARA COMPOSER NCL Y APLICACIN INTERACTIVA PARA TV DIGITAL ORIENTADA A EDUCACIN SUPERIOR

Plugin para Composer NCL y Aplicacin Interactiva para TV Digital


Orientada a Educacin Superior
Becerra F.*; Bernal I.*; Meja D.*

* Departamento de Electrnica, Telecomunicaciones y Redes de la Informacin (DETRI)
e-mail: fernandobecerracv@gmail.com, {ivan.bernal; david.mejia}@epn.edu.ec

Resumen: Este artculo presenta un plugin desarrollado para Composer NCL que permite utilizar el canal de
retorno para obtener informacin de un feed RSS. Tambin presenta una aplicacin interactiva desarrollada en
NCL, la cual est orientada a informar a los televidentes sobre el programa de Becas Universidades de
Excelencia que ofrece el Ecuador a sus ciudadanos. La aplicacin interactiva obtiene datos desde un feed RSS,
funcionalidad generada mediante el plugin desarrollado. Finalmente se presentan las pruebas realizadas tanto con
el plugin como con la aplicacin.
Palabras clave: Ginga, NCL, Canal de retorno, ISDB-Tb, feed RSS, Composer NCL, plugin.
Abstract: This article presents a plugin developed for NCL Composer that allows the use of the return channel to
obtain information from an RSS feed. It also presents an interactive application developed in NCL, which is
oriented to inform viewers about the program "Universities of Excellence Scholarship" offered by Ecuador to its
citizen. The interactive application gets data from an RSS feed, generated using the plugin developed. Finally it
presents some tests that were performed with both the plugin and the application.
Keywords: Ginga, NCL, Return Channel, ISDB-Tb, feed RSS, Composer NCL, plugin.

1. INTRODUCCIN aumentado significativamente; el sistema de admisin y


nivelacin (SSNA) que se encarga del ingreso a las
El Ecuador escogi el estndar ISDB-Tb (International
universidades; entre otras. Siendo la televisin una
System for Digital Broadcast, Terrestrial, Brazilian version)
indispensable fuente de informacin y entretenimiento en
para Televisin Digital. Son muchas las ventajas que ofrece
estos das, se ha desarrollado una aplicacin interactiva
este estndar, pero entre ellas se destaca la interactividad. Las
empleando Composer NCL y el plugin, que permitir difundir
aplicaciones interactivas permiten que el televidente
a los televidentes informacin sobre el programa de Becas
interacte con la programacin, cambiando el paradigma
de Universidades de Excelencia. La aplicacin interactiva
tradicional del televidente a un rol ms activo. Por otro lado,
presenta informacin sobre el programa como tal y permite,
las aplicaciones interactivas presentan nuevos desafos,
mediante el uso del canal de retorno, la presentacin de datos
debido a que, al ser una tecnologa nueva, se necesita
obtenidos desde un feeds RSS.
personal capacitado en esta temtica. Por este motivo, la
Escuela Politcnica Nacional considera importante el
2. HERRAMIENTAS
implementar programas que faciliten el desarrollo de
aplicaciones interactivas. En este artculo se presenta un
2.1 Ginga
plugin para el programa Composer NCL (Nested Context
Language), el cual permite obtener informacin de un feed
Ginga [5] es el middleware abierto del estndar ISDB-Tb,
RSS (Really Simple Sindication) de un servidor remoto,
que permite el desarrollo de aplicaciones interactivas con el
usando el canal de retorno. Este plugin, denominado
uso de dos subsistemas: Ginga-J, empleado en aplicaciones
consumidorRSS, fue desarrollado para ayudar a las personas
procedimentales escritas en Java y Ginga-NCL empleado en
que no tienen experiencia o conocimientos del lenguaje NCL
las aplicaciones declarativas escritas en NCL. Las
o Lua, el mismo permitir incluir en sus aplicaciones NCL el
especificaciones de Ginga se definen en [1].
cdigo necesario para obtener la informacin de un feed RSS.
Por otro lado, en los ltimos aos en el Ecuador se han
realizado cambios significativos en la educacin superior
como por ejemplo, la categorizacin de las universidades; las
becas para estudios de postgrados, que en nmero han

REVISTA EPN, VOL. 33, NO. 3, ENERO 2014


PLUGIN PARA COMPOSER NCL Y APLICACIN INTERACTIVA PARA TV DIGITAL ORIENTADA A EDUCACIN SUPERIOR

2.2 Lenguaje NCL servicio de interactividad, permitiendo el envo y recepcin


de datos que el usuario intercambia entre la aplicacin
NCL [14] es un lenguaje desarrollado por el laboratorio interactiva y dicho proveedor, como se observa en la Fig. 1.
TeleMdia de la PUC-Rio de Janeiro. Este lenguaje se basa en El canal de retorno puede ser implementado mediante varias
el lenguaje XML (Extensible Markup Language) y en el tecnologas, cada una de las cuales presentan caractersticas
modelo conceptual NCM (Nested Context Mode) [9], ofrece que pueden ser apropiadas para determinadas zonas, regiones
una separacin entre el contenido de medios de comunicacin o pases [2].
y la estructura de una aplicacin. El ambiente declarativo en Usando el canal de retorno se puede realizar aplicaciones
s es muy limitado ya que no es extensible y no puede utilizar como: comercio electrnico, noticias interactivas, servicios
scripts, por eso utiliza un lenguaje procedimental llamado de salud, educacin, redes sociales, etc. Existen dos formas
Lua. A continuacin se presenta una breve descripcin de los de interactividad remota: unidireccional y bidireccional. En la
elementos NCL [14]: interactividad remota unidireccional el STB puede tan solo
Regiones (Regions): Son reas de presentacin de elementos enviar o recibir datos; mientras que en la interactividad
multimedia. Se definen en el encabezado (head) del remota bidireccional, el STB puede enviar y recibir datos de
documento NCL, en la seccin de las regiones base forma simultnea.
(regionBase). Todo documento NCL debe poseer al menos
una regin que defina la dimensin y las caractersticas de 2.5 Composer NCL
cmo se presentan uno o ms nodos multimedia.
Descriptores (Descriptors): Son los elementos encargados de Composer NCL [3] es una herramienta desarrollada por el
definir cmo ser presentado un nodo multimedia, laboratorio TeleMdia. Con esta herramienta es posible
asocindolo a una regin, estn definidos en el encabezado construir programas audiovisuales interactivos con lenguaje
(head) del archivo NCL, en la seccin llamada base de NCL. Adems, permite programar una aplicacin interactiva
descriptores (descriptorBase). sin poseer un conocimiento muy amplio sobre el lenguaje de
Contextos (Contexts): Se los utilizada para estructurar un programacin NCL.
documento hipermedia, los mismos que pueden ser anidados Esta herramienta est constituida por plugins que ayudan al
con el objetivo de reflejar la estructura del documento y diseo, programacin y correccin de errores de una
mejorar su organizacin. aplicacin interactiva, permitiendo extender la funcionalidad
Puertos (Port): Forman puntos de interfaz de un contexto de la misma mediante plugins desarrollados por terceros. Los
ofreciendo acceso externo al contenido del mismo, es decir, plugins disponibles en Composer NCL son:
para que un enlace apunte a un nodo interno este debe poseer Textual View Permite interaccin con el documento NCL
un puerto que lo dirija hacia dicho nodo. directamente.
Conectores (Connectors): Son elementos que definen uno o Structural View - Permite interaccin con la estructura lgica
ms roles para una condicin de activacin del enlace y para del documento NCL.
acciones que deben realizarse cuando el enlace este activo. Layout View Permite interaccin con las regiones.
Enlaces (Links): Asocian nodos a travs de conectores que Properties View Permite interaccin con las propiedades de
definen la semntica de asociacin entre ellos. los elementos.
Enlazador (Bind): Este elemento permite asociar una interfaz Outline View Permite navegacin entre los elementos del
de un objeto con un conector. documento NCL.
Validator View Permite validar el documento NCL.
2.3 Lua
2.6 Qt
Lua [10] es un lenguaje de extensin, suficientemente
compacto para usarse en diferentes plataformas, fue diseado Qt [3] es una biblioteca multiplataforma, es ampliamente
para apoyar a la programacin procedimental con las usada para el desarrollo de aplicaciones con o sin interfaz
instalaciones de descripcin de datos. Tambin ofrece un grfica de usuario (GUI). Es software libre y de cdigo
buen soporte para programacin orientada a objetos, abierto que se distribuye bajo los trminos de la licencia
programacin funcional y programacin orientada a datos. GNU (Lesser General Public License) y GNU (General
Lua se lo emplea como un potente lenguaje ligero y se Public License). Qt utiliza el lenguaje de programacin C++
implementa en una biblioteca escrita en C. Lua no fue de forma nativa.
desarrollado para el entorno de televisin digital, sin embargo
fue en este entorno donde demostr su fuerza y rendimiento.
Lua permite dar un nivel superior de interactividad a las
aplicaciones escritas en NCL.

2.4 Canal de retorno

El canal de retorno [12] es un medio de transmisin que


permite la comunicacin entre los STB (set-top box) o los Figura 1. Esquema de funcionamiento de televisin digital
televisores con soporte para ISDB-Tb con el proveedor del

REVISTA EPN, VOL. 33, NO. 3, ENERO 2014


PLUGIN PARA COMPOSER NCL Y APLICACIN INTERACTIVA PARA TV DIGITAL ORIENTADA A EDUCACIN SUPERIOR

2.7 Set-top Box Virtual Ginga-NCL

Set-top Box Virtual Ginga-NCL [7] es un emulador creado


por el laboratorio TeleMdia. Este emulador requiere de una
mquina virtual como VMware para su funcionamiento. El
emulador est basado en Ubuntu Server 10.10 e incluye la
versin completa del middleware Ginga. Figura 3. Archivos con cdigo Lua del plugin consumidorRSS

2.8 Ginga4Windows En la Fig. 4 se puede observar la funcin tcp.execute, parte


del cdigo utilizado en main.lua. La funcin tcp.execute
Ginga4Windows [8] permite emplear el middleware Ginga en realiza las tres etapas de TCP. Mediante la funcin
un sistema operativo Windows, sin la necesidad de una tcp.conect(host, 80) se establece la conexin con el servidor
mquina virtual o de un sistema operativo Linux. Este remoto mediante el protocolo TCP, el servidor estar
programa fue desarrollado por el laboratorio TeleMdia, es de determinado por el par nombre de equipo/puerto, en este caso
cdigo abierto y gratuito. el nombre del servidor es yachay.com y el puerto 80. Con
la variable request se genera un paquete de datos empleando
2.9 EiTV Developer Box el protocolo HTTP (HyperText Transfer Protocol), el cual
contendr el comando que debe realizarse en el sitio remoto
EiTV Developer Box [6] es un STB hbrido ISDB-Tb e IPTV as como el URL (Uniform Resource Locator) del recurso
(Internet Protocol Television) enfocado en desarrolladores de que se solicita. En este caso, el paquete de datos define el
aplicativos Ginga, compatible con Ginga-NCL/Lua y Ginga- comando GET con el cual se solicita el recurso especificado
J/JavaDTV. en la variable url y se indica la versin del protocolo
(HTTP/1.0). Mediante tcp.send(request) se enva la solicitud
2.10 Escenario de pruebas HTTP al servidor remoto. El servidor responder con el
recurso solicitado y para obtener dicho recurso se emplea el
Para las pruebas se emplearon dos escenarios: el primero mtodo tcp.receive(*a), el parmetro *a permite obtener
usando emuladores de STB. Para el primer escenario se todos los datos sin tener que realizar llamadas sucesivas a
emplearon los programas Ginga4Windows y Set-top Box tcp.receive(). La variable result contendr la informacin del
Virtual Ginga-NCL. El segundo escenario de pruebas se feed RSS en formato XML. Por ltimo se cierra la conexin
realiz con equipos reales, en un esquema como el presentado TCP mediante tcp.desconnect().
en la Fig. 2, empleando una televisin, un STB (EiTV La clase tcp se encarga de realizar la conexin hacia el feed
Developer Box), y un servidor remoto con feed RSS. RSS y de obtener toda la informacin en formato XML, luego
Para el desarrollo y la realizacin de pruebas del plugin se de lo cual la informacin deber procesarse.
utiliz en un inicio Qt Creator [13] para la programacin y el
diseo grfico del plugin, y para las pruebas se utiliz una 3.1 Tratamiento de datos en formato XML con Lua
mquina virtual con Composer NCL.
Una vez que se obtiene la informacin en formato XML, debe
3. PLUGIN consumidorRSS ser procesada para su presentacin al usuario. Para
simplificar las tareas de obtencin y presentacin de
Para el plugin se desarroll un archivo principal llamado informacin se dispone de dos clases: handler y xml [11]. En
main.lua el cual utiliza varias clases. En la Fig. 3 se la Fig. 5 se observa parte del cdigo del archivo main.lua
presentan los archivos con cdigo Lua que emplea el plugin. que permite el procesamiento del contenido XML.
La clase tcp [16] permite crear una conexin TCP entre
Ginga y un servicio alojado en un servidor remoto. La
operacin de esta clase se basa en el protocolo TCP, el cual tcp.execute(
se compone de tres etapas: el establecimiento de la conexin, function ()
mediante la funcin connect(host, port); la transferencia de local host = "www.yachay.ec"
datos mediante las funciones send() y receive(); y el cierre de local path = "/feed"
la conexin mediante disconnect(). tcp.connect(host, 80)
local url = "http://"..host..path
Internet
local request = "GET "..url.." HTTP/1.0\n"
request = request .. "Host: "..host.."\n\n"
STB
tcp.send(request)
Router local result = tcp.receive("*a")
tcp.disconnect()
end
)
Servidor con
feed RSS

Figura 2. Escenario de pruebas Figura 4. Funcin tcp.execute definida en main.lua

REVISTA EPN, VOL. 33, NO. 3, ENERO 2014


PLUGIN PARA COMPOSER NCL Y APLICACIN INTERACTIVA PARA TV DIGITAL ORIENTADA A EDUCACIN SUPERIOR

Una vez integrada la aplicacin con Composer NCL se


dofile("xml.lua") determinaron nuevos requerimientos. Estas nuevas
dofile("handler.lua") funcionalidades nacen debido a que el plugin debe crear
automticamente los diferentes elementos que interactan con
local tablafeed = simpleTreeHandler() la aplicacin interactiva Ginga-NCL, como: media, rea,
local feedEPN = "feedRSSEPN.xml" descriptores y conectores base, todos ellos con sus
local f, e = io.open(feedEPN, "r") respectivas propiedades. En la Fig. 6 se puede observar la
local xmltext = f:read("*a") versin final de la interfaz de usuario del plugin.
local xmlparser = xmlParser(tablafeed) En el grupo Dimensiones de la Regin se agreg un
QComboBox que permite escoger dos opciones: Porcentaje y
xmlparser:parse(xmltext) Pxeles. Si se escoge Porcentaje en los QLineEdit de las
propiedades top, left, heigth y width se pueden ingresar
Figura 5. Parte del cdigo para procesar el contenido XML definido en
valores decimales. Si por el contrario, se escoge Pxeles solo
main.lua se pueden ingresar valores enteros. En el grupo Conectores
se utiliz tambin un QComboBox en el que se agregaron los
La clase handler ofrece varias funciones para crear conectores que pertenecen a defaultConnBase que est
estructuras en formato XML. La funcin ms importante es integrado en Composer NCL. Adems se program que el
simpleTreeHandler, la cual bsicamente se comporta como primer elemento que se presente en este QComboBox sea
un controlador simplificado que intenta generar una InicioAutomatico, el cual, al ser seleccionado agrega un
estructura basada en una tabla. La estructura de rbol XML se port en el body del documento NCL que est asociado al
asigna automticamente a una estructura de tabla recursiva elemento media que se generar cuando entre en
con nombres de nodos como llaves y elementos secundarios, funcionamiento el plugin, lo que implica que se inicie de
ya sean como tablas de valores o como cadenas de texto. La forma automtica sin la necesidad de otro elemento media.
clase xml proporciona un analizador de secuencias XML, sus
datos pasan a la instancia del analizador a travs del mtodo 3.3 Integracin del plugin con Composer NCL
parse.
La clase Entities2AccentedChars permite cambiar la Un plugin es un segmento de programa que puede ser
codificacin de los resultados, los cuales pueden estar en distribuido de forma separada o integrado en la aplicacin
formato ASCII y debern ser transformados al formato ISO- principal con el objetivo de ampliar sus funcionalidades.
8859-1 para su presentacin correcta, sobre todo los Composer NCL [4] se basa en dos interfaces principales
caracteres especiales del idioma espaol. escritas en C++ para el uso de plugins, las interfaces son:
IPluginFactory y IPlugin.
3.2 Interfaz grfica del plugin consumidorRSS
3.3.1 IPluginFactory
Composer NCL fue desarrollado en Qt, por lo tanto el plugin
debe ser escrito en este lenguaje. Para el diseo de la interfaz IPluginFactory es responsable de crear nuevas instancias de
grfica se debe tener en cuenta la informacin necesaria para IPlugin, y entrega informacin global sobre el plugin creado,
los elementos Lua. Presionando el botn Generar, se como su fabricante, la versin, etc.
generarn todos los cdigos (NCL y Lua) y se realizarn sus
validaciones respectivas. La interfaz grfica debe ser fcil de
usar, ya que las personas que la utilizarn no necesariamente
sern programadores.
La interfaz permite ingresar la siguiente informacin: Pgina
del feed RSS, Fuente del Texto, Color del Texto,
Tamao del Texto y Nombre del Archivo. Estos datos se
utilizan para la conFig.cin de los archivos Lua. En Pgina
del feed RSS se debe ingresar el URL del feed RSS. En
Fuente del Texto se define la fuente que se emplear para la
visualizacin de los resultados, las posibles fuentes son:
Times, Courier y Helvetica. Color del Texto permite definir
el color del texto para su presentacin, pudiendo escoger de
entre las siguientes opciones: white, aqua, lime, yellow, red,
fuchsia, purple, maroon, blue, navy, teal, green, olive, silver,
gray y black. El conjunto de opciones de Color del Texto y
de Fuente del Texto estn de acuerdo a [1]. Adems en
Tamao del texto se define el tamao de los datos a ser
presentados, el rango de valores permitidos est entre 1 a 40.
Finalmente, en Nombre del Archivo se debe ingresar el
Figura 6. Interfaz de usuario del plugin
nombre del archivo Lua principal, por ejemplo: main.lua.

REVISTA EPN, VOL. 33, NO. 3, ENERO 2014


PLUGIN PARA COMPOSER NCL Y APLICACIN INTERACTIVA PARA TV DIGITAL ORIENTADA A EDUCACIN SUPERIOR

Cada vez que se inicia un nuevo documento, Composer NCL plugin denominado Textual View, se deber pasar en el
trata de crear una nueva instancia del plugin mediante la argumento la siguiente cadena de texto: br.puc-
llamada al mtodo de IPluginFactory denominado rio.telemidia.NCLTextualView. Estos mtodos deben ser
createPluginInstance(). llamados cuando se requiera agregar un elemento o proveer
informacin del plugin mediante el uso del mecanismo de
3.3.2 IPlugin signal y slots.

IPlugin es el responsable de comunicarse directamente con el 3.3.4 Archivo NCL generado por el plugin
ncleo de Composer NCL y de interactuar con los dems
plugins. Cuando se crea un documento de Composer NCL, se Cuando se ejecute el plugin, se generar un archivo NCL el
requiere una nueva instancia del plugin. IPlugin est cual contendr un elemento media asociado al body de la
vinculado con la instancia del documento y ser llamado cada estructura NCL de dicho archivo, adems de esto el plugin
vez que haya cambios en cualquier plugin de Composer NCL. generar un elemento rea, con las dimensiones establecidas
De esta forma, IPlugin tambin es capaz de exigir cambios en la interfaz de usuario. Esta rea se utilizar con el
en el documento. descriptor del elemento media para especificar en qu parte
de la pantalla se presentar la informacin obtenido del
3.3.3 Signals y Slots plugin. Por ltimo se escoge cundo se presentar la
informacin del feed RSS en la aplicacin, para lo cual se
Qt define una forma dinmica de comunicar eventos con los deben agregar los conectores en el body del archivo NCL. Es
cambios de estado que estos pueden provocar y las reacciones posible que varios de los conectores requieran de otros
de los mismos denominada Signals y Slots [15]. Lo original elementos media para interactuar entre ellos, por lo que no es
de este mecanismo es que los objetos que se comunican posible automatizar todos los conectores, por lo que el
dinmicamente, no requieren conocerse mutuamente. Para usuario deber especificar ciertas propiedades de forma
ello QObject, la clase base de gran parte de los objetos que manual. El plugin verifico la exista del archivo con los
conforman Qt incorpora un mtodo llamado connect(), que se conectores base, en caso de que no exista, el plugin crear el
encarga de establecer dicha comunicacin entre dos objetos. archivo con dichos conectores. La lista de conectores base
Todo objeto derivado de QObject puede poseer dos tipos de est filtrada para que solo se presenten los conectores que
funciones propias especiales: signals y slots. Signals son tengan en sus elementos la palabra start, ya que con este
funciones que permiten emitir una seal cuando hay algn elemento se puede indicar cundo se deber presentar
cambio de estado en el objeto al que pertenecen. Slots son (iniciar) la informacin del feed RSS.
funciones que finalizan la conexin y que ejecutan una serie
de acciones una vez que reciben el mensaje de la seal. Una 3.3.5 Resultado del plugin
seal puede conectarse a ms de un slot para llevar a cabo
diferentes tipos de actividades. Igualmente diferentes seales El plugin fue integrado exitosamente en Composer NCL
pueden conectarse con un mismo slot que posee una actividad como se observa en la Fig. 7. En la Fig. 8 se presenta una
que puede ser desplegada de varias formas. aplicacin NCL que muestra la informacin obtenida del feed
RSS de la Escuela Politecnica Nacional.
3.3.4 Ncleo de Composer NCL

Para la integracin del plugin con Composer NCL y con los


dems plugins, se debe utilizar el mdulo Composer-core
[3]. Este mdulo contiene clases y funciones que ayudan con
la integracin del plugin. Para poder integrar el plugin se
debe utilizar signals y slots, signals se utiliza para la
comunicacin con los otros plugins y slots se utiliza para la
comunicacin con el ncleo de Composer NCL.
Para agregar elementos al documento NCL se debe utilizar el
mtodo Composer::extension::IPlugin::addEntity(), el
cual acepta los siguientes parmetros: QString type, con el
que se especifica el tipo de elemento NCL que se desea Figura 7. Integracin del plugin consumidorRSS con Composer NCL
agregar en el documento NCL; QString parentEntityId,
para especificar el identificador nico del elemento padre de
la entidad que se desea aadir; QMap<QString, QString>
&atts, con el que se especifican los parmetros de la entidad.
Para obtener la informacin de un plugin se utiliza el mtodo
Composer::core::model::Project::getPluginData(), el cual
define un nico parmetro QString pluginId, en el que se
especifica el nombre del plugin del que se desea obtener los
datos. Por ejemplo, si se desea obtener la informacin del Figura 8. Aplicacin diseada con el plugin

REVISTA EPN, VOL. 33, NO. 3, ENERO 2014


PLUGIN PARA COMPOSER NCL Y APLICACIN INTERACTIVA PARA TV DIGITAL ORIENTADA A EDUCACIN SUPERIOR

4. APLICACIN INTERACTIVA BECAS Adems el elemento start tiene un parmetro bindParam que
UNIVERSIDADES DE EXCELENCIA permite especificar el tiempo de retardo, es decir permite
definir que el elemento media asociado al start se presente
4.1 Anlisis de requerimientos luego de un tiempo especificado posterior a la presentacin
del elemento media asociado a onBegin. En la Fig. 10 se
Para la realizacin de la aplicacin se tom en cuenta una observa el cdigo de onBeginStart_delay implementado.
serie de preguntas que usualmente las personas realizan sobre Como se mencion antes, la aplicacin debe redimensionar el
las becas, estas son: Qu estudiar?, Qu rubros cubre la video. El redimensionamiento se lo consigue definiendo la
beca?, Las becas son rembolsables?, Requisitos, Cmo propiedad bounds (lmites) del elemento media. Para indicar
postular? y Qu documentos se requieren para postular cundo se debe dimensionar el video, se utiliz el conector
(documentos habilitantes)? La aplicacin busca responder a onKeySelectionSet. Este conector permite indicar que en el
estas inquietudes de forma breve y concisa, debido que hay momento en que se presenta un elemento media y se presiona
que considerar que el televidente usualmente mira la un botn especfico del control remoto (onKeySelection), el
televisin mientras descansa, por lo que no debe conector se activa y presenta otro elemento media, el cual
sobrecargrsele de informacin. Tambin se tom en cuenta puede cambiar su posicin y su tamao (set). Este conector
que el programa no debe bloquear la programacin habitual, contiene dos elementos bind: onSelection y set. Mediante
por lo que se redimensionar el video guardando la relacin onSelection se indican las condiciones que deben cumplirse
de aspecto de 16:9. Por otro lado, es importante la para iniciar este conector, siendo estas: el elemento media
distribucin de colores pues brinda un nivel esttico al que debe estar seleccionado (especificado mediante el
programa que debe llamar la atencin del televidente. elemento component) y el botn que debe presionarse
(especificada mediante el parmetro bindParam). Mediante
4.2 Desarrollo set se indica que se cambiar la posicin o el tamao del
elemento media definido por component, para esto se emplea
En la Fig. 9 se presenta la distribucin en la pantalla, la interfaz bounds del elemento media, y mediante el
generada por el plugin Layout View con los elementos media parmetro bindParam, se especifica su nueva ubicacin y sus
que intervienen en la aplicacin, estos elementos son dimensiones usando una cadena con cuatro valores:
imgenes con la informacin que se desea presentar. izquierda, parte superior, ancho, altura especificados como
El archivo NCL que contiene el cdigo de la aplicacin porcentajes o como pxeles. Al presionar el botn OK, la
dispone de un body con un port que est asociado con un aplicacin proceder a cambiar la posicin y el tamao del
elemento media llamado video, el cual permitir presentar la elemento video. En la Fig. 11 se observa el cdigo del
seal de la programacin recibida por el STB, para esto se conector onKeySelecionSet implementado.
necesita establecer en el elemento mencionado la propiedad Para mejorar la organizacin de los elementos que van a
src con la cadena sbtvd-ts://0. Para presentar el icono de interactuar en la aplicacin se cre un context llamado
interactividad en la aplicacin se agreg un conector ctxBecas. Para conectar el elemento mInteractividad con
onBeginStart_delay. Este conector permite asociar la ctxBecas se utiliz el conector onKeySelectionStopStart.
presentacin de un elemento en particular con un retardo Este conector permite que en el momento en que se presenta
(Start_delay), con la presentacin de otro elemento un elemento media y se presiona un botn del control remoto
(onBegin), para lo cual utilizar dos elementos bind: onBegin (onKeySelection), el conector se activa y oculta un elemento
y start. Mediante onBegin que estar asociado con un media (stop) y despus presenta otro elemento media (start).
elemento media, se iniciar el conector al ser presentado
dicho elemento, produciendo las acciones definidas por el
segundo elemento bind. La accin definida mediante start,
que tambin estar asociada con un elemento media, permite
indicar que elemento iniciar (o se presentar en pantalla).

Figura 10. Cdigo del conector onBeginStart_delay

Figura 9. Distribucin de los elementos en pantalla mediante el plugin


Layout View Figura 11. Cdigo del conector onKeySelecionSet

REVISTA EPN, VOL. 33, NO. 3, ENERO 2014


PLUGIN PARA COMPOSER NCL Y APLICACIN INTERACTIVA PARA TV DIGITAL ORIENTADA A EDUCACIN SUPERIOR

En la Fig. 12 se observa el cdigo del conector


onKeySelecionStopStart implementado, se puede apreciar
que el cono de interactividad se ocultar y se iniciar el
context cuando el usuario presione la tecla OK.
Al iniciar el context ctxBecas aparecen los elementos media
que permiten navegar por la aplicacin y que contienen
contenido informativo sobre la misma, as como tambin el
script Lua, el cual iniciar su funcionamiento para obtener la
informacin del feed RSS. La pgina principal que contiene Figura 14. Cdigo del conector onSelectionStopNStartN
estos elementos se presenta en la Fig. 13.
Para desplazarse dentro de estos elementos se utilizan
descriptors. Cada descriptor dispone de los siguientes Para desplazarse entre las imgenes que contienen
atributos: focusIndex, para establecer el enfoque que va a informacin se utiliz el conector onKeySelectionStopStart
tener el elemento al presionar los cursores de desplazamiento el cual permite ocultar una imagen para presentar otra, lo
del control remoto; moveDown y moveUp, para realizar el particular de este conector es que se utilizaron los cursores
desplazamiento hacia abajo o arriba respectivamente. Con LEFT y RIGHT para activar la condicin de funcionamiento
estos elementos se realiz un men vertical el cual contiene del mismo. En la Fig. 15 se observa el cdigo del conector
seis elementos media, que tienen en su atributo focusIndex onKeySelectionStopStart implementado, y se puede
los valores de 1 a 6, respectivamente, y en los atributos apreciar que el elemento media (mLibreta4) que tiene
moveDown y moveUp se establece a que elemento debe informacin se ocultar y se presentar la informacin de otro
saltar el foco al presionar los cursores DOWN y UP del (mLibreta41) cuando el usuario presione la tecla RIGHT y
control remoto. el elemento media (mLibreta4) est seleccionado.
Para que al seleccionar un elemento del men se despliegue la La distribucin de los elementos media y su interaccin
informacin relacionada a este, se utiliz el conector presentada por el plugin Structural View se pueden observar
onSelectionStopNStartN, este conector permite ingresar ms en la Fig. 16, en la cual se da la percepcin del
de un elemento bind tanto para ocultar (Stop) o para activar funcionamiento de la aplicacin y del desarrollo, ya que se
(Start). En la Fig. 14 se observa el cdigo del conector encuentran todos sus elementos.
onSelectionStopNStartN implementado, en la cual se puede
apreciar que al seleccionar un elemento (mboton6) del men 4.1 Funcionamiento de la aplicacin
y presionar la tecla OK, se ocultar la informacin
(mLibreta y mLibreta2) y se iniciarn otros elementos Para el cono de interactividad se eligi una imagen que lleva
media (mLibreta6 y mMenu2) con su informacin solo el nombre de la aplicacin Becas y un crculo con la
respectiva. Se utiliz este conector ya que la informacin palabra OK que insina que se debe presionar el botn OK
relacionada a cada men es amplia y por este motivo se la en el control remoto para interactuar con la aplicacin. En la
separ en varias imgenes. Fig. 17 se observa el cono en la parte superior derecha de la
imagen.
Despus de presionar el botn OK se desplegar la pgina
principal con las diferentes opciones de navegacin, como se
presenta en la Fig. 15. Esta aplicacin utiliza el feed RSS de
la Escuela Politcnica Nacional y mostrar la informacin de
dicho feed. Tambin existe informacin de ayuda para el uso
del control remoto con las indicaciones necesarias para usar
la aplicacin.
Figura 12. Cdigo del conector onKeySelecionStopStart
4.2 Pruebas de la aplicacin en equipos reales

En la Fig. 18 y la Fig. 19 se presentan las imgenes obtenidas


al realizar las pruebas con equipos reales.

Figura 15. Cdigo del conector onKeySelectionStopStart


Figura 13. Pgina principal de la aplicacin NCL

REVISTA EPN, VOL. 33, NO. 3, ENERO 2014


PLUGIN PARA COMPOSER NCL Y APLICACIN INTERACTIVA PARA TV DIGITAL ORIENTADA A EDUCACIN SUPERIOR

Figura 16. Distribucin de elementos e interaccin segn el plugin Structural View

4.2 Encuestas MOS

Las encuestas MOS (Mean Opinion Score) se han empleado


para conocer el punto de vista del usuario respecto a la
calidad de un servicio. Se realizaron encuestas MOS a un
grupo de 50 personas sobre la aplicacin interactiva Becas
Universidades de Excelencia para conocer la opinin del
televidente. Cada uno de los tems de la encuesta se calific
con un valor numrico de 1 (malo) a 5 (excelente). En las
encuestas se tomaron en consideracin los siguientes
parmetros: diseo grfico, navegabilidad, interactividad y
contenido. Con los resultados de la encuesta MOS se
realizaron los clculos de la media, desviacin estndar y
mediana. La media de toda la aplicacin es 4.229, la
desviacin estndar es 0.677, lo que demuestra la semejanza Figura 18. Inicio de la aplicacin en equipos reales
de opiniones entre los encuestados y la mediana tiene un
valor de 4. Estas encuestas permiten concluir que la
aplicacin tiene una adecuada aceptacin.

Figura 17. Inicio de la aplicacin

Figura 19. Pgina principal de la aplicacin en equipos reales

REVISTA EPN, VOL. 33, NO. 3, ENERO 2014


PLUGIN PARA COMPOSER NCL Y APLICACIN INTERACTIVA PARA TV DIGITAL ORIENTADA A EDUCACIN SUPERIOR

5. CONCLUSIONES [12] Paucar Curasma, Ronald. Anlisis y Modelamiento de las Tcnicas de


Canal de Retorno e Interactividad para el Estndar de Televisin
Digital Terrestre ISDB-T. 2010.
Las aplicaciones Ginga NCL causan un impacto positivo en [13] Qt Creator. http://qt-project.org/wiki/category:tools::qtcreator.
los televidentes, ya que pueden darle un valor agregado a la [14] Soares, Luiz Fernando Gomes. "Progrmando em NCL 3.0. 2012.
programacin normal de la televisin, permitiendo que estos [15] Telemidia, "Exemplo 6 - Consulta ao Google".
interacten con la programacin. http://www.telemidia.puc-
rio.br/~francisco/nclua/tutorial/exemplo_06.html.
El plugin que se desarroll ayuda a las personas que no tienen [16] Thelin, Johan. Foundations of Qt Development. 2007.
conocimientos sobre los lenguajes de programacin NCL y
Lua en la creacin de aplicaciones para televisin digital que
obtengan y presenten la informacin desde un feed RSS.
Como la televisin es un medio de comunicacin masivo con
gran aceptacin en la sociedad ecuatoriana, la aplicacin
interactiva realizada podr ser utilizada por un gran nmero
de personas, ya que la televisin tiene mayor acogida que
otros medios de comunicacin, permitiendo difundir a gran
escala el tema Becas Universidades de Excelencia.
La generacin de aplicaciones Ginga presenta nuevos retos
como por ejemplo, es necesario realizar trabajos
multidisciplinarios, pues no solamente se requiere de
programadores, sino tambin diseadores y comunicadores
sociales que ayuden a mejorar la calidad visual y el contenido
de la aplicacin para poder captar la atencin del televidente.
Las limitantes a la hora de desarrollar aplicaciones para
televisin digital son el tamao del texto y el contenido en si
ya que si se tiene demasiada informacin el televidente no le
va a interesar y simplemente no la utilizar.
Un inconveniente de las aplicaciones para televisin digital es
su tamao que estas tengan ya que surgirn problemas si se
transmiten aplicaciones demasiado grande debido a la
memoria reducida que tiene la mayora de STB, los
fabricantes de STB recomiendan que las aplicaciones no
deben ser mayor a de 6 Mega Bytes para un correcto
procesamiento de las mismas.
Para reducir el tamao de las aplicaciones se aconseja
comprimir las imgenes que se desea presentar utilizando
mejores tasa de compresin, pero se debe tomar en cuenta
que cuando se comprimen las imgenes pierden su resolucin
y calidad.

REFERENCIAS
[1] ABNT NBR 15606-2, Documento electrnico
http://www.abnt.org.br/imagens/Normalizacao_TV_Digital/ABNTNB
R15606-2_2007Ing_2008.pdf
[2] ABNT NBR 15607-1, Documento electrnico
http://www.abnt.org.br/imagens/Normalizacao_TV_Digital/ABNTNB
R15607-1_2008Ed1.pdf
[3] Blanchette, Jasmin. "C++ GUI Programming with Qt 4". 2006.
[4] Composer NCL. http://Composer.telemidia.puc-rio.br.
[5] Comunidad Ginga Ecuador. http://comunidadgingaec.blogspot.com.
[6] EiTV Developer Box. http://www.eitv.com.br/devbox_es.php.
[7] GINGA NCL.
http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/gingancl/xowiki
/gingancl_vm.
[8] Ginga4Windows. http://Composer.telemidia.puc-
rio.br/en/news/ginga4windows_0.13.1_released.
[9] Gomes Soares, Luiz. Part 1 NCM Core. Documento electrnico
http://www.telemidia.puc-rio.br/sites/telemidia.puc-
rio.br/files/Part1%20-%20NCM%203.0.pdf
[10] Lerusalimschy, Roberto. "Programming in Lua". 2006.
[11] Moreira Gomes, Johnny. "Utilizando o Lua Xml Parser para leitura
simples de arquivos xml em aplicaes NCL/Lua"

REVISTA EPN, VOL. 33, NO. 3, ENERO 2014

View publication stats

También podría gustarte