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
我正在尝试创建一个 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