51 lines
1.4 KiB
Lua
51 lines
1.4 KiB
Lua
|
|
-- diag.lua
|
||
|
|
-- Utforsker alle peripheraler og proever aa kalle hver metode (uten argumenter)
|
||
|
|
-- for aa se hvilke data som er tilgjengelige -- spesielt fra contraption diagram-blokken.
|
||
|
|
-- Skriver til skjerm OG diag.log.
|
||
|
|
|
||
|
|
local OUT = "diag.log"
|
||
|
|
if fs.exists(OUT) then fs.delete(OUT) end
|
||
|
|
local file = fs.open(OUT, "w")
|
||
|
|
|
||
|
|
local function emit(s)
|
||
|
|
print(s)
|
||
|
|
file.writeLine(s)
|
||
|
|
end
|
||
|
|
|
||
|
|
local function dump(v)
|
||
|
|
if type(v) == "table" then
|
||
|
|
return textutils.serialise(v):gsub("%s+", " ")
|
||
|
|
end
|
||
|
|
return tostring(v)
|
||
|
|
end
|
||
|
|
|
||
|
|
local names = peripheral.getNames()
|
||
|
|
emit("=== PERIPHERAL-UTFORSKER ===")
|
||
|
|
emit("Fant " .. #names .. " peripheral(er)")
|
||
|
|
emit("")
|
||
|
|
|
||
|
|
for _, name in ipairs(names) do
|
||
|
|
local ptype = peripheral.getType(name)
|
||
|
|
emit("##########################################")
|
||
|
|
emit("Navn: " .. name .. " Type: " .. tostring(ptype))
|
||
|
|
emit("------------------------------------------")
|
||
|
|
|
||
|
|
local methods = peripheral.getMethods(name)
|
||
|
|
table.sort(methods)
|
||
|
|
|
||
|
|
for _, m in ipairs(methods) do
|
||
|
|
-- proev aa kalle metoden uten argumenter; mange er gettere
|
||
|
|
local ok, res = pcall(function() return peripheral.call(name, m) end)
|
||
|
|
if ok then
|
||
|
|
emit(string.format(" %s() = %s", m, dump(res)))
|
||
|
|
else
|
||
|
|
-- feilet (trenger nok argumenter) -- bare noter signaturen
|
||
|
|
emit(string.format(" %s() -> [krever arg / feil: %s]", m, tostring(res):gsub("%s+"," ")))
|
||
|
|
end
|
||
|
|
end
|
||
|
|
emit("")
|
||
|
|
end
|
||
|
|
|
||
|
|
emit("=== FERDIG -> " .. OUT .. " ===")
|
||
|
|
file.close()
|