class NetworkedRFID::RFIDReaderRepository
Репозиторий всех ридеров, с которыми взаимодействует система.
Public Instance Methods
<<(reader)
click to toggle source
Добавить ридер в репозиторий.
# File lib/networked_rfid/rfid_reader_repository.rb, line 20 def <<(reader) readers[reader.ip] = reader end
poll()
click to toggle source
Опросить состояние ридеров и передать каждому полученный ответ на обработку.
# File lib/networked_rfid/rfid_reader_repository.rb, line 8 def poll readers.values.each do |reader| reader.poll(socket) end while have_replies? reply_packet = socket.recvfrom_nonblock(64) readers[reply_packet[1][2].to_s].process_response reply_packet[0] end end
Protected Instance Methods
have_replies?()
click to toggle source
# File lib/networked_rfid/rfid_reader_repository.rb, line 26 def have_replies? result = IO.select([ socket ], nil, nil, 0.125) !result.nil? && result[0].size > 0 end
readers()
click to toggle source
# File lib/networked_rfid/rfid_reader_repository.rb, line 35 def readers @readers ||= { } end
socket()
click to toggle source
# File lib/networked_rfid/rfid_reader_repository.rb, line 31 def socket @socket ||= UDPSocket.new end