Ir para o conteúdo

 Voltar a Linguagem NCL
Tela cheia

Propriedade user.location

11 de Agosto de 2011, 16:32 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 7 vezes

Olá estou com uma dúvida com relação à propriedade user.location do nó ginga-ncl-settings. Estou desenvolvendo alguns exemplos aqui e resolvi fazer uma adaptação de conteúdo de acordo com a região que o usuário mora. Dei uma lida na norma e lá não diz se é possível eu usar essa propriedade para eu adaptar minha aplicação de acordo com o estado (Paraná, São Paulo, ...) que o usuário mora. Pelo que entendi consigo adaptar usando apenas o código postal de um país. Como eu poderia adaptar o conteúdo de acordo com o estado ou até mesmo a cidade que o usuário mora ? Eu poderia fazer esses testes na versão atual do Set-Top-Box-Virtual ? Valeu !

Tentei fazer um teste aqui e não consegui: 

 <ruleBase>

<rule id="dfederal" var="user.location" comparator="eq" value="70000-000"/>

</ruleBase>

... 

 <media id="globalVar" type="application/x-ncl-settings">

            <property name="user.location" value="70000-000"/>                        

  </media>  

 <switch id="locationSwitch">

            <switchPort id="pLocal">

            <mapping component="OndeComprarDF>

<mapping component="OndeComprarTO"/>  

      </switchPort>

                <bindRule constituent="OndeComprarDF" rule="dfederal"/>

            <defaultComponent component="OndeComprarTO"/>              

                 <media id="OndeComprarDF" src="media/OndeComprarDF.png" descriptor="dInfo"/>

            <media id="OndeComprarTO" src="media/OndeComprarTO.png" descriptor="dInfo"/>                    </switch> 

  <link xconnector="connBase#onSelectionStartStop"> 

    <bind role="onSelection" component="Item2"/>    

  <bind role="stop" component="infoCarro"/>

  <bind role="stop" component="FormularioCompra"/>

  <bind role="start" component="locationSwitch"/>    

   </link>  

Autor: Fernando Dias Stulback


