Нужна помощь с связью через последовательный порт в Ruby.
-
03-07-2019 - |
Вопрос
Мне нужно установить связь через последовательный порт в Ruby.Мои исследования показали, что современных библиотек для последовательной связи не так много, а новейшие материалы, которые я смог найти, относятся к 2006 году.Есть ли какие-нибудь драгоценные камни, о которых я не знаю?
В конечном итоге мне нужно поддерживать связь с последовательным устройством, подключенным к USB (я без проблем могу определить порт) для обратной и обратной связи (что-то вроде псевдокода в стиле Ruby).
def serial_write_read
if serial.read == "READY"
serial.write "1"
until serial.read == "OK"
serial.write "5"
end
return when serial.read == "DONE"
end
end
Решение
Спецификация последовательного порта не менялась навсегда, я бы не беспокоился о том, сколько лет библиотекам.
Я предполагаю, что ты видел этот статья 2006 года о Ruby и последовательных портах
Вот тот, кто получил Руби-SerialPort упомянутая там библиотека для работы над Mac в этом году.
Есть также этот старый пост из рубинового разговора о взаимодействии с Win32 Serial API.
Другие советы
Просто потому, что поиск по ruby-serialport иногда приведет вас сюда:
GitHub-репозиторий Toholio, похоже, больше не активен (по состоянию на 09/2010). Изданный драгоценный камень прибывает из
Хотя серийный стандарт не изменился, способы взаимодействия Ruby Gems с расширениями Ruby C за эти годы изменились достаточно, так что расширение последовательного порта RubyForge не будет хорошо работать. На протяжении многих лет на RubyForge были исправления, но это было не очень красиво. Хорошая новость заключается в том, что Github позволил невероятному ускорению активности очистить расширение последовательного порта Ruby. По крайней мере три разных человека кросс-разветвляют свой код последовательного порта на Github Вы можете искать на Github, но я полагаю, что Toholio имеет самый последний код, который перекодирует и переупаковывает последовательный порт Ruby как Ruby Gem. (Да!)
http://github.com/toholio/ruby-serialport/tree/master р>
Он отлично работает для меня в Linux, решая предыдущий конфликт с последней версией Ruby Gems. В Windows у меня все еще не получается заставить его работать. Компиляция Ruby-расширений в Windows никогда не бывает очень простой, но это целая куча червей. Я просто счастлив, что люди снова работают над поддержкой последовательного порта Ruby. Я попросил Toholio сгенерировать бинарный гем Windows, который решит все проблемы, и он сказал, что это в его списке.