Duvida onEndAttributionSet

21 views
Skip to first unread message

Rafael Donato

unread,
Nov 6, 2009, 4:27:28 PM11/6/09
to Desenvolvimento para TV digital
Olá,
estou tentando implementar um mecanismo de passagem de valores, de um script lua para o outro, da mesma maneira que é explicado, no Exemplo 5 em: http://www.telemidia.puc-rio.br/~francisco/nclua/tutorial/exemplo_05.html

Este exemplo roda com sucesso.

Porém, quando eu tento realizar o mesmo envio de eventos em uma aplicação que eu estou fazendo, apenas o primeiro evento chega, e depois começo a receber a seguinte mensagem de erro:
FormatterScheduler::runActionOverProperty trying to set an event that is not sleeping: 'text_2'.

Estou seguindo o mesmo processo do exemplo, porém não sei onde estou pecando.


Alguém sabe como resolver isso?



[]'s
Rafael Donato.

Thyago Fernando de Almeida Silva

unread,
Nov 6, 2009, 4:57:39 PM11/6/09
to dev...@googlegroups.com
Olá, rafael. Você tem que dar stop no evento de atribuição. Veja
 
function eventHandler( evt )
 
   if evt.class == 'ncl' and evt.type == 'attribution' and evt.action == 'start' then
  
       -- Code
 
   end
 
   evt.action = 'stop'
   event.post( evt )
 
end 
event.register( eventHandler )
 
 
* Talvez seja isso. Tente dar stop quando tudo já estiver feito.

 
2009/11/6 Rafael Donato <rafael...@gmail.com>



--
Thyago Fernando de Almeida Silva

www.t14g0f3rn4nd0.blogspot.com

Rafael Donato

unread,
Nov 9, 2009, 1:17:26 PM11/9/09
to dev...@googlegroups.com
Sim...
Eu estou enviando stop logo após o start.

local evento = {
    class = 'ncl',
    type  = 'attribution',
    name  = 'text',
    evento.value = 'Teste',
}
evento.action = 'start'; event.post(evento)
evento.action = 'stop';  event.post(evento)



2009/11/6 Thyago Fernando de Almeida Silva <thyagof...@gmail.com>

Luiz Eduardo

unread,
Nov 9, 2009, 1:20:35 PM11/9/09
to dev...@googlegroups.com
Rafael, não existe o evento.value. Tente assim e veja se funciona:


    local evento = {
        class = 'ncl',
        type  = 'attribution',
        name  = 'text',
        value = "Teste"

    }

    evento.action = 'start'; event.post(evento)
    evento.action = 'stop';  event.post(evento)


Abs,
Luiz Eduardo

2009/11/9 Rafael Donato <rafael...@gmail.com>

Rafael Donato

unread,
Nov 9, 2009, 1:42:55 PM11/9/09
to dev...@googlegroups.com
Sim eu sei que nao existe...
Na verdade foi um erro na composição do meu email anterior ...
Já está assim do jeito que vc sugeriu

2009/11/9 Luiz Eduardo <luiz.e...@gmail.com>

Luiz Eduardo

unread,
Nov 9, 2009, 1:45:55 PM11/9/09
to dev...@googlegroups.com
Qual o nome do atributo dentro do NCL?



2009/11/9 Rafael Donato <rafael...@gmail.com>

Thyago Fernando de Almeida Silva

unread,
Nov 9, 2009, 1:53:12 PM11/9/09
to dev...@googlegroups.com
Existe uma função manipuladora de eventos?

2009/11/9 Luiz Eduardo <luiz.e...@gmail.com>

Rafael Donato

unread,
Nov 9, 2009, 2:15:44 PM11/9/09
to dev...@googlegroups.com
Os nós de midia envolvidos são:

<media id="input" src="../scripts/ChannelGrid.lua"  descriptor="dsInput">
    <area id="select"/>
    <property name="text"/>
</media>

<media id="output1" src="../scripts/Sinopse.lua" descriptor="dsOutput1">
    <property name="text"/>
</media>

O conector é:

<causalConnector id="onEndAttributionSet">
    <connectorParam name="var"/>
    <simpleCondition role="onEndAttribution"/>
    <simpleAction role="set" value="$var"/>
</causalConnector>

E o link:

<link xconnector="onEndAttributionSet">
    <bind role="onEndAttribution" component="input" interface="text"/>
    <bind role="set" component="output1" interface="text">
        <bindParam name="var" value="$get"/>
    </bind>
    <bind role="get" component="input" interface="text"/>
</link>



2009/11/9 Luiz Eduardo <luiz.e...@gmail.com>

Rafael Donato

