I have problem with loops, table in Lua
here is table with variable knx (now it's static)
regTable = {
{ RegEddr=3027, count=2, regType="float", knx="1/1/1"},
{ RegEddr=3029, count=2, regType="float", knx="1/1/2"},
{ RegEddr=3031, count=2, regType="float", knx="1/1/3"},
{ RegEddr=2999, count=2, regType="float", knx="1/1/4"},
{ RegEddr=3001, count=2, regType="float", knx="1/1/5"},
{ RegEddr=3003, count=2, regType="float", knx="1/1/6"},
{ RegEddr=3109, count=2, regType="float", knx="1/1/7"},
{ RegEddr=3083, count=2, regType="float", knx="1/1/8"},
{ RegEddr=3059, count=2, regType="float", knx="1/1/9"},
{ RegEddr=3203, count=4, regType="int64", knx="1/1/10"},
}
function readRegisters()
for idx, register in pairs(regTable) do
if register.regType=="int" then
valueInt = mb:readregisters(register.RegEddr)
grp.write(register.knx, valueInt)
elseif register.regType=="float" then
value1, value2 = mb:readregisters(register.RegEddr,register.count)
if value1 then
valueFloat = bit.lshift(value1, 16) + value2
valueFloat = lmcore.inttohex(valueFloat, 4)
valueFloat = knxdatatype.decode(valueFloat, dt.float32)
grp.write(register.knx, valueFloat)
end
elseif register.regType=="int64" then
valueInt1, valueInt2, valueInt3, valueInt4 = mb:readregisters(register.RegEddr,register.count)
if valueInt4 then
valueInt64 = valueInt4
log(valueInt64)
grp.write(register.knx, valueInt64)
end
end
end --end for
end --end function
from another script I call function readRegisters()
so I have list of addresses, but I don't know how many addresses user will need. if 10 or 100. That's the reason why it's not optimal to have list of addresses but dynamic list with +1 step
1/1/1
1/1/2
...
1/1/255
It's possible to help me how create dynamically add addresses variable knx to this table?