Ir para o conteúdo

 Voltar a Linguagem NCL
Tela cheia

Módulo settings

6 de Novembro de 2009, 16:44 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 97 vezes

Olá Pessoal, 

Tenho uma grande duvida quanto as variaveis do nó settings.

Na norma tem especificado que a variável do nó settings “system.CPU” em NCLUA é referida como settings.system.CPU.Fiz um teste em um STB com a variável "caption" e a mesma funcionou, segue código.

print(settings.system.caption)

canvas:attrColor (0, 255, 0, 255)

canvas:attrFont ("tiresias", 20, "bold")

canvas:drawText ( 30, 30,(settings.system.caption))

O valor retornado é PT de português. Mas, quando tento utilizar a variável service da forma como esta na norma (settings.service.myVar = 10) o aplicativo nem é carregado. Alguem sabe me dizer como fazer o script lua para a variavel service.myVar passar a ter o valor  10 por exemplo?

Muito Obrigada - Shyrles

Autor: Shyrles Monteiro


1010 comentários

  • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
    9 de Dezembro de 2009, 16:58

     

    Acho que você não tem acesso a alterar o valor dessa variável de ambiente via Lua. O módulo settings é apenas para leitura, não escrita.

    Talvez eu tenha entendido você errado. Você quer criar uma variável de serviço sua, de nome myVar e atribuir um valor em NCLua?

    Você não deveria fazer isso declarando essa propriedade em NCL e atribuindo seu valor lá?

    <media type="...settings">
        <property name="service.myVar" />
    </media>

    Ajude-me ... não estou conseguindo ajudá-la : - )

    Carlos

    • 1d1ad87a8b4565927d0c7094f933e254?only path=false&size=50&d=404Joel André Ferreira dos Santos(usuário não autenticado)
      9 de Dezembro de 2009, 17:53

       

      Na verdade essa é uma coisa um tanto esquisita da norma.

      Ela diz que o módulo settings é utilizado, por um script lua, somente para leitura. Mas em uma linha logo abaixo apresenta esse exemplo:

      settings.service.myVar = 10

      Outra coisa que não entendi muito bem, é que a tabela 12 da norma, que apresenta as variáveis de ambiente reservadas, informa que as do grupo default pode ser lida e ter seu valor alterado por NCL, Lua e etc.

      Seria então o módulo settings só para leitura, ou seria possível a criação de novas variáveis, que não definidas na norma, e alterar o valor das variáveis do grupo default?

      • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
        9 de Dezembro de 2009, 18:24

         

        Olá Joel, tudo bem?!

        Esses são os exemplos que aparecem na norma:

        lang = settings.system.language
        age = settings.user.age
        val = settings.default.selBorderColor
        settings.service.myVar = 10
        settings.user.age = 18 --> ERRO!

        Vamos discutí-los !

        Os 3 primeiros exemplos são apenas de consulta. Então não temos problemas, certo?!

        Pulando o quarto, por equanto, vê-se que o quinto exemplo (settings.user.age = 18) deve gerar um erro já que você está tentando modificar o valor de uma variável definida pelo nó settings.

        E eis que chegamos ao quarto exemplo (settings.service.myVar = 10). Sua dúvida, certo?

        Veja que "service.myVar" não está definido no nó settings (nem como default pelo middleware, nem pelo usuário através de uma propriedade no nó settings). Observe também que settings é uma tabela Lua como outra qualquer, por isso, a construção "settings.service.myVar"  é possível.

        Veja, contudo que "myVar" só é visível dentro do próprio Lua e nenhum nó NCL (ou outro nó Lua) poderá acessá-la. Sendo assim, ela não pode ser vista como uma propriedade do nó settings. E dessa forma, quando voce faz:

        settings.service.myVar = 10

        não está realmente modificando a propriedade do nó settings (apenas de uma variável dentro do próprio Lua). Por isso o erro NÃO É GERADO!

        Espero q tenha ajudado!

        • 1d1ad87a8b4565927d0c7094f933e254?only path=false&size=50&d=404Joel André Ferreira dos Santos(usuário não autenticado)
          9 de Dezembro de 2009, 20:45

           

          Oi Roberto,

          tudo bem sim. Obrigado pela resposta, era exatamente isso que queria saber.

          • 1d1ad87a8b4565927d0c7094f933e254?only path=false&size=50&d=404Joel André Ferreira dos Santos(usuário não autenticado)
            10 de Dezembro de 2009, 10:53

             

            Só mais uma pergunta.

            O módulo settings e/ou persistent estão implementados?

            Pergunto isso pois me lembro de ter visto no tutorial do francisco (antes de sair do ar) que não estavam. Após a pergunta da Shyrles fiz alguns testes aqui e não consegui acessar a tabela, recebendo o seguinte erro:

            PANIC: unprotected error in call to Lua API (/home/teste.lua:11: attempt to index global 'settings' (a nil value))

             

            Aproveitando a pergunta, caso os módulos não estejam implementados, existe alguma previsão para a implementação?

            Obrigado.

    • Abb451d0c69bab1b6fee2123fbd91f89?only path=false&size=50&d=404Shyrles Monteiro(usuário não autenticado)
      10 de Dezembro de 2009, 14:31

       

      Olá Carlos, na verdade eu queria poder armazenar 4 dígitos e poder utiliza-los depois, mesmo após o termino de um script lua, por isso, achei que o caminho seria utilizar uma variável de ambiente, mas o Roberto explicou a utilização da variável myVar. Pelo jeito terei que esperar o módulo persistent  ser implementado mesmo. Obrigada  pelas explicações pessoal. 

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