Hola, estoy trabajando con una aplicacion que deberia obtener el canal que esta viendo una persona actualmente, para esto estoy utilizando el siguiente codigo:

Lua:

function imprimir(texto)
canvas:clear()
canvas:attrColor('white')
canvas:attrFont('Tiresias', 40, 'bold')
canvas:drawText(50, 50, texto)
canvas:flush()
end

function handler(evt)
if(evt.type == 'services') then
id = data[1].id
providerName = data[1].providerName
serviceName = data[1].serviceName
imprimir(id)
end
end

event.post('out', {class='si', type='services'})
event.register(handler,"si")

Ncl

<ncl xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile" id="main">
  <head>
   <regionBase>
     <region id="fondoReg" width="50%" height="50%"/>
   </regionBase>
   <descriptorBase>
     <descriptor id="fondoDesc" region="fondoReg"/>
   </descriptorBase>
  </head>
 
  <body>
    <port id="pEntry" component="app"/>
    <media id="app" src="main.lua" descriptor="fondoDesc"/>
  </body>
</ncl>

Para esto estoy trabajando con el emulador Ginga4Windows y un decodificador cdr1800h actualizado a su version 23 marzon 2012.

La aplicacion no hace nada, en el Lua nunca entra al:
if(evt.type == 'services') then
----
end

Si me pudieran ayudar estaria muy feliz =D.