Device
A classe Device permite acessar e controlar atuadores (dispositivos de saída) cadastrados no sistema. Você pode obter dispositivos por ID, verificar estados, e controlar seu funcionamento.
Métodos Estáticos
Device.get(id)
Obtém um dispositivo pelo seu ID.
| Parâmetro | Tipo | Descrição |
|---|---|---|
id | integer | O ID do dispositivo |
Retorno: Device|nil — O objeto dispositivo ou nil se não encontrado.
local bomba = Device.get(0)
if bomba then
Log.info("Dispositivo encontrado: " .. bomba:getName())
else
Log.error("Dispositivo não encontrado")
end
Device.count()
Retorna o número total de dispositivos cadastrados.
Retorno: integer — O número de dispositivos.
local total = Device.count()
Log.info(string.format("Total de dispositivos: %d", total))
Métodos de Instância
device:getName()
Obtém o nome do dispositivo.
Retorno: string — O nome do dispositivo.
local device = Device.get(0)
Log.info("Nome: " .. device:getName())
device:getId()
Obtém o ID do dispositivo.
Retorno: integer — O ID do dispositivo.
local device = Device.get(0)
Log.info(string.format("ID: %d", device:getId()))
device:getState()
Obtém o estado atual do dispositivo.
Retorno: integer — O valor do estado atual.
local device = Device.get(0)
local estado = device:getState()
if estado == 1 then
Log.info("Dispositivo está LIGADO")
else
Log.info("Dispositivo está DESLIGADO")
end
device:setState(state)
Define um novo estado para o dispositivo.
| Parâmetro | Tipo | Descrição |
|---|---|---|
state | integer | O novo valor de estado |
local device = Device.get(0)
device:setState(1) -- Liga o dispositivo
Log.success("Dispositivo ligado!")
device:isEnabled()
Verifica se o dispositivo está habilitado.
Retorno: boolean — true se habilitado.
local device = Device.get(0)
if device:isEnabled() then
Log.info("Dispositivo está habilitado")
end
device:toggleEnable()
Alterna o estado de habilitação do dispositivo.
local device = Device.get(0)
device:toggleEnable()
Log.info("Estado de habilitação alternado")
device:start()
Inicia o dispositivo.
local device = Device.get(0)
device:start()
Log.success("Dispositivo iniciado")
Exemplo Completo
-- Lista todos os dispositivos e seus estados
for i = 0, Device.count() - 1 do
local device = Device.get(i)
if device then
Log.info(string.format(
"Device %d: %s | Estado: %d | Habilitado: %s",
device:getId(),
device:getName(),
device:getState(),
device:isEnabled() and "Sim" or "Não"
))
end
end
-- Controla um dispositivo específico
local bomba = Device.get(0)
if bomba and bomba:isEnabled() then
bomba:setState(1)
Log.success("Bomba ativada!")
end