Added quantum-beacon.
This commit is contained in:
parent
e165b16064
commit
87ba71cd76
|
@ -0,0 +1,42 @@
|
|||
--[[
|
||||
Quantum Beacon
|
||||
|
||||
A script that runs on computers connected to an AE quantum ring to ping their
|
||||
status back to a central computer.
|
||||
]]
|
||||
|
||||
local SEND_CHANNEL = 100
|
||||
local RECEIVE_CHANNEL = 101
|
||||
local NODE_NAME = "TMP"
|
||||
local TRANSMIT_INTERVAL = 15
|
||||
|
||||
local function getPeripheralOrWait(name)
|
||||
local p = nil
|
||||
repeat
|
||||
p = peripheral.find(name)
|
||||
if p == nil then
|
||||
print("Error: Couldn't find an attached peripheral with name \"" .. name .. "\". Attach one please.")
|
||||
os.pullEvent("peripheral")
|
||||
end
|
||||
until p ~= nil
|
||||
return p
|
||||
end
|
||||
|
||||
-- We consider a foreign quantum link to be connected if we detect crafting
|
||||
-- CPUs on the network, since subnetworks shouldn't ever have these.
|
||||
local function meSystemConnected(meBridge)
|
||||
local craftingCpus = meBridge.getCraftingCPUs()
|
||||
return craftingCpus ~= nil and #craftingCpus > 0
|
||||
end
|
||||
|
||||
while true do
|
||||
local modem = getPeripheralOrWait("modem")
|
||||
local meBridge = getPeripheralOrWait("meBridge")
|
||||
local packet = {
|
||||
node = NODE_NAME,
|
||||
date = os.date("*t"),
|
||||
online = meSystemConnected(meBridge)
|
||||
}
|
||||
modem.transmit(SEND_CHANNEL, RECEIVE_CHANNEL, packet)
|
||||
os.sleep(TRANSMIT_INTERVAL)
|
||||
end
|
Loading…
Reference in New Issue