Advertisement
BigBlow_

Untitled

Nov 9th, 2024
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. -- Nom du fichier de log
  2. local logFile = "fusion_reactor_log.txt"
  3.  
  4. -- Nom du canal sur lequel le réacteur est connecté
  5. local REACTOR_CHANNEL = 1 -- Ajustez ce canal selon votre configuration
  6.  
  7. -- Fonction pour ecrire une entree dans le fichier de log et afficher sur le terminal
  8. local function log(message)
  9. local timestamp = os.date("[%Y-%m-%d %H:%M:%S] ")
  10. local logMessage = timestamp .. message
  11.  
  12. -- Ecriture dans le fichier de log
  13. local file = fs.open(logFile, "a")
  14. file.writeLine(logMessage)
  15. file.close()
  16.  
  17. -- Affichage dans la fenetre de l'ordinateur
  18. print(logMessage)
  19. end
  20.  
  21. -- Fonction pour obtenir les données du réacteur
  22. local function getReactorData()
  23. -- Ouvrir le modem sur le canal du réacteur
  24. rednet.open("back") -- Ajustez la position du modem si necessaire
  25.  
  26. -- Envoyer la requete au reacteur
  27. rednet.send(REACTOR_CHANNEL, "GET_REACTOR_DATA")
  28.  
  29. -- Attendre une reponse
  30. local senderID, message = rednet.receive(5) -- Timeout de 5 secondes
  31.  
  32. -- Fermer le modem
  33. rednet.close("back")
  34.  
  35. -- Retourner les donnees recues, ou nil si rien n'est recu
  36. if senderID then
  37. return textutils.unserialize(message)
  38. else
  39. log("Erreur : aucune reponse du reacteur.")
  40. return nil
  41. end
  42. end
  43.  
  44. -- Fonction pour surveiller les paramètres du réacteur
  45. local function monitorReactor()
  46. while true do
  47. local data = getReactorData()
  48.  
  49. if data then
  50. -- Extraire les informations critiques
  51. local temp = data.temperature
  52. local energy = data.energy
  53. local plasma = data.plasma
  54. local fuel = data.fuel
  55.  
  56. -- Affichage dans le terminal ou le moniteur
  57. term.clear()
  58. term.setCursorPos(1, 1)
  59. print("=== Surveillance du reacteur de fusion ===")
  60. print("Temperature: " .. temp .. "K")
  61. print("Energie: " .. energy .. " RF")
  62. print("Plasma: " .. plasma .. " mB")
  63. print("Carburant: " .. fuel .. " mB")
  64. log("Temperature: " .. temp .. "K, Energie: " .. energy .. " RF, Plasma: " .. plasma .. " mB, Carburant: " .. fuel .. " mB")
  65.  
  66. -- Verifier les seuils critiques
  67. if temp > 5000 then
  68. log("ALERTE : Temperature critique !")
  69. redstone.setOutput("left", true) -- Activer une lampe d'alarme ou alerte sonore
  70. else
  71. redstone.setOutput("left", false)
  72. end
  73.  
  74. if fuel < 100 then
  75. log("ALERTE : Niveau de carburant faible !")
  76. redstone.setOutput("right", true)
  77. else
  78. redstone.setOutput("right", false)
  79. end
  80. end
  81.  
  82. -- Pause avant le prochain cycle de verification
  83. sleep(2)
  84. end
  85. end
  86.  
  87. -- Lancer la surveillance
  88. log("Lancement de la surveillance du reacteur de fusion.")
  89. monitorReactor()
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement