Advertisement
Guest User

Remotely logging data from OpenComputers

a guest
Apr 25th, 2015
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1. local c = require("component")
  2. local comp = require("computer")
  3. local gpu1 = c.gpu
  4. local text = require("text")
  5. local keyboard = require("keyboard")
  6. local shell = require("shell")
  7. local sides = require("sides")
  8. local internet = require("internet")
  9. local serial = require("serialization")
  10. local json = require("json")
  11. local rs = c.redstone
  12. local requesturl = "http://example.com/projects/mc/oc/logger/log_data.php"
  13. local tc = {}
  14. local keb = {}
  15. tc[1] = c.proxy(c.get("93e67b0d", "tank_controller"))
  16. tc[2] = c.proxy(c.get("1e9203af", "tank_controller"))
  17. tc[3] = c.proxy(c.get("ad455ad6", "tank_controller"))
  18. tc[4] = c.proxy(c.get("ffb5a458", "tank_controller"))
  19. tc[5] = c.proxy(c.get("3973b4f2", "tank_controller"))
  20. tc[6] = c.proxy(c.get("253d0e4b", "tank_controller"))
  21. tc[7] = c.proxy(c.get("d3ccad5a", "tank_controller"))
  22. tc[8] = c.proxy(c.get("b9e69e58", "tank_controller"))
  23.  
  24. keb[1] = c.proxy(c.get("209bde93-7912-4c37-9924-3bf5ea66e700"))
  25. keb[2] = c.proxy(c.get("613d00a4-5072-4406-ab37-ddd6ec814499"))
  26. keb[3] = c.proxy(c.get("42f55695-5ef4-4296-8a12-24346eba59fc"))
  27. keb[4] = c.proxy(c.get("d3b44d55-ef76-4c78-b3ec-8c9714d1a3d0"))
  28. keb[5] = c.proxy(c.get("13564585-2dd7-40bd-8283-246f5e47920c"))
  29.  
  30. local running
  31. local screen1_x = 40
  32. local screen1_y = 13
  33. running = true
  34.  
  35. gpu1.setResolution(screen1_x,screen1_y)
  36. gpu1.fill(1, 1, screen1_x, screen1_y, " ")
  37. function round(num, idp)
  38. local mult = 10^(idp or 0)
  39. return math.floor(num * mult + 0.5) / mult
  40. end
  41. local timer = 0
  42. while true do
  43. local kebs = {}
  44. kebs["energy"] = 0
  45. kebs["maxenergy"] = 0
  46. local post_data = {}
  47. gpu1.setForeground(0xFFFFFF)
  48. gpu1.set(1,1, text.padRight("Tank status", screen1_x - 5))
  49. gpu1.set(screen1_x - 5,1, text.padRight(os.date("%H:%M", os.time()), 5))
  50. local i = 1
  51. post_data[i] = tc[i].getFluidInTank(sides.up)[1]
  52. post_data[i]['name'] = "Engineroom_Fuel_1"
  53. i = i + 1
  54. post_data[i] = tc[i].getFluidInTank(sides.up)[1]
  55. post_data[i]['name'] = "Engineroom_Fuel_2"
  56. i = i + 1
  57. post_data[i] = tc[i].getFluidInTank(sides.up)[1]
  58. post_data[i]['name'] = "Engineroom_Fuel_3"
  59. i = i + 1
  60. post_data[i] = tc[i].getFluidInTank(sides.up)[1]
  61. post_data[i]['name'] = "Engineroom_Fuel_4"
  62. i = i + 1
  63. post_data[i] = tc[i].getFluidInTank(sides.up)[1]
  64. post_data[i]['name'] = "Engineroom_Fuel_5"
  65. i = i + 1
  66. post_data[i] = tc[i].getFluidInTank(sides.up)[1]
  67. post_data[i]['name'] = "Engineroom_Fuel_6"
  68. i = i + 1
  69. post_data[i] = tc[i].getFluidInTank(sides.up)[1]
  70. post_data[i]['name'] = "Engineroom_Fuel_7"
  71. i = i + 1
  72. post_data[i] = tc[i].getFluidInTank(sides.up)[1]
  73. post_data[i]['name'] = "Engineroom_Fuel_8"
  74. i = i + 1
  75. post_data[i] = {}
  76. post_data[i]['name'] = "Engineroom_KEB_1"
  77. post_data[i]['energy'] = keb[1].getEnergyStored()
  78. post_data[i]['maxenergy'] = keb[1].getMaxEnergyStored()
  79. kebs["energy"] = kebs["energy"] + post_data[i]['energy']
  80. kebs["maxenergy"] = kebs["maxenergy"] + post_data[i]['maxenergy']
  81. i = i + 1
  82. post_data[i] = {}
  83. post_data[i]['name'] = "Engineroom_KEB_2"
  84. post_data[i]['energy'] = keb[2].getEnergyStored()
  85. post_data[i]['maxenergy'] = keb[2].getMaxEnergyStored()
  86. kebs["energy"] = kebs["energy"] + post_data[i]['energy']
  87. kebs["maxenergy"] = kebs["maxenergy"] + post_data[i]['maxenergy']
  88. i = i + 1
  89. post_data[i] = {}
  90. post_data[i]['name'] = "Engineroom_KEB_3"
  91. post_data[i]['energy'] = keb[3].getEnergyStored()
  92. post_data[i]['maxenergy'] = keb[3].getMaxEnergyStored()
  93. kebs["energy"] = kebs["energy"] + post_data[i]['energy']
  94. kebs["maxenergy"] = kebs["maxenergy"] + post_data[i]['maxenergy']
  95. i = i + 1
  96. post_data[i] = {}
  97. post_data[i]['name'] = "Engineroom_KEB_4"
  98. post_data[i]['energy'] = keb[4].getEnergyStored()
  99. post_data[i]['maxenergy'] = keb[4].getMaxEnergyStored()
  100. kebs["energy"] = kebs["energy"] + post_data[i]['energy']
  101. kebs["maxenergy"] = kebs["maxenergy"] + post_data[i]['maxenergy']
  102. i = i + 1
  103. post_data[i] = {}
  104. post_data[i]['name'] = "Engineroom_KEB_5"
  105. post_data[i]['energy'] = keb[5].getEnergyStored()
  106. post_data[i]['maxenergy'] = keb[5].getMaxEnergyStored()
  107. kebs["energy"] = kebs["energy"] + post_data[i]['energy']
  108. kebs["maxenergy"] = kebs["maxenergy"] + post_data[i]['maxenergy']
  109.  
  110. local energyperc = kebs["energy"] / kebs["maxenergy"] * 100
  111. print(energyperc)
  112. local rswest = (95 - energyperc)
  113. local rsdown = 0
  114. if (kebs["energy"] / kebs["maxenergy"] * 100) < 95 then
  115. rsdown = 1
  116. end
  117. rs.setOutput(sides.west,rswest)
  118. rs.setOutput(sides.down,rsdown)
  119. -- runtime
  120. timer = timer + 1
  121. if (timer %60 == 0) then
  122. internet.request(requesturl, json:encode(post_data))
  123. timer = 0
  124. end
  125. os.sleep(0.1)
  126. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement