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