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