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,secondstring|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, ounilse 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âmetro | Tipo | Descrição |
|---|---|---|
ms | integer | Duraçã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()