local rs = component.proxy(component.list("redstone")()) computer.beep(500,0.1) local modem = component.proxy(component.list("modem")()) computer.beep(600,0.1) local eeprom = component.proxy(component.list("eeprom")()) computer.beep(400,0.1) modem.open(50) modem.setWakeMessage("00") function handleMessage(msgType, recieveAddr, sendAddr, port, dist, msg) --computer.beep(800,0.4) if msgType == "modem_message" then handleCommand(msg, sendAddr, port, dist) end end -- msg: NN<1:4096c> function handleCommand(msg, sendAddr, port, dist) cmd,data = string.unpack("c2 z",msg) if cmd == "01" then -- update code if data:len() <= 4096 then computer.beep(800,0.1) computer.beep(200,0.1) computer.beep(400,0.1) eeprom.set(data) computer.shutdown() else computer.beep(800,1) end elseif cmd == "02" then -- start alarm rs.setOutput(2,15) rs.setOutput(3,15) rs.setOutput(4,15) rs.setOutput(5,15) elseif cmd == "03" then -- stop alarm rs.setOutput(2,0) rs.setOutput(3,0) rs.setOutput(4,0) rs.setOutput(5,0) elseif cmd == "04" then computer.beep(600,0.1) modem.send(sendAddr, port, true) elseif cmd == "00" then -- unused (cmd is used for wake) eeprom.setData(data) elseif cmd == "99" then computer.beep(tonumber(data),5) end end while true do handleMessage(computer.pullSignal(1)) end