This commit is contained in:
2025-06-15 16:23:13 -04:00
parent dcb75ee52c
commit ead0e6379e
9 changed files with 118 additions and 108 deletions

View File

@@ -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 }