-- 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()