Advertisement
CdoubleOK

Refined Oil Tank Monitor

Apr 29th, 2023 (edited)
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.66 KB | None | 0 0
  1. local modem = peripheral.find("modem")
  2.  
  3. term.clear()
  4. term.setCursorPos(1,1)
  5. print("Refined Oil Tanks")
  6. print("-=-=-=-=-=-=-=-=-=-")
  7.  
  8.  
  9. while rs.getInput("top") == false
  10. do
  11.  
  12. local level1 = rs.getAnalogInput("left")
  13. local level2 = rs.getAnalogInput("right")
  14. local loilout = rs.getInput("back")
  15. local hoilout = rs.getInput("bottom")
  16.  
  17. local function getTankPercentage(level)
  18.   local tankLevels = {0, 5, 10, 15, 20, 30, 40, 45, 50, 60, 70, 75, 80, 90, 95, 100}
  19.   return tankLevels[level+1]
  20. end
  21.        
  22. term.clearLine()
  23.  
  24.  
  25. print("Light Oil Tank")
  26. local level1Percent = getTankPercentage(level1)
  27. modem.transmit(12,5,level1Percent.."%")
  28. print(level1Percent.."%")
  29.  
  30. print("Light Oil Output")
  31. if loilout == false
  32. then
  33. modem.transmit(13,5,"Closed")
  34. print("Closed")
  35. end
  36. if loilout == true
  37. then
  38. modem.transmit(13,5,"Open")
  39. print("Open")
  40. end
  41.  
  42.  
  43. print("Heavy Oil Tank")
  44. local level2Percent = getTankPercentage(level2)
  45. modem.transmit(14,5,level2Percent.."%")
  46. print(level2Percent.."%")
  47.  
  48.  
  49. print("Heavy Oil Output")
  50. if hoilout == false
  51. then
  52. modem.transmit(15,5,"Closed")
  53. print("Closed")
  54. end
  55. if hoilout == true
  56. then
  57. modem.transmit(15,5,"Open")
  58. print("Open")
  59. end
  60.  
  61. -- Control Light oil output
  62. if level1 >= 1
  63. then
  64. modem.transmit(26,5,"On")
  65. end
  66. if level1 == 0
  67. then
  68. modem.transmit(26,5,"Off")
  69. end
  70.  
  71. -- Control Heavy oil output
  72. if level2 >= 1
  73. then
  74. modem.transmit(27,6,"On")
  75. end
  76. if level2 == 0
  77. then
  78. modem.transmit(27,6,"Off")
  79. end
  80.  
  81. -- Control Crude refine
  82. if (level1 <=14) and (level2 <=14)
  83. then
  84. modem.transmit(26,4,"On")
  85. end
  86. if (level1 >=15) and (level2 >=15)
  87. then
  88. modem.transmit(26,4,"Off")
  89. end
  90.  
  91. sleep(1)
  92. term.setCursorPos(1,3)
  93. end
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement