added controll room alarm
This commit is contained in:
BIN
control_alarm.dfpwm
Normal file
BIN
control_alarm.dfpwm
Normal file
Binary file not shown.
4
main.lua
4
main.lua
@@ -5,7 +5,8 @@ turbineVent = peripheral.find("turbineVent")
|
|||||||
monitor = peripheral.find("monitor")
|
monitor = peripheral.find("monitor")
|
||||||
internalEnvironment = peripheral.wrap("environmentDetector_0")
|
internalEnvironment = peripheral.wrap("environmentDetector_0")
|
||||||
externalEnvironment = peripheral.wrap("environmentDetector_1")
|
externalEnvironment = peripheral.wrap("environmentDetector_1")
|
||||||
modem = peripheral.wrap("right")
|
modem = peripheral.find("modem")
|
||||||
|
controlRoomSpeakers = peripheral.find("speaker")
|
||||||
|
|
||||||
tempDriver = kernel.addDriver("temperature_driver")
|
tempDriver = kernel.addDriver("temperature_driver")
|
||||||
coolantDriver = kernel.addDriver("coolant_driver")
|
coolantDriver = kernel.addDriver("coolant_driver")
|
||||||
@@ -13,6 +14,7 @@ statusDriver = kernel.addDriver("status_driver")
|
|||||||
turbineDriver = kernel.addDriver("turbine_driver")
|
turbineDriver = kernel.addDriver("turbine_driver")
|
||||||
burnRateDriver = kernel.addDriver("burnrate_driver")
|
burnRateDriver = kernel.addDriver("burnrate_driver")
|
||||||
environmentDriver = kernel.addDriver("environment_driver")
|
environmentDriver = kernel.addDriver("environment_driver")
|
||||||
|
speakerDriver = kernel.addDriver("speaker_driver")
|
||||||
|
|
||||||
isErrorState = false
|
isErrorState = false
|
||||||
reactorStatus = false
|
reactorStatus = false
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
kernel = require("kernel")
|
kernel = require("kernel")
|
||||||
--local reactor = peripheral.find("fissionReactorLogicAdapter")
|
speakerDriver = kernel.addDriver("speaker_driver")
|
||||||
local modem = peripheral.find("modem")
|
local modem = peripheral.find("modem")
|
||||||
local monitor = peripheral.wrap("top")
|
local monitor = peripheral.wrap("top")
|
||||||
|
controlRoomSpeakers = peripheral.find("speaker")
|
||||||
|
|
||||||
function setNewLine()
|
function setNewLine()
|
||||||
local x,y = monitor.getCursorPos()
|
local x,y = monitor.getCursorPos()
|
||||||
@@ -9,9 +10,15 @@ function setNewLine()
|
|||||||
monitor.clearLine()
|
monitor.clearLine()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function startup()
|
||||||
|
speakerDriver.startup()
|
||||||
|
speakerDriver.playControlRoomAlarm(controlRoomSpeakers)
|
||||||
|
end
|
||||||
|
|
||||||
local function run()
|
local function run()
|
||||||
monitor.setTextScale(0.5)
|
monitor.setTextScale(0.5)
|
||||||
monitor.setCursorPos(1,0)
|
monitor.setCursorPos(1,0)
|
||||||
|
startup()
|
||||||
while true do
|
while true do
|
||||||
setNewLine()
|
setNewLine()
|
||||||
monitor.write("Checking for reactor status...")
|
monitor.write("Checking for reactor status...")
|
||||||
|
|||||||
60
speaker_driver.lua
Normal file
60
speaker_driver.lua
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
local dfpwm = require("cc.audio.dfpwm")
|
||||||
|
local encoder = dfpwm.make_encoder()
|
||||||
|
local decoder = dfpwm.make_decoder()
|
||||||
|
|
||||||
|
local function getFileName(name)
|
||||||
|
local extension = ".dfpwm"
|
||||||
|
local fullFile = name .. extension
|
||||||
|
return fullFile
|
||||||
|
end
|
||||||
|
|
||||||
|
local function playSound(speaker, fileName)
|
||||||
|
for input in io.lines(getFileName(fileName), 16 * 1024) do
|
||||||
|
local decoded = decoder(input)
|
||||||
|
while not speaker.playAudio(decoded) do
|
||||||
|
os.pullEvent("speaker_audio_empty")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function playControlRoomAlarm(speakers)
|
||||||
|
for _, speaker in ipairs(speakers) do
|
||||||
|
playSound(speaker,"control_alarm")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function addSoundFile(fileName)
|
||||||
|
local baseRoute = "https://git.astrocore.space/root/NovaCorpLLC/raw/branch/main/"
|
||||||
|
local name = getFileName(fileName)
|
||||||
|
local fullPath = baseRoute .. name
|
||||||
|
shell.execute("rm", name)
|
||||||
|
shell.execute("wget", fullPath)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function watch()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
local function startUp()
|
||||||
|
local sounds = {
|
||||||
|
{ fileName = "control_alarm" }
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, item in ipairs(sounds) do
|
||||||
|
addSoundFile(item.fileName)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function shutdown()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function report()
|
||||||
|
end
|
||||||
|
|
||||||
|
return { report = report, watch = watch, startUp = startUp, shutdown = shutdown }
|
||||||
Reference in New Issue
Block a user