Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Set
- local component = require("component")
- local term = require("term")
- local thread = require("thread")
- local event = require("event")
- local serial = require("serialization")
- local modem = component.modem
- local queue = {}
- term.clear()
- print("---Router online---")
- modem.open(7727)
- -- Address Book -- Router Address: 25630b44-6b43-46e5-abcb-7a84b0aea85c
- addresses =
- {
- {dest="probench", address="0d8faae2-522c-48bf-bcaa-3494e3e30206", by="modem", desc="Main Programing Bench"},
- {dest="tbench1", address="1d02846b-fdb6-4b84-9b3f-18d461857433", by="modem", desc="Test Bench #1"},
- {dest="osinstbench", address="1f2dccf1-2715-43ad-9ec6-faa486a074c1", by="modem", desc="OS Installer Bench"},
- {dest="reactor1info", address="b9cdbf26-5087-4e62-9883-a75be1abe06b", by="modem", desc="Reactor 1 Info Handler"}
- }
- --Variables--
- local dest = ""
- local msg = ""
- -- Functions --
- function parse(rMsg)
- out = {}
- sep = "%s"
- for str in string.gmatch(rMsg, "([^"..sep.."]+)") do
- table.insert(out, str)
- end
- for addr, row in ipairs(addresses) do
- if out[2] == row.dest then
- dest = row.address
- end
- end
- msg = out[3]
- end
- function send(dest,msg)
- modem.send(dest,7727,msg)
- end
- function CleanNils(t)
- local ans = {}
- for _,v in pairs(t) do
- ans[ #ans+1 ] = v
- end
- return ans
- end
- ---- Main ----
- --local eventHandler = thread.create(function()
- while true do
- print("[Waiting for request]")
- local _,_,from,_,_,rawMsg = event.pull("modem_message") -- Waits for an event
- print("[Received] from " .. from .. " of " .. rawMsg)
- table.insert(queue,#queue+1,rawMsg)
- end
- --end)
- local requestProccessor1 = thread.create(function()
- while true do
- if #queue > 0 then
- print("queue processing")
- os.sleep()
- local rawMsg = queue[1]
- parse(rawMsg) --Sends raw message data to parser
- send(dest,msg)
- print("[Sent] to " .. dest .. " of " .. msg)
- os.sleep()
- table.remove(queue,1)
- CleanNils(queue)
- end
- os.sleep()
- end
- end)
- --------------
Add Comment
Please, Sign In to add comment