Advertisement
1ng0

SDRC - Small Draconic Reactor Control (SDRC)

Dec 4th, 2015
2,315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.82 KB | None | 0 0
  1. ------------------------------------------
  2. -- Small Draconic Reactor Control   --
  3. -- https://youtu.be/Ud5JXVacnwY     --
  4. -- !!! Save this file as SDRC !!!   --
  5. -- pastebin run nrA4gNxb        --
  6. ------------------------------------------
  7.  
  8. local Schrittweite = 10000 -- Variation des Flux-Gate-Status um diesen Wert
  9. local Schwelle = 300000000 -- Interaktionsgrenze x00.000.000 ist x00 Mio !!!
  10.  
  11. print("|#==  https://youtu.be/Ud5JXVacnwY   ==#|")
  12. print("|#============#| S D R C |#============#|")
  13. --print("ReactorInfo getReactorInfo") -- lese die einzelnen Parameter des Reaktor
  14. tbl = peripheral.call("back","getReactorInfo")
  15. for k, v in pairs (tbl) do
  16.     --print(k,v)
  17.     if k == "temperature" then -- Weise bestimmte programmrelevante Parameter einzelnen Variablen zu
  18.         temperatur = v
  19.     end
  20.     if k == "energySaturation" then
  21.         energysat = v
  22.     end
  23.     if k == "fieldStrength" then
  24.         feldst = v
  25.     end
  26.     if k == "generationRate" then
  27.         RFpt = v
  28.     end
  29.     if k == "fuelConversion" then
  30.         RestKraftstoff = v
  31.     end
  32.     if k == "fuelConversionRate" then
  33.         Kraftstoffverbrauch = v
  34.     end
  35. end
  36. energieladung = energysat * 0.0000001
  37. fieldstr = feldst * 0.000001
  38. kRFpt = RFpt / 1000
  39. fuel = RestKraftstoff / 10368
  40. FuelConv = fuel * 100
  41. --------------------------------------------------
  42. print("|# Reactor temperature = "..temperatur)
  43. print("|# Energy saturation % = "..energieladung)
  44. print("|# Field strength % = "..fieldstr)
  45. print("|# Refuel level % = "..FuelConv)
  46. --print("|# ConvesionRate = "..Kraftstoffverbrauch)
  47. print("|# Energyproduction RF/t = "..kRFpt)
  48. print("|#============#| S D R C |#============#|")
  49. --------------------------------------------------
  50. FluxGateStatus = peripheral.call("right", "getSignalLowFlow")
  51. -- Frage aktuellen Status der High-Rate im FluxGate ab - NICHT den tatsaechlichen Durchfluss
  52.  
  53. if energysat > Schwelle then -- wenn die Energy-Saturation den Schwellwert unterschreitet ...
  54.     -- ist platz fuer Erhoehung des RF-Outputs
  55.     if FluxGateStatus >= 690000 then -- Maximalwert abregelung 700k
  56.         FluxGateStatus = 690000
  57.         print("|#==      !Safemode!  all okay!      ==#|")
  58.         print("|#==    Reactor maximum 700k RF/t    ==#|")
  59.         print("|#============#| S D R C |#============#|")     
  60.     end
  61.     FluxGateStatus = FluxGateStatus + Schrittweite -- anpassen der Flux-Gate_Variablen an den neuen Wert
  62.     print("|#== FluxGate set to = ", FluxGateStatus)
  63.     peripheral.call("right", "setSignalLowFlow", FluxGateStatus) -- Einstellen des Flux-Gate auf einen neuen Wert
  64. end
  65. if energysat < Schwelle then
  66.     if FluxGateStatus <= 10000 then -- Minimalwert abregelung auf 0
  67.         FluxGateStatus = 10000
  68.     end
  69.     FluxGateStatus = FluxGateStatus - Schrittweite -- anpassen der Flux-Gate_Variablen an den neuen Wert
  70.     print("|#== FluxGate set to = ", FluxGateStatus)
  71.     peripheral.call("right", "setSignalLowFlow", FluxGateStatus)
  72. end
  73. ---------- Notabschaltung bei unterschreiten der Grenzwerte und wieder aktivierung
  74. if temperatur > 7777 then -- Temperatur check wenn mehr als 7777 Grad
  75.     peripheral.call("back", "stopReactor")
  76.  
  77.     print("|#==      Reactor to hot stop !      ==#|")
  78.     print("|#============#| S D R C |#============#|")
  79.     sleep(60)
  80. end
  81. if FuelConv >= 75 then -- Abschaltung wenn mehr als 75% Reststoffe bis max 90% einstellbar
  82.     peripheral.call("back", "stopReactor")
  83.  
  84.     print("|#==      Reactor refuel stop !      ==#|")
  85.     print("|#============#| S D R C |#============#|")
  86.     sleep(300)
  87. end
  88. if temperatur <= 2000 then -- Starttest zum aufladen des Reaktors
  89.     peripheral.call("back", "chargeReactor")
  90.         print("|#==        Reactor charge !!        ==#|")
  91.         print("|#============#| S D R C |#============#|")
  92.     if feldst >= 50000000 then
  93.         peripheral.call("back", "activateReactor")
  94.             print("|#==        Reactor activate !       ==#|")
  95.             print("|#============#| S D R C |#============#|")
  96.     end
  97. else
  98.     if feldst <= 15000000 then -- Notabschaltung bei zu niedrigen Schutzschild
  99.         peripheral.call("back", "stopReactor")
  100.         print("|#==     Reactor Emergency stop !    ==#|")
  101.         print("|#==     Field strength to low !     ==#|")
  102.         print("|#============#| S D R C |#============#|")
  103.     else
  104.         if feldst >= 20000000 then
  105.             peripheral.call("back", "activateReactor") -- Neuaktivierung nach Notabschaltung
  106.             --print("|#==         Reactor active !        ==#|")
  107.             --print("|#============#| S D R C |#============#|")
  108.         end
  109.     end
  110.     if energysat <= 15000000 then -- Notabschaltung bei zu niedriger Energiesaetigung
  111.         peripheral.call("back", "stopReactor")
  112.         print("|#==    Reactor Emergency stop !!    ==#|")
  113.         print("|#==    Energy saturation to low!    ==#|")
  114.         print("|#============#| S D R C |#============#|")
  115.     else
  116.         if energysat >= 20000000 then
  117.             peripheral.call("back", "activateReactor") -- Neuaktivierung nach Notabschaltung
  118.             --print("|#==        Reactor activate !       ==#|")
  119.             --print("|#============#| S D R C |#============#|")
  120.         end
  121.     end
  122. end
  123. sleep(2)
  124. os.reboot()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement