У меня есть место с 6 RFID-считывателями, подключенными к Raspberry Pi 3. Цель проекта состоит в том, чтобы читатели всегда читали и читали теги при движении в здании.
Я разработалЗадача ruby rake, открывающая 6 сокетов TPC, по одному для каждого считывателя, и непрерывно получающая считыватель тегов и обрабатывающую информацию.Я запускаю бесконечный цикл со всеми сокетами, которые читают строки и обрабатывают их.
Проблема, с которой я сталкиваюсь, заключается в том, что тег останавливается рядом со считывателем и непрерывно читает, цикл останавливается, и большойбуфер создается и следующие показания обрабатываются вне времени.
sp_reader_1 = TCPSocket.new ip, port
sp_reader_2 = TCPSocket.new ip2, port
#.... and so on
loop do
line_reader_1 = sp_reader_1.gets.chomp
line_reader_2 = sp_reader_2.gets.chomp
#.... and so on
result = method_to_process_line_information(line_reader_x)
#.... and so on
puts result
end
Когда я проверяю результат в режиме реального времени и после минуты продолжения группы тегов рядом со считывателем, цикл начинает отображатьсярезультаты с задержкой по времени и через несколько минут задержка вышла из-под контроля, и полученные результаты являются недействительными.
Я провел тестирование на мощном компьютере I7, и результат тот же.
Я думаю поставить каждого читателя в отдельное задание, чтобы получить чтение и обработать информацию в отдельном задании.
Есть идеи?
Заранее спасибо.