Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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 = 1000 -- Variation des Flux-Gate-Status um diesen Wert
  9. local Schwelle = 200000000 -- 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 >= 3000000 then -- Maximalwert abregelung 700k
  56. FluxGateStatus = 3000000
  57. print("|#== !Safemode! all okay! ==#|")
  58. print("|#== Reactor maximum 3M 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 > 8000 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 >= 95 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 >= 17500000 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 >= 17500000 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.5)
  124. os.reboot()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement