Files
airship-autopilot/files/autopilot/diag.lua
Stian 4cd2573f56 Airship autopilot: role-based wget installer for server
Mirrors the live CC autopilot (computer 0) and cockpit (computer 4) from the
Modda wii world. install.lua fetches each role's manifest over HTTP so the
system installs on any server regardless of computer id.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 12:53:41 +02:00

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