Нужна помощь с последовательным портом связи в Ruby - PullRequest
4 голосов
/ 03 октября 2008

Мне нужно сделать некоторые сообщения через последовательный порт в Ruby. Из моих исследований выяснилось, что не так много современных библиотек для последовательной связи, и самый новый материал, который я могу найти, - это 2006 год. Есть ли какие-то драгоценные камни, о которых я не знаю?

Мне, в конечном счете, необходимо поддерживать связь с последовательным устройством, подключенным к USB (я могу определить порт без проблем), для передачи данных туда и обратно, как это происходит (немного псевдокод Ruby-esque).

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

Ответы [ 3 ]

3 голосов
/ 28 сентября 2010

Просто потому, что поиск ruby-serialport иногда приводит вас сюда:

Репозиторий toholio github больше не активен (по состоянию на 09/2010). Изданный драгоценный камень прибывает из

http://github.com/hparra/ruby-serialport

2 голосов
/ 03 октября 2008

Спецификация последовательного порта не изменилась навсегда, я бы не беспокоился о том, сколько лет библиотекам.

Полагаю, вы видели эту статью от 2006 года о рубине и последовательных портах

Вот кто-то, кто получил упомянутую там библиотеку Ruby-SerialPort для работы на Mac в этом году.

Также есть этот старый пост от ruby ​​talk, посвященный взаимодействию с Win32 Serial API.

1 голос
/ 28 октября 2008

Хотя последовательный стандарт не изменился, способы взаимодействия 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, который решит все проблемы, и он сказал, что это в его списке.

...