Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. component = require("component")
  2. gui = require("gui")
  3. event = require("event")
  4. m = component.modem
  5.  
  6. nics = {}
  7. ic = {"56c", "616", "8f3", "2ce"}
  8. mc = {"ed0", "d76", "c27", "22b"}
  9.  
  10. function unknownEvent()
  11. -- do nothing if the event wasn't relevant
  12. end
  13. -- table that holds all event handlers
  14. -- in case no match can be found returns the dummy function unknownEvent
  15. myEventHandlers = setmetatable({}, { __index = function() return unknownEvent end })
  16.  
  17. -- The main event handler as function to separate eventID from the remaining arguments
  18. function handleEvent(eventID, ...)
  19. if (eventID) then -- can be nil if no event was pulled for some time
  20. myEventHandlers[eventID](...) -- call the appropriate event handler with all remaining arguments
  21. end
  22. end
  23.  
  24. function myEventHandlers.modem_message(localAddress, remoteAddress, port, distance, id, message)
  25. id = text.trim(id)
  26. if message == "MC id" then
  27. nics[id] = remoteAddress
  28. end
  29. gui.insertList(mainGui, list_msg, "Message from " .. id .. ": " .. tostring(message))
  30. end
  31.  
  32. function exitButtonCallback(guiID, id)
  33. local result = gui.getYesNo("", "Do you really want to exit?", "")
  34. if result == true then
  35. gui.exit()
  36. end
  37. gui.displayGui(mainGui)
  38. refresh()
  39. end
  40.  
  41. function startReactor(i)
  42. p = component.proxy(component.get(mc[i]))
  43. if p.isRunning() ~= true then
  44. p.start()
  45. end
  46. m.send(nics["Reactor " .. i], 100, "on")
  47. end
  48.  
  49. function stopReactor(i)
  50. m.send(nics["Reactor " .. i], 100, "off")
  51. p = component.proxy(component.get(mc[i]))
  52. p.stop()
  53. end
  54.  
  55. function list_msg_callback(guiID, listID, selected, text)
  56. end
  57.  
  58. -- Begin: Menu definitions
  59. mainGui = gui.newGui(1, 2, 159, 48, true)
  60. list_msg = gui.newList(mainGui, 1, 45, 157, 4, {}, list_msg_callback, list_msg)
  61. exitButton = gui.newButton(mainGui, 73, 23, "exit", exitButtonCallback)
  62. -- End: Menu definitions
  63.  
  64. gui.clearScreen()
  65. gui.setTop("IC2 Reactor Control")
  66. gui.setBottom("")
  67.  
  68. m.open(200)
  69. m.broadcast(100, "id")
  70.  
  71. -- Main loop
  72. while true do
  73. gui.runGui(mainGui)
  74. handleEvent(event.pull(0.1, "modem"))
  75. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement