Files
airship-autopilot/files/autopilot/diag.lua

51 lines
1.4 KiB
Lua
Raw Normal View History

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