This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Loop through variables
#3
(11.02.2021, 14:28)admin Wrote: Use arrays/tables to store data like this. Untested modified version of you code:
Code:
obj = db:getall('SELECT name FROM objects WHERE name LIKE "%STATUS_OCCUPIED%"')

data = {}
keys = { '02', '03_04', '05' }
for fid = 1, 5 do
  floor = {}
  for _, key in ipairs(keys) do
    floor[key] = {
      count = 0,
      occ = 0,
    }
  end
  data[fid] = floor
end

for _, name in ipairs(obj) do
  adr = grp.find(name.name)
  gaWeight = string.gsub(name.name, 'STATUS', 'WEIGHT')
  weight = grp.getvalue(gaWeight)
  value = toboolean(grp.getvalue(name.name))
  floor = tonumber(string.split(adr.address, '/')[2])
  agg = string.split(string.split(adr.name, '360.')[2], ' ')[1]
 
  --Oppretter adresse for vekting dersom den ikke finnes og setter vekttallet til 1.
  if grp.find(gaWeight) == nil then
    address = grp.create({
        datatype = dt.uint16,
        virtual = true,
        name = gaWeight,
        comment = '',
      })
    grp.write(gaWeight, 1)
    weight = 1
  end

  if data[floor] and data[floor][agg] then
    data[floor][agg].count = data[floor][agg].count + 1
    if value then
      data[floor][agg].occ = data[floor][agg].occ + weight
    end
  end
end

log(data)

Great! 

I will test this out. It looks a lot more elegant than my solution. I believe I will be needing things like this in many other applications as well.
There are 10 kinds of people in the world; those who can read binary and those who don't  Cool
Reply


Messages In This Thread
Loop through variables - by Trond Hoyem - 11.02.2021, 14:06
RE: Loop through variables - by admin - 11.02.2021, 14:28
RE: Loop through variables - by Trond Hoyem - 11.02.2021, 14:43
RE: Loop through variables - by Trond Hoyem - 12.02.2021, 13:53

Forum Jump: