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