class NetworkedRFID::RemoteRFIDReader
Класс отдельного TCP/IP-ридера, отвечающий за его опрос и передачу событий делегату delegate
.
У делегата должны быть определены методы-обработчики низкоуровневых событий кард-ридера вроде poll_reply
и rfid_read
.
Constants
- POLL_PACKET
Attributes
delegate[RW]
ip[R]
port[R]
Public Class Methods
new(ip, port)
click to toggle source
Инициализирует ридер, делая его доступным по ip на порту port.
# File lib/networked_rfid/remote_rfid_reader.rb, line 16 def initialize(ip, port) @ip = ip @port = port @delegate = delegate end
Public Instance Methods
poll(socket)
click to toggle source
Отправлять запрос на опрос состояния ридера через socket.
# File lib/networked_rfid/remote_rfid_reader.rb, line 23 def poll(socket) socket.send POLL_PACKET, 0, ip, port end
process_response(response)
click to toggle source
Обрабатывает двоичный ответ response от ридера и отправяет его делегату.
# File lib/networked_rfid/remote_rfid_reader.rb, line 29 def process_response(response) response = RFIDReply.read(response) if delegate.respond_to?(response.type) delegate.send(response.type, response.payload) end end