Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --ID : 2
- local Prod = 0 --Variable qui recois la production du reacteur
- local Stoc = 0 --Variable qui recois l'energie stoquee dans le reacteur
- local GRST = 0 --Expression du stoquage en pour 10
- local Temp = 0 --Variable qui recois la temperature du reacteur
- local IDre = 1 --Variable qui definit l'ID du PC branché au reacteur
- local IDbu = 4 --Variable qui definit l'ID du PC branché au moniteur
- local Fuel = 0 --Remplissage du reacteur en pour 10
- local Temp = 0 --Temperature du reacteur en °C
- local Etat = 'Na' --Variable qui recois l'etat (On ou Off) du reacteur
- local Log = 'Reboot'
- local ID, Message, Protocole --Creation des variables pour le messages rednet
- local event, side, xPos, yPos --Creation des variables pour un pullEvent()
- local timer = os.startTimer(1)--On cree un timer qui envoi un event toutes les 0.1 secondes
- local rebot = os.startTimer(600)
- --je set xPos et yPos pour le demarrage--
- xPos = 0
- yPos = 0
- rednet.open("right") --On active le reseau rednet avec le modem a droite
- local mon = peripheral.wrap("back") --On definit le moniteur avec le nom 'mon' deriere le PC
- function CurentState()
- --Pour l'etat du reacteur--
- rednet.broadcast("Etat?") --On difuse le message 'Etat?' a tous les PC connectés au reseau
- --On attend la reception d'une reponce du PC du reacteur--
- ID, Message, Protocole = rednet.receive()
- if (ID == IDre) and (Protocole == "Etat") then
- Etat = Message
- end
- end
- function Curent_Prod()
- rednet.broadcast("Prod?")
- ID, Message, Protocole = rednet.receive()
- if (ID == IDre) and (Protocole == "Prod") then
- Prod = Message
- end
- end
- function Curent_Stor()
- rednet.broadcast("Stor?")
- ID, Message, Protocole = rednet.receive()
- if (ID == IDre) and (Protocole == "Stor") then
- Stoc = Message
- end
- end
- function Fuel_Amount()
- rednet.broadcast("Fuel?")
- ID, Message, Protocole = rednet.receive()
- if (ID == IDre) and (Protocole == "Fuel") then
- Fuel = (Message / 60000) * 10
- end
- end
- function Curent_Temp()
- rednet.broadcast("Temp?")
- ID, Message, Protocole = rednet.receive()
- if (ID == IDre) and (Protocole == "Temp") then
- Temp = Message
- end
- end
- function DrawButton()
- mon.setTextColor(colors.black)
- mon.setCursorPos(2,7)
- mon.setBackgroundColor(colors.green)
- mon.write(" ")
- mon.setCursorPos(2,8)
- mon.setBackgroundColor(colors.green)
- mon.write(" On ")
- mon.setCursorPos(2,9)
- mon.setBackgroundColor(colors.green)
- mon.write(" ")
- mon.setCursorPos(12,7)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- mon.setCursorPos(12,8)
- mon.setBackgroundColor(colors.red)
- mon.write(" STOP ")
- mon.setCursorPos(12,9)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- mon.setCursorPos(2,11)
- mon.setBackgroundColor(colors.orange)
- mon.write(" ")
- mon.setCursorPos(2,12)
- mon.setBackgroundColor(colors.orange)
- mon.write(" Auto ")
- mon.setCursorPos(2,13)
- mon.setBackgroundColor(colors.orange)
- mon.write(" ")
- mon.setCursorPos(12,11)
- mon.setBackgroundColor(colors.magenta)
- mon.write(" ")
- mon.setCursorPos(12,12)
- mon.setBackgroundColor(colors.magenta)
- mon.write(" REBT ")
- mon.setCursorPos(12,13)
- mon.setBackgroundColor(colors.magenta)
- mon.write(" ")
- mon.setBackgroundColor(colors.black)
- end
- function Affichage()
- mon.clear()
- mon.setTextScale(1)
- mon.setCursorPos(1,1)
- if Etat == "On" then
- mon.setTextColor(colors.green)
- elseif Etat == "Off" then
- mon.setTextColor(colors.red)
- else
- mon.setTextColor(colors.gray)
- end
- mon.write("Reactor "..Etat)
- mon.setCursorPos(1,3)
- mon.setTextColor(colors.orange)
- mon.write("Prod : "..Prod.." RF/t")
- mon.setCursorPos(1,5)
- if Temp >= 2000 then
- mon.setTextColor(colors.red)
- elseif Temp >= 1500 then
- mon.setTextColor(colors.orange)
- elseif Temp >= 1000 then
- mon.setTextColor(colors.yellow)
- elseif Temp >= 500 then
- mon.setTextColor(colors.green)
- elseif Temp < 500 then
- mon.setTextColor(colors.blue)
- end
- mon.write("Temp : "..Temp.." C")
- DrawButton()
- DrawBargraph()
- mon.setCursorPos(1,15)
- mon.setBackgroundColor(colors.black)
- mon.setTextColor(colors.white)
- mon.write("Log :")
- mon.setCursorPos(2,17)
- mon.write(">Etat precedant : "..Log)
- end
- function CliqueBouton()
- if (xPos >= 2 and xPos <= 10) and (yPos >= 7 and yPos <= 9) then
- rednet.send(1,"On")
- Log = 'On'
- elseif (xPos >= 12 and xPos <= 20) and (yPos >= 7 and yPos <= 9) then
- rednet.send(1,"Off")
- Log = 'Off'
- elseif (xPos >= 2 and xPos <= 10) and (yPos >= 11 and yPos <= 13) then
- rednet.send(1,"Auto")
- Log = 'Auto'
- elseif (xPos >= 12 and xPos <= 20) and (yPos >= 11 and yPos <= 13) then
- rednet.send(1,"REBT")
- sleep(1)
- os.reboot()
- end
- end
- function Main()
- CurentState()
- Curent_Prod()
- Curent_Stor()
- Curent_Temp()
- Fuel_Amount()
- Affichage()
- sleep(0.1)
- timer = os.startTimer(1)
- end
- function DrawBargraph()
- mon.setCursorPos(24,1)
- mon.setTextColor(colors.red)
- mon.write("Stoc")
- mon.setCursorPos(33,1)
- mon.setTextColor(colors.yellow)
- mon.write("Fuel")
- mon.setCursorPos(24,2)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,2)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(24,3)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,3)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,3)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,3)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(29,3)
- mon.setBackgroundColor(colors.black)
- mon.setTextColor(colors.white)
- mon.write("100%")
- mon.setCursorPos(24,4)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,4)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,4)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,4)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(24,5)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,5)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,5)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,5)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(24,6)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,6)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,6)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,6)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(24,7)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,7)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,7)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,7)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(29,8)
- mon.setBackgroundColor(colors.black)
- mon.setTextColor(colors.white)
- mon.write("50%")
- mon.setCursorPos(24,8)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,8)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,8)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,8)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(24,9)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,9)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,9)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,9)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(24,10)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,10)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,10)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,10)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(24,11)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,11)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,11)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,11)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(24,12)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,12)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(28,12)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(37,12)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(29,12)
- mon.setBackgroundColor(colors.black)
- mon.setTextColor(colors.white)
- mon.write("10%")
- mon.setCursorPos(24,13)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- mon.setCursorPos(33,13)
- mon.setBackgroundColor(colors.white)
- mon.write(" ")
- GRST = (Stoc / 10000000) * 10
- if GRST >= 1 then
- mon.setCursorPos(25,12)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if GRST >= 2 then
- mon.setCursorPos(25,11)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if GRST >= 3 then
- mon.setCursorPos(25,10)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if GRST >= 4 then
- mon.setCursorPos(25,9)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if GRST >= 5 then
- mon.setCursorPos(25,8)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if GRST >= 6 then
- mon.setCursorPos(25,7)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if GRST >= 7 then
- mon.setCursorPos(25,6)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if GRST >= 8 then
- mon.setCursorPos(25,5)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if GRST >= 9 then
- mon.setCursorPos(25,4)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if GRST >= 10 then
- mon.setCursorPos(25,3)
- mon.setBackgroundColor(colors.red)
- mon.write(" ")
- end
- if Fuel >= 1 then
- mon.setCursorPos(34,12)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- if Fuel >= 2 then
- mon.setCursorPos(34,11)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- if Fuel >= 3 then
- mon.setCursorPos(34,10)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- if Fuel >= 4 then
- mon.setCursorPos(34,9)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- if Fuel >= 5 then
- mon.setCursorPos(34,8)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- if Fuel >= 6 then
- mon.setCursorPos(34,7)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- if Fuel >= 7 then
- mon.setCursorPos(34,6)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- if Fuel >= 8 then
- mon.setCursorPos(34,5)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- if Fuel >= 9 then
- mon.setCursorPos(34,4)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- if Fuel >= 10 then
- mon.setCursorPos(34,3)
- mon.setBackgroundColor(colors.yellow)
- mon.write(" ")
- end
- mon.setBackgroundColor(colors.black)
- end
- while true do
- event, button, xPos, yPos = os.pullEvent()
- if event == "monitor_touch" then
- CliqueBouton()
- elseif event == "timer" and button == timer then
- Main()
- xPos = 0
- yPos = 0
- elseif event == "timer" and button == rebot then
- os.reboot()
- end
- end
Add Comment
Please, Sign In to add comment