Gerenciamento de Temporizadores

Modelo de Dados

../_images/model_timers.jpg

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)

obs

Compatível a partir da versão 1.3.19

Descrição:

  • Retorna um objeto timer. Este evento está disponível para o HIscada Pro a partir da versão 1.3.19

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

obs

Compatível até a 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

obs

Compatível até a 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()

obs

Compatível a partir da 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
ocal 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