unread,
Nov 9, 2009, 2:16:33 PM11/9/09
to dev...@googlegroups.com
Sim, no arquivo de destino existe uma função manipuladora de eventos....
Tanto é que eu consigo capturar o primeiro evento de atribuição.
Nao consigo capturar os subsequentes.

2009/11/9 Thyago Fernando de Almeida Silva <thyagof...@gmail.com>

Rafael Donato

unread,
Nov 9, 2009, 3:17:52 PM11/9/09
to dev...@googlegroups.com
Para dar uma ideia melhor do meu problema em anexo vao 3 arquivos que reproduzem o erro aqui no STB virtual.

[]'s
Rafael Donato.

2009/11/9 Rafael Donato <rafael...@gmail.com>
teste.ncl
ChannelGrid.lua
Sinopse.lua

Rafaelprp

unread,
Nov 7, 2009, 7:00:17 AM11/7/09
to Desenvolvimento para TV digital
Olá, Rafael.

Tive este mesmo problema, postei a solução no software público:

http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/forums/message-view?message_id=11549417

Mas vou colocar o exemplo aqui para facilitar:

Note que as duas mídias lua devem estar iniciadas para este
procedimento funcionar.

Abs,

Rafael Peres.

-------------------------- NCL -----------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Generated by NCL Eclipse -->
<ncl id="teste" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
<head>
<connectorBase>
<causalConnector id="onBeginStart">
<simpleCondition role="onBegin"/>
<simpleAction max="unbounded" role="start"/>
</causalConnector>
<causalConnector id="onEndAttributionSet">
<connectorParam name="var"/>
<simpleCondition role="onEndAttribution"/>
<simpleAction role="set" value="$var"/>
</causalConnector>
</connectorBase>
</head>
<body>
<port component="um" id="dPort"/>
<media id="um" src="um.lua">
<property name="propriedadeUm"/>
</media>
<media id="dois" src="dois.lua">
<property name="propriedadeDois"/>
</media>
<link xconnector="onBeginStart">
<bind component="um" role="onBegin"/>
<bind component="dois" role="start"/>
</link>
<link xconnector="onEndAttributionSet">
<bind component="um" interface="propriedadeUm"
role="onEndAttribution"/>
<bind component="dois" interface="propriedadeDois"
role="set">
<bindParam name="var" value="$get"/>
</bind>
<bind component="um" interface="propriedadeUm" role="get"/
>
</link>
</body>
</ncl>


----------------------------------------------------------------

------------------------ um.lua ---------------------------

function handler (evt)

if evt.class ~= 'ncl' then return end

if evt.type == 'attribution' then
print("Atribuicao executada em um.lua")
return
end


print("Iniciando eventos...")

local evt = {
class = 'ncl',
type = 'attribution',
name = 'propriedadeUm',
}

evt.value = "Rafael"
evt.action = 'start'; event.post(evt)
evt.action = 'stop'; event.post(evt)


end

event.register(handler)

----------------------------------------------------------------

----------------------- dois.lua --------------------------

function handler (evt)

if evt == nil then
print("evt veio nil!!!")
return
end

if evt.type == 'attribution' then
if evt.name == 'propriedadeDois' then
print("Dois recebeu o valor: ", evt.value)
return
end
end

print("passou direto!!")

end

event.register(handler)

----------------------------------------------------------------

Rafael Donato

unread,
Nov 9, 2009, 4:21:01 PM11/9/09
to dev...@googlegroups.com
Olá Rafael,
o exemplo que você me mandou soluciona o problema de apenas um único envio de informação, e isso eu já estava conseguindo fazer.
O meu problema se dá quando eu tento enviar da segunda vez em diante.
Mas felizmente consegui descobrir qual o problema.

Para que essa mensagem de erro nao ocorra mais, é preciso que o nó de NCLua que vai receber a informação TAMBÉM enviei um event de post com ação de stop, ou seja, é preciso colocar TAMBÉM o seguinte código no NCLua destino:

if evt.action == 'start' then   
    evt.action = 'stop'
    event.post(evt)
end


Obrigado pela ajuda de todos!

[]'s
Rafael Donato

2009/11/7 Rafaelprp <rafa...@gmail.com>

Thyago Fernando de Almeida Silva

unread,
Nov 9, 2009, 5:58:49 PM11/9/09
to dev...@googlegroups.com
Eu num disse. :p

2009/11/9 Rafael Donato <rafael...@gmail.com>

Rafael Donato

unread,
Nov 9, 2009, 10:22:17 PM11/9/09
to dev...@googlegroups.com
Realmente Thyago, voce tinha falado mesmo.
Eu que entendi errado. Achei que voce estava dizendo para dar stop a partir do NCLua que envia os dados.

Foi mal aí!
=)

2009/11/9 Thyago Fernando de Almeida Silva <thyagof...@gmail.com>
Reply all
Reply to author
Forward
0 new messages