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")
|
||||
internalEnvironment = peripheral.wrap("environmentDetector_0")
|
||||
externalEnvironment = peripheral.wrap("environmentDetector_1")
|
||||
modem = peripheral.wrap("right")
|
||||
modem = peripheral.find("modem")
|
||||
controlRoomSpeakers = peripheral.find("speaker")
|
||||
|
||||
tempDriver = kernel.addDriver("temperature_driver")
|
||||
coolantDriver = kernel.addDriver("coolant_driver")
|
||||
@@ -13,6 +14,7 @@ statusDriver = kernel.addDriver("status_driver")
|
||||
turbineDriver = kernel.addDriver("turbine_driver")
|
||||
burnRateDriver = kernel.addDriver("burnrate_driver")
|
||||
environmentDriver = kernel.addDriver("environment_driver")
|
||||
speakerDriver = kernel.addDriver("speaker_driver")
|
||||
|
||||
isErrorState = false
|
||||
reactorStatus = false
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
kernel = require("kernel")
|
||||
--local reactor = peripheral.find("fissionReactorLogicAdapter")
|
||||
speakerDriver = kernel.addDriver("speaker_driver")
|
||||
local modem = peripheral.find("modem")
|
||||
local monitor = peripheral.wrap("top")
|
||||
controlRoomSpeakers = peripheral.find("speaker")
|
||||
|
||||
function setNewLine()
|
||||
local x,y = monitor.getCursorPos()
|
||||
@@ -9,9 +10,15 @@ function setNewLine()
|
||||
monitor.clearLine()
|
||||
end
|
||||
|
||||
local function startup()
|
||||
speakerDriver.startup()
|
||||
speakerDriver.playControlRoomAlarm(controlRoomSpeakers)
|
||||
end
|
||||
|
||||
local function run()
|
||||
monitor.setTextScale(0.5)
|
||||
monitor.setCursorPos(1,0)
|
||||
startup()
|
||||
while true do
|
||||
setNewLine()
|
||||
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