Nico, la verdad que aun no estoy investigando el tema del canal de retorno. En mi opinion nos falta mucho tiempo (años) para poder pensar en una aplicacion que lo use. Estamos enfocando nuestros esfuerzos en comprender lo mejor posible las posibilidades sin canal de retorno. saludos. Santiago On Fri, Apr 27, 2012 at 9:49 AM, Nicolas Ignacio Roldan < [email protected]> wrote:
*Buenas a todos!* ( esta frio no? )[image: Sonrisa]
Bueno, es esta oportunidad he comenzado a probar como funciona HTML con Ginga Mi objetivo es lograr interectuar a traves de Ginga con un web service.
La aplicacion funcionaria asi: Por medio de los botones '1'/'2'/'3' del control remoto votaria algunas de las 3 opciones y reflejaria la cantidad de votos de cada opcion a traves de una pagina html. Si presiono alguna de las 3 opciones (1 ò 2 ò 3), paso ese voto por medio del 'event.post' al NCL ( esto hace que se incremente en 1 el valor que esta en una tabla del webService).
Algo asi:
if evt.key == '1' then event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=A'}) event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=A'}) elseif evt.key == '2' then event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=B'}) event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=B'}) elseif evt.key == '2' then event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=C'}) event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=C'}) end
*Hasta ahi funciona perfecto*.Si presiono* solo una vez* cada opcion se incrementa en 1 el voto del html. *Mi problema esta en que si quiero volver a votar la misma opcion ya no me lo toma. *
Lo que hice. Despues de votar una opcion; volvia a llamar al "event.post" pasandole por parametros la direccion original del webService para que actualizara los valores obtenidos y poder seguir votando... pero tampoco funciono.... ó lo mas probable es que no lo sepa hacer. Hacia: event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar'}) event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar'})
Este es el codigo:
-------------------------------------------*main.ncl* --------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?> <ncl id="main" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
<head> <regionBase> <region id="rgWebService" width="100%" height="30%" top="0%" zIndex="1"/> <region id="rgLua" width="0%" height="0%" zIndex="1" /> <region id="idBotonVote" width="20%" height="20%" bottom="10%" left="10%" zIndex="1"/> </regionBase>
<descriptorBase> <descriptor id="descWebService" region="rgWebService" /> <descriptor id="descLua" region="rgLua" focusIndex=" appFocusLua"/> <descriptor id="descBotonVote" region="idBotonVote"/> </descriptorBase>
<connectorBase> <importBase documentURI="metodos.ncl" alias="metodo"/> </connectorBase> </head>
<body>
<port id="pVote" component="imgBotonVote"/>
<media id="mediaWebService" type="text/html" src=" http://X.X.X.X/Ginga/Votar" descriptor="descWebService"> <property name="src"/> </media>
<media id="mediaLua" src="luaHtml.lua" descriptor="descLua" > <property name="bounds"/> <property name="srcNuevo"/> </media>
<media id="imgBotonVote" src="Imagen/Botones/voto.png" descriptor="descBotonVote"/>
<media id="focoLua" type="application/x-ginga-settings"> <property name="service.currentKeyMaster" value="appFocusLua "/> </media>
<link xconnector="*metodo#**onBeginEndMenu*"> <bind role="onSelection" component="imgBotonVote"> <bindParam name="oSetTecla" value="ENTER"/> </bind> <bind role="abort" component="imgBotonVote"/>
<bind role="set" component="mediaLua" interface="bounds"> <bindParam name="oValor" value="0%,30%,100%,50%"/> </bind> <bind role="start" component="mediaLua"/> <bind role="start" component="focoLua" />
<bind role="start" component="mediaWebService"/> </link>
<link xconnector="*metodo#onEndAttributionSet*"> <bind component="mediaLua" interface="srcNuevo" role="onEndAttribution"/> <bind component="mediaLua" interface="srcNuevo" role="getValue"/> <linkParam name="valor" value="$getValue"/> <bind role="set" component="mediaWebService" interface="src"/> </link>
</body> </ncl>
-------------------------------------------------------------------------------------------------------------------------------------
---------------------* metodos.ncl* ------------------------------------------------------------------------------------------------ <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Generated by NCL Eclipse --> <ncl id="metodos" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile"> <head> <connectorBase>
<causalConnector id="*onBeginEndMenu*"> <connectorParam name="oSetTecla"/> <connectorParam name="oValor"/> <simpleCondition role="onSelection" key="$oSetTecla"/> <compoundAction operator="seq"> <simpleAction role="start" qualifier="seq" max="unbounded"/> <simpleAction role="abort" qualifier="seq" max="unbounded"/> <simpleAction role="set" qualifier="seq" max="unbounded" value="$oValor"/> </compoundAction> </causalConnector>
<causalConnector id="*onEndAttributionSet*"> <connectorParam name="valor" /> <simpleCondition role="onEndAttribution"/> <simpleAction role="set" value="$valor" /> </causalConnector>
</connectorBase>
</head>
<body>
</body> </ncl>
--------------------------------------------------------------------------------------------------------------------------------------
--------------------------------*-luaHtml.lua-* ----------------------------------------------------------------------------------------
function manejadorEventos(evt)
if evt.class=='key' and evt.type=='press' then
if evt.key == '1' then
event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=A'}) event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=A'})
elseif evt.key == '2' then
event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=B'}) event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=B'})
elseif evt.key == '3' then
event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=C'}) event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=C'})
end * *refrescarHTML() end
end
function refrescarHTML()
event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar'}) event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar'})
end
event.register(manejadorEventos)
--------------------------------------------------------------------------------------------------------------------------------------
Esa era una opcion que intente y no paso nada.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// La otra opcion que intente es por medio de NCL, modificando <causalConnector id="*onEndAttributionSet*"> ( en el archivo * metodos.ncl *) y agregandole un <simpleAction role="start" />, para llamar de nuevo al "*mediaWebService*"cuando invoco al <link xconnector="*metodo# onEndAttributionSet*">( en el archivo* main.ncl*)... pero exploto con esa opcion... me salia algo como : " Memory leak by 136 bytes
List of blocks: 0x93d01e0:25 @ cookies.c:179, 0x93d01a8:13 @ cookies.c:129, 0x93cec88:2 @ http.c:79, 0x93d0170:13 @ cookies.c:96, 0x93bb6d8:25 @ cookies.c:95, 0x93d0138:18 @ cookies.c:94, 0x93d00e8:40 @ cookies.c:91
Forcing core dump
"
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Bueno, nose que hacer ya. [image: Confundido] Si a alguien le funciono o intento algo parecido, me daria una gran mano Saludos a todos! *nico*
__________________________________________Lista de correo [email protected] cambiar suscripción: https://lists.ourproject.org/cgi-bin/mailman/listinfo/ginga-argentinaSitio web: http://comunidad.ginga.org.ar Wiki: http://wiki.ginga.org.ar
__________________________________________Lista de correo [email protected] cambiar suscripción: https://lists.ourproject.org/cgi-bin/mailman/listinfo/ginga-argentina Sitio web: http://comunidad.ginga.org.ar Wiki: http://wiki.ginga.org.ar