Advertisement
rito_kun

Centralisateur et afficheur des données

Nov 9th, 2015
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.96 KB | None | 0 0
  1. rednet.open("right")
  2. -- Initialisation globale
  3. mon = peripheral.wrap("left")
  4. os.loadAPI("gui")
  5. local rpmTurbine1 = "nill"
  6. local rfTurbine1 = "nill"
  7. local temp = "nill"
  8. local reacteurActivit = "nill"
  9. local input = 1
  10. local output = 1
  11. local energy = 1
  12. local maxenergy = 1
  13.  
  14. -- ID des computeurs
  15. local idTurbine1 = 7
  16. local idTurbine2 = 8
  17. local idEnergyCube = 10
  18. local idReacteur = 13
  19.  
  20. -- Affichage texte sur terminal
  21. term.clear()
  22. term.setCursorPos(1,1)
  23. print("Reception donnees :                          ID : 5")
  24. print("Turbine 1 - Turbine 2")
  25. print("Energy Cube")
  26. print("Reacteur")
  27. print("")
  28. print("En cours d'execution")
  29. print("")
  30. print("Programme cree par Rito_kun")
  31.  
  32. -- Redirection message terminal vers ecran
  33. term.redirect(mon)
  34.  
  35. -- Creation de la barre de progression tout en bas
  36. energyBar = gui.createBar("energyBar")
  37. energyBar:draw(2,18,47,colors.white,colors.green,true,colors.black,colors.white)
  38.  
  39. -- Afficher du texte sur l'ecran
  40. function msg(x, y, text, color_txt, color_bg)
  41.     mon.setBackgroundColor(color_bg)
  42.     mon.setTextColor(color_txt)
  43.     mon.setCursorPos(x,y)
  44.     mon.write(text)
  45. end
  46.  
  47. -- Verification et indique si un computer est eteint
  48. function verif(serv)
  49.     if temp == null then
  50.         term.clear()
  51.         term.setCursorPos(1,1)
  52.         print("Le computer "..serv.." est eteint")
  53.         print("Merci de l'allumer")
  54.         print("")
  55.         print("Redemarrage en cours...")
  56.         sleep(3)
  57.         os.reboot()
  58.     end
  59. end
  60.  
  61. -- Recolte d'informations sur les turbines, energy cube et reacteur
  62. function infos()
  63.     --info Turbine 1
  64.     rednet.send(idTurbine1,"RPM")
  65.     id,temp = rednet.receive(0.1)
  66.     verif("Turbine 1")
  67.     rpmTurbine1 = temp
  68.     rednet.send(idTurbine1,"rf")
  69.     id,temp = rednet.receive(0.1)
  70.     verif("Turbine 1")
  71.     rfTurbine1 = temp
  72.    
  73.     --info Turbine 2
  74.     rednet.send(idTurbine2,"RPM")
  75.     id,temp = rednet.receive(0.1)
  76.     verif("Turbine 2")
  77.     rpmTurbine2 = temp
  78.     rednet.send(idTurbine2,"rf")
  79.     id,temp = rednet.receive(0.1)
  80.     verif("Turbine 2")
  81.     rfTurbine2 = temp
  82.    
  83.     --info EnergyCube
  84.     rednet.send(idEnergyCube,"input")
  85.     id,temp = rednet.receive(0.1)
  86.     verif("Energy Cube")
  87.     inputEnergy = temp
  88.     rednet.send(idEnergyCube,"output")
  89.     id,temp = rednet.receive(0.1)
  90.     verif("Energy Cube")
  91.     outputEnergy = temp
  92.     rednet.send(idEnergyCube,"maxEnergy")
  93.     id,temp = rednet.receive(0.1)
  94.     verif("Energy Cube")
  95.     maxEnergy = temp
  96.     rednet.send(idEnergyCube,"energy")
  97.     id,temp = rednet.receive(0.1)
  98.     verif("Energy Cube")
  99.     energy = temp
  100.    
  101.     --info reacteur
  102.     rednet.send(idReacteur,"allumer")
  103.     id,temp = rednet.receive(0.1)
  104.     verif("Reacteur")
  105.     reacteurActivit = temp
  106.     rednet.send(idReacteur,"consommation")
  107.     id,temp = rednet.receive(0.1)
  108.     verif("Reacteur")
  109.     consommationReacteur = temp
  110.     rednet.send(idReacteur,"tempCarburant")
  111.     id,temp = rednet.receive(0.1)
  112.     verif("Reacteur")
  113.     tempCarburant = temp
  114.     rednet.send(idReacteur,"tempReacteur")
  115.     id,temp = rednet.receive(0.1)
  116.     verif("Reacteur")
  117.     tempReacteur = temp
  118. end
  119.  
  120. -- Gère si le reacteur doit être allumé ou non
  121. function gestionReacteur()
  122.     -- Si Energy cube est rempli à 95% ou +, le reacteur s'eteint.
  123.     if energyPercent >= 95 then rednet.send(idReacteur,"OFF") end
  124.    
  125.     -- Si Energy cube est rempli à 5% ou -, le reacteur s'allume.
  126.     if energyPercent <= 10 then rednet.send(idReacteur,"ON") end
  127. end
  128.  
  129. while true do
  130.     infos()
  131.     sleep(0.8)
  132.     mon.clear()
  133.    
  134.     -- Calcule en pourcentage le remplissage d'energie dans l'energie cube et actualise l'affichage
  135.     energyPercent = math.floor((energy/maxEnergy)*100)
  136.     energyBar:update(energyPercent)
  137.  
  138.     gestionReacteur()
  139.  
  140.     -- Convertie les RF en kRF
  141.     inputKrf = math.floor(inputEnergy/2560)
  142.     outputKrf = math.floor(outputEnergy/2560)
  143.     maxEnergyMsg = maxEnergy/2560
  144.     energyMsg = energy/2560
  145.     --inputKrf2 = math.round(inputKrf*10)*0.1
  146.     --output = math.round(outputMsg*10)*0.1
  147.     --arrondiPremDecimal(inputMsg)
  148.     --arrondiPremDecimal(outputMsg)
  149.     krfTurbine1 = rfTurbine1/1000
  150.     krfTurbine2 = rfTurbine2/1000
  151.    
  152.     msg(1, 1, "Turbines :", colors.white, colors.red)
  153.     msg(1, 2, " N 1 : "..rpmTurbine1.." RPM - "..krfTurbine1.." kRF/t", colors.white, colors.black)
  154.     msg(1, 3, " N 2 : "..rpmTurbine2.." RPM - "..krfTurbine2.." kRF/t", colors.white, colors.black)
  155.    
  156.     msg(1, 5, "Energy Cube :", colors.white, colors.red)
  157.     msg(1, 6, " Entree d'energie : "..inputKrf.." kRF/t", colors.white, colors.black)
  158.     msg(1, 7, " Sortie d'energie : "..outputKrf.." kRF/t", colors.white, colors.black)
  159.     msg(1, 8, " Capacite maximum : "..maxEnergyMsg.." kRF", colors.white, colors.black)
  160.     msg(1, 9, " Energie          : "..math.floor(energyMsg).." kRF", colors.white, colors.black)
  161.    
  162.     msg(1, 11, "Reacteur :", colors.white, colors.red)
  163.     msg(1, 12, " Actif            : "..reacteurActivit, colors.white, colors.black)
  164.     msg(1, 13, " Consommation     : "..consommationReacteur.." mb/t", colors.white, colors.black)
  165.     msg(1, 14, " Temp. carburant  : "..math.floor(tempCarburant).." degrets", colors.white, colors.black)
  166.     msg(1, 15, " Temp. reacteur   : "..math.floor(tempReacteur).." degrets", colors.white, colors.black)
  167.     os.sleep(0.2)
  168. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement