diff --git a/monitor_turtles.lua b/monitor_turtles.lua new file mode 100644 index 0000000..13060a6 --- /dev/null +++ b/monitor_turtles.lua @@ -0,0 +1,36 @@ +local monitor = peripheral.find("monitor") +local turtleStates = {} + +-- Set monitor display +monitor.setTextScale(0.5) +monitor.clear() +monitor.setCursorPos(1,1) + +-- Pretty print function +local function draw() + monitor.clear() + monitor.setCursorPos(1,1) + monitor.write("Turtle Monitor") + local row = 2 + for id, data in pairs(turtleStates) do + monitor.setCursorPos(1, row) + local age = os.clock() - data.time + local status = (age > 10) and "offline" or data.status + monitor.write(string.format("%s (ID %d): %s", data.label, id, status)) + row = row + 1 + end +end + +-- Main loop +rednet.open("back") -- or side where modem is +while true do + local msg, proto + local id, message, protocol = rednet.receive("turtle_status", 2) + if id then + local ok, data = pcall(textutils.unserialize, message) + if ok and data and data.id then + turtleStates[data.id] = data + end + end + draw() +end \ No newline at end of file