Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.96 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. while true do
  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 >= 10000000 then -- Maximalwert abregelung 700k
  56. FluxGateStatus = 10000000
  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
  75. Schwelle = Schwelle + 50000000
  76. FluxGateStatus = FluxGateStatus - 100000
  77. peripheral.call("right", "setSignalLowFlow", FluxGateStatus)
  78. sleep(60)
  79. end
  80.  
  81. if temperatur > 8500 then -- Temperatur check wenn mehr als 7777 Grad
  82. peripheral.call("back", "stopReactor")
  83.  
  84. print("|#== Reactor to hot stop ! ==#|")
  85. print("|#============#| S D R C |#============#|")
  86. sleep(60)
  87. end
  88. if FuelConv >= 95 then -- Abschaltung wenn mehr als 75% Reststoffe bis max 90% einstellbar
  89. peripheral.call("back", "stopReactor")
  90.  
  91. print("|#== Reactor refuel stop ! ==#|")
  92. print("|#============#| S D R C |#============#|")
  93. sleep(300)
  94. end
  95. if temperatur <= 2000 then -- Starttest zum aufladen des Reaktors
  96. peripheral.call("back", "chargeReactor")
  97. print("|#== Reactor charge !! ==#|")
  98. print("|#============#| S D R C |#============#|")
  99. if feldst >= 50000000 then
  100. peripheral.call("back", "activateReactor")
  101. print("|#== Reactor activate ! ==#|")
  102. print("|#============#| S D R C |#============#|")
  103. end
  104. else
  105. if feldst <= 15000000 then -- Notabschaltung bei zu niedrigen Schutzschild
  106. peripheral.call("back", "stopReactor")
  107. print("|#== Reactor Emergency stop ! ==#|")
  108. print("|#== Field strength to low ! ==#|")
  109. print("|#============#| S D R C |#============#|")
  110. else
  111. if feldst >= 17500000 then
  112. peripheral.call("back", "activateReactor") -- Neuaktivierung nach Notabschaltung
  113. --print("|#== Reactor active ! ==#|")
  114. --print("|#============#| S D R C |#============#|")
  115. end
  116. end
  117. if energysat <= 15000000 then -- Notabschaltung bei zu niedriger Energiesaetigung
  118. peripheral.call("back", "stopReactor")
  119. print("|#== Reactor Emergency stop !! ==#|")
  120. print("|#== Energy saturation to low! ==#|")
  121. print("|#============#| S D R C |#============#|")
  122. else
  123. if energysat >= 17500000 then
  124. peripheral.call("back", "activateReactor") -- Neuaktivierung nach Notabschaltung
  125. --print("|#== Reactor activate ! ==#|")
  126. --print("|#============#| S D R C |#============#|")
  127. end
  128. end
  129. end
  130. sleep(2.5)
  131. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement