Lua - 动态生成的查找 table 和值

Lua - Dynamically generated look up table & values

我正在尝试创建一个 table 动态填充我拥有的一组开关的 on/off 状态。以下是我一直卡住的地方 returns nothing/nil? ..

-- retrieved http.request status of 4 binary switches 
local P61v = 1
local P62v = 0
local P63v = 1
local P64v = 0

— following table should allow us to look up the status of all associated light by their  plug names P61, P62, P63 etc.

local LookupTable = {
    P61 = P61v,
    P62 = P62v,
    P63 = P63v,
    P64 = P64v
}
local x = LookupTable[P62]
print(x)

LookupTable[P62] 中,表达式 P62 被计算为 nil,导致 LookupTable[nil] 解析为 nil

你要找的是

LookupTable.P62
-- or --
LookupTable['P62']

这是表达同一事物的等价方式。

我创建了一个定义这两个值的脚本,这就是我最终得到的结果..

local PowerResponse = "P61=0,P62=1,P63=0,P64=0"
local P61, _, P61v, P62, _, P62v, P63, _, P63v, P64, _, P64v = PowerResponse:match("(%w*)(=)(%d),(%w*)(=)(%d),(%w*)(=)(%d),(%w*)(=)(%d)")
local PowerStatusTable = {
        P61 = P61v,
        P62 = P62v,
        P63 = P63v,
        P64 = P64v
        }
--local x = PowerStatusTable[P62]
for k, v in pairs(PowerStatusTable) do
    luup.variable_set("urn:upnp-net:serviceId:IPPower1", k, v,deviceID)
end