updated
This commit is contained in:
60
main.lua
60
main.lua
@@ -3,48 +3,72 @@ reactor = peripheral.find("fissionReactorLogicAdapter")
|
||||
turbine = peripheral.find("turbineValve")
|
||||
turbineVent = peripheral.find("turbineVent")
|
||||
monitor = peripheral.find("monitor")
|
||||
environment = peripheral.find("environmentDetector")
|
||||
tempDriver = kernel.addDriver("temperature_driver")
|
||||
coolantDriver = kernel.addDriver("coolant_driver")
|
||||
statusDriver = kernel.addDriver("status_driver")
|
||||
turbineDriver = kernel.addDriver("turbine_driver")
|
||||
burnRateDriver = kernel.addDriver("burnrate_driver")
|
||||
environmentDriver = kernel.addDriver("environment_driver")
|
||||
|
||||
|
||||
function setNewLine()
|
||||
local x,y = monitor.getCursorPos()
|
||||
monitor.setCursorPos(1, y + 1)
|
||||
monitor.clearLine()
|
||||
end
|
||||
|
||||
local function runMonitors()
|
||||
parallel.waitForAll(tempDriver.watch, coolantDriver.watch, statusDriver.watch, turbineDriver.watch, burnRateDriver.watch)
|
||||
-- while true do
|
||||
-- tempDriver.watch()
|
||||
-- coolantDriver.watch()
|
||||
-- statusDriver.watch()
|
||||
-- turbineDriver.watch()
|
||||
-- burnRateDriver.watch()
|
||||
-- sleep(0.05)
|
||||
-- end
|
||||
parallel.waitForAll(
|
||||
tempDriver.watch,
|
||||
coolantDriver.watch,
|
||||
statusDriver.watch,
|
||||
turbineDriver.watch,
|
||||
burnRateDriver.watch,
|
||||
environmentDriver.watch)
|
||||
end
|
||||
|
||||
local function runDisplay()
|
||||
monitor.clear()
|
||||
monitor.setTextScale(1)
|
||||
while true do
|
||||
monitor.setCursorPos(1, 1)
|
||||
monitor.setCursorPos(1, 0)
|
||||
local drivers = {
|
||||
{ Label = "Status", driver = statusDriver},
|
||||
{ Label = "Temperature", driver = tempDriver },
|
||||
{ Label = "Coolant", driver = coolantDriver },
|
||||
{ Label = "Turbine", driver = turbineDriver },
|
||||
{ Label = "Burn Rate", driver = burnRateDriver }
|
||||
{ Label = "Burn Rate", driver = burnRateDriver },
|
||||
{ Label = "Radiation Level", driver = burnRateDriver }
|
||||
}
|
||||
|
||||
|
||||
for i, item in ipairs(drivers) do
|
||||
monitor.setCursorPos(1, i)
|
||||
item.driver.report()
|
||||
monitor.setCursorPos(1, i + 1)
|
||||
end
|
||||
|
||||
sleep(0.05) -- Update every tenth second
|
||||
end
|
||||
end
|
||||
|
||||
local function startUp()
|
||||
parallel.waitForAll(tempDriver.startUp,
|
||||
coolantDriver.startUp,
|
||||
statusDriver.startUp,
|
||||
turbineDriver.startUp,
|
||||
burnRateDriver.startUp,
|
||||
environmentDriver.startUp)
|
||||
end
|
||||
|
||||
local function shutDown()
|
||||
parallel.waitForAll(tempDriver.shutDown,
|
||||
coolantDriver.shutDown,
|
||||
statusDriver.shutDown,
|
||||
turbineDriver.shutDown,
|
||||
burnRateDriver.shutDown,
|
||||
environmentDriver.shutDown)
|
||||
end
|
||||
|
||||
local function run()
|
||||
while not reactor do
|
||||
print("Waiting for reactor signal...")
|
||||
@@ -59,13 +83,11 @@ local function run()
|
||||
sleep(1)
|
||||
end
|
||||
|
||||
-- Wait for all driver objects to be available
|
||||
while not (tempDriver and coolantDriver and statusDriver and turbineDriver and burnRateDriver) do
|
||||
print("Waiting for all drivers to be initialized...")
|
||||
sleep(1)
|
||||
end
|
||||
monitor.clear();
|
||||
startUp();
|
||||
parallel.waitForAll(runMonitors, runDisplay)
|
||||
end
|
||||
|
||||
return { run = run}
|
||||
|
||||
|
||||
return { run = run }
|
||||
|
||||
Reference in New Issue
Block a user