Ir para o conteúdo

 Voltar a Linguagem NCL
Tela cheia

Uso de

17 de Setembro de 2007, 12:26 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 16 vezes

Olá,

 Eu estou tentando desenvolver um aplicativo NCL e esbarrei em um problema. Eu preciso que qdo uma mídia termine outra comece somente se o valor de uma propriedade de uma mídia de settings tenha um determinado valor. Eu estou usando  <assessmentStatement/>, mas não consigo obter o resultado que eu quero.

Abaixo segue um exemplo que eu montei pra testar isso: (pra rodá-lo é necessário ter no diretorio media dois arquivos video1.mp4 e video2.mp4)

 <?xml version="1.0" encoding="ISO-8859-1"?>

<ncl id="video_presentation" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
    <head>
    


1313 comentários

  • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
    17 de Setembro de 2007, 14:03

     

    Olá,

    O problema é que o valor do atributo attributeType de <attributeAssessment> deve ser "nodeProperty" e não "nodeAttribute"!

    Histórico: Da versão 2.3 para a versão 3.0, o elemento <attribute> virou <property> bem como "nodeAttribute" passou a se chamar "nodeProperty".

    Pode ser que haja algum outro problema. Se for o caso, avise o fórum, ok? De preferência, avise se seu exemplo passar a funcionar corretamente tb.

    Abraços,
    Carlos

    • F69e9cf42854ee59de888e7cea987114?only path=false&size=50&d=404robison santos(usuário não autenticado)
      17 de Setembro de 2007, 16:26

       

      Ok.

      Deu certo, eu troquei o atributo "attributeType" de "nodeAttribute" pata "nodeProperty" e funcionou corretamente.

      Valeu Carlos. 

  • 8439a28584b70befddd5b658eb98c3b0?only path=false&size=50&d=404watson odilon(usuário não autenticado)
    27 de Setembro de 2007, 23:30

     

    Olá a todos,

    onde eu posso encontrar mais informação sobre <assessmentStatement> e os seus atributos?

    me lembro da simone falando sobre isso mais não encontrei nada sobre o assunto no material...

    valeu

    • 754d4402e67aee0305d1a29003710c1c?only path=false&size=50&d=404andrey silva souza(usuário não autenticado)
      28 de Setembro de 2007, 15:45

       

      Estou com duvidas em relacao ao  <assessmentStatement/> e os valores de seus atributos :

      <role="attNodeTest" eventType="attribution" attributeType="nodeProperty"/>

      eh obrigado eu definir o "eventType" e  "attributeType"?

      e para o "role=attStateTest" quais os outros valores para <bindParam value="occuring"/>

       Estou precisando saber explicar isso nas aulas do projeto.

       

      Vlw

       

       

       

       

      • 5a82d82e341eb9065577cf78128f296a?only path=false&size=50&d=404Marcelo Moreno(usuário não autenticado)
        18 de Novembro de 2007, 21:59

         

        Ola, Andrey e Watson.

           Realmente, o tutorial não aborda o elemento assessmentStatement adequadamente. Pretendemos incluir mais detalhes nos próximos tutoriais.

           Enquanto isso, verifiquem a seção 3.2.7 da especificação:
           www.​ncl.​org.​br/d​ocum​ento​s/NC​L3.0​-DTV​.pdf

        []s
        Moreno
         

        • 754d4402e67aee0305d1a29003710c1c?only path=false&size=50&d=404andrey silva souza(usuário não autenticado)
          20 de Novembro de 2007, 13:16

           

          Olá Marcelo, dei uma olhada na especificação e me bateu uma duvida. Estou precisando avaliar atraves do um elo o valor de mais de uma propriedade definida no "ginga-settings", e atraves do <assessmentStatement> verifiquei que não existe o atributo max ="unbounded" como existe no SimpleCondition para definir mais de um "bind" e tambem não existe no <compoundStatement>.

          Então a grosso modo meu conector esta assim:

               <causalConnector id="onKeySelectionAttNodeTestStart">
                  <connectorParam name="keyCode"/>
                  <connectorParam name="value"/>
                  <connectorParam name="setValue"/>
                  <compoundCondition operator="and">
                    <simpleCondition role="onSelection" key="$keyCode"/>
                    <compoundStatement operator="and">
                      <assessmentStatement comparator="eq">
                         <attributeAssessment role="attNodeTest" eventType="attribution" attributeType="nodeProperty" />
                         <valueAssessment value="$value"/>
                      </assessmentStatement>
                      <assessmentStatement comparator="eq">
                         <attributeAssessment role="attNodeTest" eventType="attribution" attributeType="nodeProperty" />
                         <valueAssessment value="$value"/>
                      </assessmentStatement>
                      <assessmentStatement comparator="eq">
                         <attributeAssessment role="attNodeTest" eventType="attribution" attributeType="nodeProperty" />
                         <valueAssessment value="$value"/>
                      </assessmentStatement>
                      <assessmentStatement comparator="eq">
                         <attributeAssessment role="attNodeTest" eventType="attribution" attributeType="nodeProperty" />
                         <valueAssessment value="$value"/>
                      </assessmentStatement>
                    </compoundStatement> 
                  </compoundCondition>

                 <simpleAction role="start"/>
             

               </causalConnector>

          Como faço para verificaro valor de  mais de uma propriedade atraves  dele?

           

          Vlw! 

           

          • 754d4402e67aee0305d1a29003710c1c?only path=false&size=50&d=404andrey silva souza(usuário não autenticado)
            20 de Novembro de 2007, 17:34

             

            Bem, testei no player de voces e deu certo, o conector reconheceu os varios  <assessmentStatement> e no link enviei varios binds para testar cada valor das propriedades. Agora isso eh pra funcionar  mesmo  sem  o suporte ao atributo max="unbounded" ?

            • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
              21 de Novembro de 2007, 14:47

               

              Sim, o <assessmentStatement> não tem cardinalidade (atributos min e max). Você pode usar múltiplos testes com ele.

              No entanto, não é necessário definir vários <assessmentStatement> no conector para usar vários testes no elo como você fez.

              Carlos

              • 754d4402e67aee0305d1a29003710c1c?only path=false&size=50&d=404andrey silva souza(usuário não autenticado)
                22 de Novembro de 2007, 11:45

                 

                Olá Carlos!

                Analisando melhor o codigo notei q o conector so estava  verificando o primeiro "bind" escrito, a interface Atributo1, no outro elo "lBotaoBLUE1" muda-se apenas o Atributo2, mas so o primeiro bind é lido entaum os dois resultados 1 e 2 são exibidos um em cima do o outro:

                 

                <link id="lBotaoBLUE1" xconnector="onKeySelectionAttNodeTestStart">

                                <bind role="onSelection" component="Voltar">
                                      <bindParam name="keyCode" value="BLUE"></bindParam>
                                </bind>
                              
                                <bind role="attNodeTest" component="nodeSettings" interface="Atributo1">
                                      <bindParam name="value" value="20"></bindParam>
                                </bind>
                               
                               <bind role="attNodeTest" component="nodeSettings" interface="Atributo2">
                                      <bindParam name="value" value="40"></bindParam>
                                </bind>
                               
                                <bind role="attNodeTest" component="nodeSettings" interface="Atributo3">
                                      <bindParam name="value" value="10"></bindParam>
                                </bind>
                                <bind component="Resultado1" role="start"></bind>

                        </link>
                        
                         
                          <link id="lBotaoBLUE2" xconnector="onKeySelectionAttNodeTestStart">

                                <bind role="onSelection" component="Voltar">
                                      <bindParam name="keyCode" value="BLUE"></bindParam>
                                </bind>

                                <bind role="attNodeTest" component="nodeSettings" interface="Atributo1">
                                      <bindParam name="value" value="20"></bindParam>
                                </bind>
                               
                               <bind role="attNodeTest" component="nodeSettings" interface="Atributo2">
                                      <bindParam name="value" value="30"></bindParam>
                                </bind>
                               
                                <bind role="attNodeTest" component="nodeSettings" interface="Atributo3">
                                      <bindParam name="value" value="20"></bindParam>
                                </bind>
                                <bind component="Resultado2e" role="start"></bind>
                       
                          </link>
                         

                 

                • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
                  22 de Novembro de 2007, 18:55

                   

                  Oi,

                  O problema todo está no conector que você definiu. Seu conector possui vários papéis com o mesmo nome "attNodeTest", o que está ocasionando esse problema que notou.

                  Tente mudar os nomes dos papéis (atributos role dos <assessmentStatement>) para, por exemplo, attNodeTest1, attNodeTest2 e assim por diante.

                  Por favor, se ainda tiver problemas, poste o conector novamente junto com os elos.

                  Carlos

                  • 754d4402e67aee0305d1a29003710c1c?only path=false&size=50&d=404andrey silva souza(usuário não autenticado)
                    22 de Novembro de 2007, 19:27

                     

                    Isso mesmo Carlos, tinha alterado para nomes diferentes mas tambem retirei o <compoundStatement>, deixei os <assessmentStatement> soltos e adicionei mais  <connectorParam> para cada valor analisado. Veja abaixo:

                     

                    <causalConnector id="onKeySelectionAttNodeTestStart">
                            <connectorParam name="keyCode"></connectorParam>
                            <connectorParam name="value1"></connectorParam>
                            <connectorParam name="value2"></connectorParam>
                            <connectorParam name="value3"></connectorParam>
                            <connectorParam name="value4"></connectorParam>
                           
                            <compoundCondition operator="and">
                              <simpleCondition role="onSelection" key="$keyCode"></simpleCondition>
                              
                              <assessmentStatement comparator="eq">
                                  <attributeAssessment role="attNodeTest1" eventType="attribution" attributeType="nodeProperty"></attributeAssessment>
                                   <valueAssessment value="$value1"></valueAssessment>
                              </assessmentStatement>
                             
                             
                              <assessmentStatement comparator="eq">
                                  <attributeAssessment role="attNodeTest2" eventType="attribution" attributeType="nodeProperty"></attributeAssessment>
                                   <valueAssessment value="$value2"></valueAssessment>
                              </assessmentStatement>
                             
                             
                             
                              <assessmentStatement comparator="eq">
                                  <attributeAssessment role="attNodeTest3" eventType="attribution" attributeType="nodeProperty"></attributeAssessment>
                                   <valueAssessment value="$value3"></valueAssessment>
                              </assessmentStatement>
                             
                             
                             
                              <assessmentStatement comparator="eq">
                                  <attributeAssessment role="attNodeTest4" eventType="attribution" attributeType="nodeProperty"></attributeAssessment>
                                   <valueAssessment value="$value4"></valueAssessment>
                              </assessmentStatement>
                             
                             
                            </compoundCondition>
                      
                            <simpleAction role="start"></simpleAction>
                        
                          </causalConnector>
                              
                        
                      </connectorBase>

                     

                    Assim funcionou tranquilo.  :)

                    Dúvidas: 

                    1º - Vc tinha dito que naum precisava de varios <assessmentStatement> como eu fiz para testar varias propriedades .Como faria então?

                    2º - Foi correto eu retirar o <compoundStatement>?

                     

                    • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
                      26 de Novembro de 2007, 17:36

                       

                      Oi Andrey,

                      1) Havia dito que não precisava de vários <assessmentStatement> por um equívoco inicial de entendimento da minha parte. Desculpe! Nesse seu exemplo, você precisa mesmo de vários <assessmentStatement>.

                      É interessante o seu exemplo! Rende um bom bate-papo.

                      É que ao ser projetado o <assessmentStatement> não se julgava necessário na maioria das aplicações haver múltiplos assessments. De fato, não é para ser necessário já que NCL tem cunho declarativo, portanto elos condicionais com múltiplos testes de valor não são algo interessante de ser feito na linguagem.

                      Isso pesou na decisão de definir o <assessmentStatement> sem cardinalidade. Ao excluir a cardinalidade desse elemento, fica evidente que o uso de múltiplos <assessmentStatement> não é elegante (o conector fica bem repetitivo).

                      Mas seu exemplo pede exatamente por um elo condicional com QUATRO testes de valor! Paciência ... se você precisa mesmo desse conector e elo, faça-o. Só que você deve aceitar o preço de ser repetitivo definir o conector com vários papéis (roles).

                      2) Na verdade, nesse seu caso é indiferente ter ou não o <compoundStatement> com o operador "and" porque o <compoundCondition> pai JÁ tem o operador "and". Eu retiraria ele porque gosto de ser minimalista. Mas você pode julgar que fica mais claro o "and" entre os <assessmentStatement> se colocar um <compoundStatement> com esse operador como pai deles (como estava antes). E então, prefere café com leite ou leite com café? :-)

                      IMPORTANTE: Caso desejasse fazer um "or" com os assessment, por exemplo, seria indispensável ter o elemento <compoundStatement>.

                      Abraços,
                      Carlos

      • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
        21 de Novembro de 2007, 13:38

         

        Oi Andrey,

        Só para resumir o que está na especificação.

        Quando você usa o atributo role com um valor não-padrão (os padrões são onBegin, start etc), é necessário informar os atributos eventType e attributeType.

        Quanto aos testes de estado, você pode verificar se o nó está em um dos três estados possíveis da máquina de estados de um evento: prepared, paused ou occuring.

        Carlos

Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo