Advertisement
TheProgrammer

IC2 and TE4 Energy Monitor (beta)

Aug 23rd, 2014
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.78 KB | None | 0 0
  1. local pe = peripheral
  2. local ts = 1            --textsize
  3. local sm = " "
  4. local mdistance = 1
  5. local te_energylevel = 0
  6. local ic_energylevel = 0
  7. local tec
  8. local icc
  9. local head = "Energie"
  10. local hx = 0
  11. local hy = 0
  12. local ey = 0
  13. local ex = 0
  14. local tex = 0
  15. local icx = 0
  16. local miv = 1
  17. local mwha = 0
  18. local mwhaID = 0
  19.  
  20. while true do
  21.     tec = false
  22.     icc = false
  23.     te_energylevel = 0
  24.     ic_energylevel = 0
  25.     ey = 0
  26.     ex = 0
  27.     tex = 0
  28.     icx = 0
  29.     miv = 1
  30.     local te_energy, ic_energy, monitorArea, monitors = { }, { }, { }, { }
  31.     local periNet = pe.getNames()
  32.         for k,v in pairs(periNet) do
  33.                 if pe.getType(v) == "cofh_thermalexpansion_energycell" then
  34.                         local te_cell = pe.wrap(v)
  35.                         --print("TE4-Zelle gefunden!")
  36.                         te_energy[k] = te_cell.getEnergyStored(v)
  37.             tec = true
  38.                 elseif pe.getType(v) == "monitor" then
  39.                         mon = peripheral.wrap(v)
  40.             local imx,imy = mon.getSize()
  41.             monAre = (imx*imy)
  42.                         --print("Monitor gefunden!")
  43.             monitorArea[monAre][k][v] = monAre,k,v
  44.         elseif pe.getType(v) == "mfsu" or pe.getType(v) == "mfe" or pe.getType(v) == "batbox" or pe.getType(v) == "cesu" then
  45.                         local ic_cell = pe.wrap(v)
  46.             ic_energy[k] = ic_cell.getEUStored()
  47.                         --print("IC2-Zelle gefunden!")
  48.             icc = true
  49.                 else
  50.                         --print("unknown device found!")                      
  51.                 end
  52.         end
  53.     table.sort(monitorArea)
  54.     for m_area,m_id,m_type in pairs(monitorArea) do
  55.         print(m_area.."   "..m_id.."   "..m_type)
  56.         os.sleep(1)
  57.     end
  58.     --print("periNet-Scan durchgeführt!")
  59.     local a=0
  60.     local mx,my=m.getSize()
  61.     m.clear()
  62.     m.setTextScale(ts)
  63.     m.setBackgroundColor(colors.lime)
  64.     m.setTextColor(colors.blue)
  65.     for i=1,my do
  66.         for j=1,mx do
  67.             m.setCursorPos(j,i)
  68.             m.write(sm)
  69.         end
  70.     end
  71.     for te_id,te_ed in pairs(te_energy) do
  72.         te_energylevel = te_energylevel+te_ed
  73.     end
  74.     if tec then
  75.         if te_energylevel >= 100000000000000 then
  76.             te_energylevel = tostring(te_energylevel)
  77.             te_energylevel = te_energylevel:sub(1,#te_energylevel-12)
  78.             te_energylevel = te_energylevel.."T"   
  79.         elseif te_energylevel >= 100000000000 then
  80.             te_energylevel = tostring(te_energylevel)
  81.             te_energylevel = te_energylevel:sub(1,#te_energylevel-9)
  82.             te_energylevel = te_energylevel.."G"   
  83.         elseif te_energylevel >= 100000000 then
  84.             te_energylevel = tostring(te_energylevel)
  85.             te_energylevel = te_energylevel:sub(1,#te_energylevel-6)
  86.             te_energylevel = te_energylevel.."M"   
  87.         elseif te_energylevel >= 100000 then
  88.             te_energylevel = tostring(te_energylevel)
  89.             te_energylevel = te_energylevel:sub(1,#te_energylevel-3)
  90.             te_energylevel = te_energylevel.."K"       
  91.         else
  92.             te_ernergylevel = tostring(te_energylevel)
  93.         end
  94.  
  95. --  if ( #(tostring(te_energylevel):sub(1,#(tostring(te_energylevel))))+1 ) >= (mx-2) then     
  96. --      te_energylevel = tostring(te_energylevel)
  97. --      te_energylevel = te_energylevel:sub(1,#te_energylevel-3)
  98. --      te_energylevel = te_energylevel.."K"
  99. --  elseif ( #(tostring(te_energylevel):sub(1,#(tostring(te_energylevel))-3))+1 ) >= (mx-2) then       
  100. --      te_energylevel = tostring(te_energylevel)
  101. --      te_energylevel = te_energylevel:sub(1,#te_energylevel-6)
  102. --      te_energylevel = te_energylevel.."M"
  103. --  elseif ( #(tostring(te_energylevel):sub(1,#(tostring(te_energylevel))-6))+1 ) >= (mx-2) then
  104. --      te_energylevel = tostring(te_energylevel)
  105. --      te_energylevel = te_energylevel:sub(1,#te_energylevel-9)
  106. --      te_energylevel = te_energylevel.."G"
  107. --  elseif ( #(tostring(te_energylevel):sub(1,#(tostring(te_energylevel))-9))+1 ) >= (mx-2) then
  108. --      te_energylevel = tostring(te_energylevel)
  109. --      te_energylevel = te_energylevel:sub(1,#te_energylevel-12)
  110. --      te_energylevel = te_energylevel.."T"
  111. --  else
  112. --      te_energylevel = tostring(te_energylevel)
  113. --  end
  114.     end
  115. --XX--
  116.     for id_id,ic_ed in pairs(ic_energy) do
  117.         ic_energylevel = ic_energylevel+ic_ed
  118.     end
  119.     if icc then
  120.         if ic_energylevel >= 100000000000000 then
  121.             ic_energylevel = tostring(ic_energylevel)
  122.             ic_energylevel = ic_energylevel:sub(1,#ic_energylevel-12)
  123.             ic_energylevel = ic_energylevel.."T"   
  124.         elseif ic_energylevel >= 100000000000 then
  125.             ic_energylevel = tostring(ic_energylevel)
  126.             ic_energylevel = ic_energylevel:sub(1,#ic_energylevel-9)
  127.             ic_energylevel = ic_energylevel.."G"   
  128.         elseif ic_energylevel >= 100000000 then
  129.             ic_energylevel = tostring(ic_energylevel)
  130.             ic_energylevel = ic_energylevel:sub(1,#ic_energylevel-6)
  131.             ic_energylevel = ic_energylevel.."M"   
  132.         elseif ic_energylevel >= 100000 then
  133.             ic_energylevel = tostring(ic_energylevel)
  134.             ic_energylevel = ic_energylevel:sub(1,#ic_energylevel-3)
  135.             ic_energylevel = ic_energylevel.."K"       
  136.         else
  137.             ic_energylevel = tostring(ic_energylevel)
  138.         end
  139. --  if ( #(tostring(ic_energylevel):sub(1,#(tostring(ic_energylevel))))+1 ) >= (mx-2) then     
  140. --      ic_energylevel = tostring(ic_energylevel)
  141. --      ic_energylevel = ic_energylevel:sub(1,#ic_energylevel-3)
  142. --      ic_energylevel = ic_energylevel.."K"
  143. --  elseif ( #(tostring(ic_energylevel):sub(1,#(tostring(ic_energylevel))-3))+1 ) >= (mx-2) then       
  144. --      ic_energylevel = tostring(ic_energylevel)
  145. --      ic_energylevel = ic_energylevel:sub(1,#ic_energylevel-6)
  146. --      ic_energylevel = ic_energylevel.."M"
  147. --  elseif ( #(tostring(ic_energylevel):sub(1,#(tostring(ic_energylevel))-6))+1 ) >= (mx-2) then
  148. --      ic_energylevel = tostring(ic_energylevel)
  149. --      ic_energylevel = ic_energylevel:sub(1,#ic_energylevel-9)
  150. --      ic_energylevel = ic_energylevel.."G"
  151. --  elseif ( #(tostring(ic_energylevel):sub(1,#(tostring(ic_energylevel))-9))+1 ) >= (mx-2) then
  152. --      ic_energylevel = tostring(ic_energylevel)
  153. --      ic_energylevel = ic_energylevel:sub(1,#ic_energylevel-12)
  154. --      ic_energylevel = ic_energylevel.."T"
  155. --  else
  156. --      ic_energylevel = tostring(ic_energylevel)
  157. --  end
  158.     end
  159.     if (my-1)%2 == 0 then
  160.         hy = (my-1)/2
  161.     elseif (my-1)%2 ~= 0 then
  162.         hy = (my-2)/2
  163.     end
  164.     if mx-#head == 0 then
  165.         hx = 1
  166.     elseif (mx-#head)%2 ~= 0 then
  167.         hx = ((mx-#head)-1)/2
  168.     elseif (mx-#head)%2 == 0 then
  169.         hx = (mx-#head)/2
  170.     end
  171.     m.setCursorPos(hx,1)
  172.     m.write(head)
  173.     if tec then
  174.         m.setCursorPos(1,2)
  175.         m.write("TE4-E (RF):")
  176.         if mx-#te_energylevel == 0 then
  177.             tex = 1
  178.         elseif (mx-#te_energylevel)%2 ~= 0 then
  179.             tex = ((mx-#te_energylevel)-1)/2
  180.         elseif (mx-#te_energylevel)%2 == 0 then
  181.             tex = (mx-#te_energylevel)/2
  182.         end
  183.         m.setCursorPos(1+tex,3)
  184.         m.write(te_energylevel)
  185.     end
  186.     if icc then
  187.         m.setCursorPos(1,4)
  188.         m.write("IC2-E (EU):")
  189.         if mx-#ic_energylevel == 0 then
  190.             icx = 1
  191.         elseif (mx-#ic_energylevel)%2 ~= 0 then
  192.             icx = ((mx-#ic_energylevel)-1)/2
  193.         elseif (mx-#ic_energylevel)%2 == 0 then
  194.             icx = (mx-#ic_energylevel)/2
  195.         end
  196.         m.setCursorPos(1+icx,5)
  197.         m.write(ic_energylevel)
  198.     end
  199.     os.sleep(1)
  200. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement