Skip to main content

Utils

A classe Utils fornece funções utilitárias diversas para operações comuns como obter timestamps e controlar o tempo de execução.

Métodos

Utils.getTimeSinceBoot()

Obtém o tempo decorrido desde a inicialização do sistema em milissegundos.

Retorno: integer — Tempo em milissegundos desde o boot.

local uptime = Utils.getTimeSinceBoot()
Log.info(string.format("Uptime: %d ms", uptime))

Utils.getTime()

Obtém o tempo atual como uma estrutura TimeStruct.

Atenção

Este método retorna nil e uma mensagem de erro se o tempo ainda não foi sincronizado via SNTP. A sincronização é feita automaticamente em segundo plano quando há conexão com a internet.

Retorno:

  • TimeStruct|nil — Estrutura com campos: year, month, day, hour, minute, second
  • string|nil — Mensagem de erro se a obtenção do tempo falhar.
local time, err = Utils.getTime()
if time then
Log.info(string.format("Data: %02d/%02d/%04d %02d:%02d:%02d",
time.day, time.month, time.year,
time.hour, time.minute, time.second))
else
Log.warn("Tempo não sincronizado: " .. (err or "erro desconhecido"))
end

Utils.getUnixTimestamp()

Obtém o timestamp Unix atual em segundos.

Atenção

Este método retorna nil e uma mensagem de erro se o tempo ainda não foi sincronizado via SNTP.

Retorno:

  • integer|nil — Timestamp em segundos desde a época Unix, ou nil se não sincronizado.
  • string|nil — Mensagem de erro se a obtenção do tempo falhar.
local timestamp, err = Utils.getUnixTimestamp()
if timestamp then
Log.info(string.format("Timestamp Unix: %d", timestamp))
else
Log.warn("Tempo não sincronizado: " .. (err or "erro desconhecido"))
end

Utils.sleep(ms)

Pausa a execução do script por um período especificado em milissegundos.

ParâmetroTipoDescrição
msintegerDuração do sleep em milissegundos (deve ser não-negativo)
Log.info("Iniciando operação...")
Utils.sleep(1000) -- Aguarda 1 segundo
Log.info("Operação concluída!")

Exemplo Completo

-- Monitora uptime e timestamp
local function logStatus()
local uptime = Utils.getTimeSinceBoot()
local time, timeErr = Utils.getTime()
local unixTimestamp, tsErr = Utils.getUnixTimestamp()

Log.info(string.format("=== Status do Sistema ==="))
Log.info(string.format("Uptime: %d ms (%.2f s)", uptime, uptime / 1000))

if time then
Log.info(string.format("Data: %02d/%02d/%04d %02d:%02d:%02d",
time.day, time.month, time.year,
time.hour, time.minute, time.second))
else
Log.warn("Tempo não sincronizado: " .. (timeErr or "erro desconhecido"))
end

if unixTimestamp then
Log.info(string.format("Timestamp Unix: %d", unixTimestamp))
else
Log.warn("Timestamp indisponível: " .. (tsErr or "erro desconhecido"))
end
end

-- Executa verificação inicial
logStatus()

-- Aguarda e verifica novamente
Utils.sleep(5000)
logStatus()