Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Nom du fichier de log
- local logFile = "fusion_reactor_log.txt"
- -- Nom du canal sur lequel le réacteur est connecté
- local REACTOR_CHANNEL = 1 -- Ajustez ce canal selon votre configuration
- -- Fonction pour ecrire une entree dans le fichier de log et afficher sur le terminal
- local function log(message)
- local timestamp = os.date("[%Y-%m-%d %H:%M:%S] ")
- local logMessage = timestamp .. message
- -- Ecriture dans le fichier de log
- local file = fs.open(logFile, "a")
- file.writeLine(logMessage)
- file.close()
- -- Affichage dans la fenetre de l'ordinateur
- print(logMessage)
- end
- -- Fonction pour obtenir les données du réacteur
- local function getReactorData()
- -- Ouvrir le modem sur le canal du réacteur
- rednet.open("back") -- Ajustez la position du modem si necessaire
- -- Envoyer la requete au reacteur
- rednet.send(REACTOR_CHANNEL, "GET_REACTOR_DATA")
- -- Attendre une reponse
- local senderID, message = rednet.receive(5) -- Timeout de 5 secondes
- -- Fermer le modem
- rednet.close("back")
- -- Retourner les donnees recues, ou nil si rien n'est recu
- if senderID then
- return textutils.unserialize(message)
- else
- log("Erreur : aucune reponse du reacteur.")
- return nil
- end
- end
- -- Fonction pour surveiller les paramètres du réacteur
- local function monitorReactor()
- while true do
- local data = getReactorData()
- if data then
- -- Extraire les informations critiques
- local temp = data.temperature
- local energy = data.energy
- local plasma = data.plasma
- local fuel = data.fuel
- -- Affichage dans le terminal ou le moniteur
- term.clear()
- term.setCursorPos(1, 1)
- print("=== Surveillance du reacteur de fusion ===")
- print("Temperature: " .. temp .. "K")
- print("Energie: " .. energy .. " RF")
- print("Plasma: " .. plasma .. " mB")
- print("Carburant: " .. fuel .. " mB")
- log("Temperature: " .. temp .. "K, Energie: " .. energy .. " RF, Plasma: " .. plasma .. " mB, Carburant: " .. fuel .. " mB")
- -- Verifier les seuils critiques
- if temp > 5000 then
- log("ALERTE : Temperature critique !")
- redstone.setOutput("left", true) -- Activer une lampe d'alarme ou alerte sonore
- else
- redstone.setOutput("left", false)
- end
- if fuel < 100 then
- log("ALERTE : Niveau de carburant faible !")
- redstone.setOutput("right", true)
- else
- redstone.setOutput("right", false)
- end
- end
- -- Pause avant le prochain cycle de verification
- sleep(2)
- end
- end
- -- Lancer la surveillance
- log("Lancement de la surveillance du reacteur de fusion.")
- monitorReactor()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement