-- mem.count: count per item type
-- mem.list: list of item types
-- mem.total: total number of items counted
local ControlPanel = "panel"
local send = function()
local line = ""
for i = 1, 5 do
local name = mem.list[mem.pointer + i]
if not name then break end
line = line .. tostring(mem.count[name]) .. " " .. name .. "\n"
end
digiline_send(ControlPanel, line .. "Page: " .. tostring(math.floor(mem.pointer / 5)) .. "/" .. tostring(math.floor(#mem.list / 5)) .. " Heat: " .. tostring(heat))
end
if event.type == "digiline" then
local msg = event.msg
if event.channel == "incoming" then
if mem.count[msg] then
mem.count[msg] = mem.count[msg] + 1
else
mem.count[msg] = 1
table.insert(mem.list, msg)
end
mem.total = mem.total + 1
send()
elseif event.channel == ControlPanel then
if msg == "up" then
mem.pointer = math.max(mem.pointer - 1, 0)
send()
elseif msg == "down" then
mem.pointer = math.min(mem.pointer + 1, #mem.list)
send()
end
end
elseif event.type == "program" then
mem.count = mem.count or {}
mem.list = mem.list or {}
mem.pointer = mem.pointer or 0
mem.total = mem.total or 0
send()
end
Comments