Advertisement
CdoubleOK

Crude Oil Monitor

Apr 30th, 2023 (edited)
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.75 KB | None | 0 0
  1. local modem = peripheral.find("modem")
  2.  
  3. term.clear()
  4. term.setCursorPos(1,1)
  5. print("Crude Oil Monitor")
  6. print("-=-=-=-=-=-=-=-=-=-")
  7.  
  8. while rs.getInput("top") == false
  9. do
  10.  
  11. local level1 = rs.getAnalogInput("left")
  12. local level2 = rs.getAnalogInput("right")
  13. local rigout = rs.getInput("back")
  14. local ctankout = rs.getInput("bottom")
  15. local crefine = rs.getInput("front")
  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. print("Crude Oil Input")
  25. if rigout == false
  26. then
  27. modem.transmit(22,5,"Closed")
  28. print("Closed")
  29. end
  30. if rigout == true
  31. then
  32. modem.transmit(22,5,"Open")
  33. print("Open")
  34. end
  35.  
  36. print("Tank #1")
  37. local level1Percent = getTankPercentage(level1)
  38. modem.transmit(8,5,level1Percent.."%")
  39. print(level1Percent.."%")
  40.  
  41. print("Tank #2")
  42. local level2Percent = getTankPercentage(level2)
  43. modem.transmit(9,5,level2Percent.."%")
  44. print(level2Percent.."%")
  45.  
  46. print("Crude Tank Output")
  47. if ctankout == false
  48. then
  49. modem.transmit(10,5,"Closed")
  50. print("Closed")
  51. end
  52. if ctankout == true
  53. then
  54. modem.transmit(10,5,"Open")
  55. print("Open")
  56. end
  57.  
  58. print("Crude Refinery Status")
  59. if crefine == false
  60. then
  61. modem.transmit(11,5,"Offline")
  62. print("Offline")
  63. end
  64. if crefine == true
  65. then
  66. modem.transmit(11,5,"Online")
  67. print("Online")
  68. end
  69.  
  70. -- Control Oil Rig
  71. if (level1 >= 1) and (level2 >= 1)
  72. then
  73. modem.transmit(23,5,"On")
  74. end
  75. if (level1 == 0) and (level2 == 0)
  76. then
  77. modem.transmit(23,5,"Off")
  78. end
  79.  
  80. -- Control Crude input
  81. if (level1 <=14) and (level2 <=14)
  82. then
  83. modem.transmit(26,2,"On")
  84. end
  85. if (level1 >=15) and (level2 >=15)
  86. then
  87. modem.transmit(26,2,"Off")
  88. end
  89.  
  90. sleep(1)
  91. term.setCursorPos(1,3)
  92. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement