RavenSH4

RFID_Door

Sep 28th, 2021 (edited)
1,033
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --RFID_Door
  2.  
  3. --initialize
  4. Reader = peripheral.wrap("top")
  5. code = {5, 8, 4, 3}
  6. data = {5, 8, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  7. key_type = 0
  8. blockId = 0
  9. Key = {1, 2, 3, 4, 5, 6}
  10.  
  11. --
  12. function Update()
  13.     res = Reader.search()
  14.    
  15.     if (res) then
  16.         Reader.select(res)
  17.  
  18.         Reader.auth(key_type, blockId, Key)
  19.         Reader.write(blockId, data)
  20.         Reader.deauth()
  21.         print("writed!")
  22.  
  23.         for i=1, table.maxn(data ), 1 do
  24.             print(i.."="..data[i].." true")
  25.         end
  26.  
  27.         --
  28.         Reader.auth(key_type, blockId, Key)
  29.         ot = Reader.read(blockId)
  30.         IsPassOk = false
  31.         if (ot) then
  32.             IsPassOk = true
  33.             --print("find")
  34.             for i=1, table.maxn(code), 1 do
  35.                 if (ot[i] == code[i]) then
  36.                     print(i.."="..ot[i].." true")
  37.                 else
  38.                     IsPassOk = false
  39.                     print(i.."="..ot[i].." false")
  40.                 end
  41.             end
  42.         end
  43.  
  44.         if (IsPassOk) then
  45.             rs.setOutput("right", true)
  46.             print("true")
  47.         else
  48.             rs.setOutput("right", false)
  49.             print("false")
  50.         end
  51.  
  52.         Reader.deauth()
  53.     else
  54.         print("NONE")
  55.     end
  56.    
  57.     os.startTimer(1)
  58. end
  59.  
  60. --Fisrt draw
  61. os.startTimer(1)
  62.  
  63. repeat
  64.     event,p1,p2,p3 = os.pullEvent()
  65.     if (event=="rfid_detected") then
  66.         print("p1="..p1.." p2="..p2.." p3="..p3)
  67.         if p1 == doorPass then
  68.             rs.setOutput(redstoneSide, true)
  69.             lastTimer = os.startTimer(1)
  70.         end
  71.     elseif (event=="timer") then
  72.         Update()
  73.     elseif (event=="monitor_touch") then
  74.         --p2 -- sets mouseWidth
  75.         --p3 -- and mouseHeight
  76.         TouchEvent(p2, p3)
  77.     elseif (event=="redstone") then
  78.         RedstoneEvent()
  79.     end
  80. until event=="char" and p1==("q")
RAW Paste Data