Advertisement
Guest User

Keypad OS

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