Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1. -- Дверь по цифровой клавиатуре, работающая в фоне.
  2. -- Сделал feod0r
  3. -- Отдельное спасибо lLufy за помощь в использовании двух нампадов одновременно
  4. --Базовые настройки кодового замка
  5. local locked = "Закрыто" -- слово, которое будет отображаться при закрытой двери
  6. local keyWord = "753" -- пароль, который необходимо ввести
  7. local opened = "Открыто" -- слово, которое будет отображаться при открытой двери
  8. local wrong = "неверно" -- слово, которое будет отображаться при непрвильном вводе пароля
  9. local input = "" -- переменная для хранения цифрового ввода STRING
  10. --подключаемые библиотеки
  11. local computer = require("computer") --пускай будет, чтобы пищал
  12. local event = require("event") --API для эвентов
  13. local component = require("component") --API для работы с компонентами
  14. --local keypad = component.os_keypad --блок клавиш
  15. --Внимание! Необходимо сменить адреса номеронаберателей!
  16. local keypad = component.proxy(component.get("072")) -- первый номеронабератель
  17. local keypad2 = component.proxy(component.get("aed"))-- второй номеронабератель
  18. local red = component.redstone --блок красной карты
  19. -- кто делал
  20. print("by feod0r")
  21. keypad.setDisplay("feod0r",1)
  22. os.sleep(1.5)
  23. --инициализация кнопок первого номеронобератиеля
  24. keypad.setDisplay(locked,4)
  25. keypad.setEventName("pressed")
  26. keypad.setKey(12,"Ок",2)
  27. keypad.setKey(11,"Зак",4)
  28. keypad.setKey(10,"Оч",4)
  29. --инициализация кнопок второго номеронобератиеля
  30. keypad2.setDisplay(locked,4)
  31. keypad2.setEventName("pressed2")
  32. keypad2.setKey(12,"Ок",2)
  33. keypad2.setKey(11,"Зак",4)
  34. keypad2.setKey(10,"Оч",4)
  35. --обработчик нажатий на кнопки
  36. function passwd(name, adress, key, button )
  37. --print( name, adress, key, button ) отладочная информация, пускай будет
  38.  
  39. if key == 10 then --если нажата кнопка "очистить"
  40. input = ""
  41. computer.beep(600,0.01)
  42. elseif key == 12 then --если нажата кнопка "Ввод"
  43. if keyWord == input then --код верный, дверь открывается
  44. --print(opened)
  45. keypad.setDisplay(opened,2)
  46. keypad2.setDisplay(opened,2)
  47. red.setOutput(1,150)
  48. input = ""
  49. computer.beep(1500,0.5)
  50. else --если введенный код неверный
  51. keypad.setDisplay(wrong,6)
  52. keypad2.setDisplay(wrong,6)
  53. --print("Неверный код: ",input)
  54. input = ""
  55. computer.beep(1000,0.5)
  56. end
  57. elseif key == 11 then -- если нажата кнопка "Закрыть"
  58. --print(locked)
  59. keypad.setDisplay(locked,4)
  60. keypad2.setDisplay(locked,4)
  61. input = ""
  62. computer.beep(1500,0.5)
  63. computer.beep(1000,0.5)
  64. red.setOutput(1,0)
  65. else
  66. input = input..button
  67. computer.beep(1500,0.01)
  68. end
  69. end
  70. --Запускаем первого демона
  71. if event.listen("pressed",passwd) then
  72. print("listener первого номеранаберателя запущен")
  73. else
  74. print("Проблемы при включении слушателя перого номеранаберателя")
  75. end
  76. --запускаем второго демона
  77. if event.listen("pressed2",passwd) then
  78. print("listener второго номеранаберателя запущен")
  79. else
  80. print("Проблемы при включении слушателя второго номеранаберателя")
  81. end
  82. --Сообщение для юзверей.
  83. print("Комьютер свободен. Можно заниматься своими делами, программа двери работает в фоне.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement