Temporizadores

Esta página apresenta os itens de temporização no projeto, sendo associado ao Kernel, modelos ou ao Viewer.

Timers

ico1 Este item é utilizado para temporizar a execução de uma ação cíclica ou não, que pode ser definida via Script. A temporização pode estar associada ao Kernel, a modelos ou ao Viewer dependendo do local em que foi definida.

Identificação

Propriedade

Descrição

Default

Nome do item

Define o nome do item que será exibido na árvore do painel de projeto e será utilizado quando necessário referenciar o mesmo.

Item_NNN

Comentário

Permite a inclusão de um comentário acerca do objeto. Este campo não é obrigatório.

(Nenhum)

Timer

ico2 Este item configura um temporizador. Pode-se nele selecionar o script a ser executado ao término de cada espera do temporizador, assim como o tempo de espera e se a operação é cíclica ou não.

Identificação

Propriedade

Descrição

Default

Nome do item

Define o nome do item que será exibido na árvore do painel de projeto e será utilizado quando necessário referenciar o mesmo.

Item_NNN

Comentário

Permite a inclusão de um comentário acerca do objeto. Este campo não é obrigatório.

(Nenhum)

Argumentos

Neste campo pode-se inserir uma string que será o valor da propriedade Argument do item. A string fornecida é uma forma geral de passagem de parâmetros para os scripts associados ao objeto durante sua execução.

(Nenhum)

Descrição

Texto opcional que permite a inclusão de uma breve descrição do item associado. Este campo é apenas documental.

(Nenhum)

Propriedades Específicas

Propriedade

Descrição

Default

Inicia habilitado

Define se o timer será ou não inicializado como habilitado.

Não

Cíclico

Define se o timer terá ou não operação cíclica, ou seja, a execução do script será feita a partir do intervalo definido no campo intervalo.

Não

Intervalo (ms)

Define o tempo de espera para execução do script associado.

50000

Eventos

Propriedade

Descrição

Default

On Timer Script

Ação a ser executada após o intervalo de espera definido no campo de intervalo. Necessita do nome do script a ser executado.

(Nenhum)

Gerenciamento de Temporizadores

Modelo de Dados

../_images/uml_mod_dados.png

Fig. Modelo de dados


objTimerList = Timers.ListTimers()

Descrição:

  • retorna um objeto lista de timers.

Parâmetros de saída:

  • objTimerList - Lista de timers.

Exemplo de utilização:

function printTimer(t)
   print("Name = " .. t.Name)
   print("IsCyclic = " .. tostring(t.IsCyclic))
   print("ScriptName = " .. t.ScriptName)
   print("Interval = " .. t.Interval)
   print("Enabled = " .. tostring(t.Enabled))
end

-- Retorna lista de timers
local timerlist =Timers.ListTimers()

-- lista todos os timers
for pos,t in ipairs(timerlist) do
   printTimer(t)
end

objTimer = Timers.Get(string textTimerPath)

compativel versão >= 1.3.19

Descrição:

  • retorna um objeto timer.

Parâmetros de entrada:

  • textTimerPath - string com o caminho do timer.

Parâmetros de saída:

  • objTimer - Objeto timer. Se não existir retorna nil.

Exemplo de utilização:

function printTimer(t)
   print("Name = " .. t.Name)
   print("IsCyclic = " .. tostring(t.IsCyclic))
   print("ScriptName = " .. t.ScriptName)
   print("Interval = " .. t.Interval)
   print("Enabled = " .. tostring(t.Enabled))
end

-- Obtem um objeto timer
local timer = Timers.Get("Viewers.Timers.Timer_001")

 printTimer(timer)

objTimer = Timers.GetTimer(string textTimerPath) -Deprecated

compativel versão >= 1.3.18

Descrição:

  • Retorna um objeto timer. Esta função não deve ser utilizada nas versões maiores que 1.3.18.

Parâmetros de entrada

  • textTimerPath - string com o caminho do timer.

Parâmetros de saída:

  • objTimer - Objeto timer. Se não existir retorna nil.

Exemplo de utilização:

function printTimer(t)
   print("Name = " .. t.Name)
   print("IsCyclic = " .. tostring(t.IsCyclic))
   print("ScriptName = " .. t.ScriptName)
   print("Interval = " .. t.Interval)
   print("Enabled = " .. tostring(t.Enabled))
end

-- Obtem um objeto timer
local timer = Timers.GetTimer("Viewers.Timers.Timer_001")

printTimer(timer)

Timer

ret = timer:Cancel() -Deprecated

compativel versão >= 1.3.18

Descrição:

  • Desabilita o timer. Esta função não deve ser utilizada nas versões maiores que 1.3.18.

Parâmetros de saída:

  • ret: Se a operação de desabilitar o timer ocorrer com sucesso retorna nil.

Exemplo de utilização

function printTimer(t)
   print("Name = " .. t.Name)
   print("IsCyclic = " .. tostring(t.IsCyclic))
   print("ScriptName = " .. t.ScriptName)
   print("Interval = " .. t.Interval)
   print("Enabled = " .. tostring(t.Enabled))
end

-- Obtem um objeto timer
local timer = Timers.GetTimer("Viewers.Timers.Timer_001")

printTimer(timer)

-- Desabilita o timer
ret = timer:Cancel()
Sleep(1000) --Este tempo deve ser maior que o intervalo configurado para o timer

--Obtem objeto timer atualizado
local timer = Timers.GetTimer("Viewers.Timers.Timer_001")

printTimer(timer)

ret = timer:Disable()

compativel versão >= 1.3.19

Descrição:

  • Desabilita o timer.

Parâmetros de saída:

  • ret: Se a operação de desabilitar o timer ocorrer com sucesso retorna nil.

Exemplo de utilização:

function printTimer(t)
   print("Name = " .. t.Name)
   print("IsCyclic = " .. tostring(t.IsCyclic))
   print("ScriptName = " .. t.ScriptName)
   print("Interval = " .. t.Interval)
   print("Enabled = " .. tostring(t.Enabled))
end

-- Obtem um objeto timer
local timer = Timers.Get("Viewers.Timers.Timer_001")

printTimer(timer)

-- Desabilita o timer
ret = timer:Disable()
Sleep(1000) --Este tempo deve ser maior que o intervalo configurado para o timer

--Obtem objeto timer atualizado
local timer = Timers.Get("Viewers.Timers.Timer_001")

printTimer(timer)

ret = timer:Enable(integer interval)

Descrição:

  • Habilita o timer com um intervalo de execução definido.

Parâmetros de entrada:

  • interval: Intervalo de tempo(ms) para execução do script associado ao timer. Se o intervalo for vazio ou zero desabilita a execução do timer.

Parâmetros de saída:

  • ret: Se a operação de habilitar o timer ocorrer com sucesso retorna nil.

Exemplo de utilização:

function printTimer(t)
   print("Name = " .. t.Name)
   print("IsCyclic = " .. tostring(t.IsCyclic))
   print("ScriptName = " .. t.ScriptName)
   print("Interval = " .. t.Interval)
   print("Enabled = " .. tostring(t.Enabled))
end

-- Obtem um objeto timer
local timer = Timers.Get("Viewers.Timers.Timer_001")

-- Habilita timer
ret = timer:Enable(1000)

ret = timer:SetScript(string pathScript)

Descrição:

  • Define o script a ser executado pelo timer.

Parâmetros de entrada:

  • pathScript: Caminho completo do script a ser executado pelo timer.

Parâmetros de saída:

  • ret: Se a operação de associação do script ao timer ocorrer com sucesso retorna 0, caso contrario retorna -1.

Exemplo de utilização:

-- Troca dinâmica do script associado ao Timer
local timer = Timers.Get("Viewers.Timers.Timer_001")
print(timer.ScriptName)
ret = timer:SetScript("Viewers.Scripts.ScriptGroup_001.Script_001")
print("Ret = " .. ret)

local timer = Timers.Get("Viewers.Timers.Timer_001")
print(timer.ScriptName)
-- Se for um timer de instância, podemos acessar a variável "Instance"

origem = Instance.Name  -- obtém o nome da instância a que pertence este timer
if (origem == "Injetora1") then
  tag_path = "Instances.GrupoInjetor.Injetora1.Tags.Local.CfgGrp.Limite"
else
  tag_path = "Instances.GrupoInjetor.Injetora2.Tags.Local.CfgGrp.Limite"
end

-- Acessa um Tag da instância
local Tag = Tags. Get(tag_path)
local err = Tag: ReadCache()
if err == 0 then -- sucesso na leitura
  x = Tag.Value
  -- incrementa o valor do Tag
  x = x + 10;
  if (x > 200) then
    x = 0
  end
  Tag.Value = x
  Tag:WriteValue()
end