55 comentários

  • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
    11 de Agosto de 2011, 17:54

     

    Fernando,

    as variaveis "user.*" , "system.*", ... sao reservadas, a NCL nao pode escrever nelas. Essas variaveis devem ser preenchidas automaticamente por alguma aplicacao nativa no set-top box (por exemplo, essa aplicacao pode usar as informacoes de GPS ou de algum smart card).

    Para testar, voce pode criar uma variavel sua (por exemplo, "location", sem o "user." na frente) que o codigo NCL pode escrever nela sem problemas.

    Espero ter ajudado!

    • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
      12 de Agosto de 2011, 10:29

       

      Apenas adicionando mais uma informação,

      No Ginga Virtual STB, outra forma de testar é editar os arquivos contexts.ini ou users.ini (que estão em /usr/local/etc/ginga/files/contextmanager/) e adicionar a variável que você que você quer (por exemplo, user.location) com o valor que você quer.

      O interessante dessa abordagem é que é mais próxima de como a aplicação será executada no final (ou seja, você terá a mesma aplicação, não irá editá-la, rodando em ambientes com configurações diferentes).

      Veja que ao fazer isso, o que você estaria fazendo seria exatamente o que uma aplicação residente poderia ao editar essas variáveis.

      • 7e4727b90e8330d12f11c9d04fe85f63?only path=false&size=50&d=404Fernando Dias Stulback(usuário não autenticado)
        8 de Setembro de 2011, 16:09

         

        Olá Roberto,          fiz como orientado por você. Escrevi (nos dois arquivos) um valor de CEP para a variável user.location para teste:user.location = 70555210A minha base de regras ficou como abaixo: <ruleBase> <compositeRule id="bairroA" operator="or"> <rule id="bairroA1" var="user.location" comparator="gte" value="70555010"/> <rule id="bairroA2" var="user.location" comparator="lte" value="70555490"/> </compositeRule> <compositeRule id="bairroB" operator="or"> <rule id="bairroB1" var="user.location" comparator="gte" value="70650010"/> <rule id="bairroB2" var="user.location" comparator="lte" value="70650420"/> </compositeRule> </ruleBase> ---<switch id="switchNearestHealthHouse"> <switchPort id="pAdaptacao">     <mapping component="mdBairroA"/>                        <mapping component="mdBairroB"/>                 </switchPort> <bindRule constituent="mdBairroA" rule="bairroA"/> <bindRule constituent="mdBairroB" rule="bairroB"/> <media id="mdBairroA" src="media/adaptation/bairroA.png" descriptor="dInfoAdaptacao"/> <media id="mdBairroB" src="media/adaptation/bairroB.png" descriptor="dInfoAdaptacao"/> </switch> Nesse caso deveria startar para mim a imagem do bairro A, porém não está funcionando. Creio que o código esteja correto. Alguma dica ? Obrigado! 

        • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
          11 de Setembro de 2011, 17:02

           

          Oi Fernando,dando uma pesquisada no código do Ginga, descobri que no arquivo users.ini já tem o campo user.location lá. O que você precisa fazer é substituir ele, que inicialmente está com valor zero.Se você colocar isso no seu arquivo users.ini é suficiente para que funcione::: = 0 || = 0 default 12345 17 70555210 m Quando às suas regras, acredito que deve ter algum problema com elas. Na primeira regra composta voce está dizendo: "user.location >= 70555010 OU user.location <= 70555490". Acredito que para qualquer valor de user.location isso seja verdadeiro. A sua segunga regra composta também parece ter um problema semelhante. É isso mesmo que você quer?!

          • 7e4727b90e8330d12f11c9d04fe85f63?only path=false&size=50&d=404Fernando Dias Stulback(usuário não autenticado)
            12 de Setembro de 2011, 10:47

             

            Obrigado pelas explicações Roberto !Funcionou beleza agora ! Realmente minhas regras não estavam corretas. Abaixo coloco as linhas de código pertinentes para quem se interessar. Obs.: Aqui estou fazendo uma adaptação de conteúdo conforme o bairro onde o usuário mora. Se ele mora no bairro A aparecerá informações sobre o Bairro A, se mora no Bairro B aparecerá informações sobre o Bairro B, se ele mora no Bairro C aparecerá informações sobre o Bairro C. Se o CEP estiver fora das faixas desses 3 bairros aparecerá uma informação dizendo para o usuário configurar o seu CEP nas preferências de sua TV. <ruleBase> <compositeRule id="bairroA" operator="and"> <rule id="bairroA1" var="user.location" comparator="gt" value="70490220"/> <rule id="bairroA2" var="user.location" comparator="lt" value="70495680"/> </compositeRule> <compositeRule id="bairroB" operator="and"> <rule id="bairroB1" var="user.location" comparator="gt" value="70555009"/> <rule id="bairroB2" var="user.location" comparator="lt" value="70555491"/> </compositeRule> <compositeRule id="bairroC" operator="and"> <rule id="bairroC1" var="user.location" comparator="gt" value="70650009"/> <rule id="bairroC2" var="user.location" comparator="lt" value="70650421"/> </compositeRule> </ruleBase> ...<media id="globalVarAdaptacao" type="application/x-ncl-settings"> <property name="user.location"/>         </media>... <switch id="switchInfoBairros"> <switchPort id="pHouse"> <mapping component="mdBairroA"/> <mapping component="mdBairroC"/>    <mapping component="mdConfigura"/>    <mapping component="mdBairroB"/>                         </switchPort>  <bindRule constituent="mdBairroA" rule="bairroA"/> <bindRule constituent="mdBairroB" rule="bairroB"/>  <bindRule constituent="mdBairroC" rule="bairroC"/> <defaultComponent component="mdConfigura"/> <media id="mdBairroA" src="media/adaptacao/bairroa.png" descriptor="dInfoAdaptacao"/> <media id="mdBairroB" src="media/adaptacao/bairrob.png" descriptor="dInfoAdaptacao"/> <media id="mdConfigura" src="media/adaptacao/configura.jpg" descriptor="dInfoAdaptacao"/> <media id="mdBairroC" src="media/adaptacao/bairroc.png" descriptor="dInfoAdaptacao"/>  </switch>

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