Нужна помощь с связью через последовательный порт в Ruby.

StackOverflow https://stackoverflow.com/questions/167858

  •  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). Изданный драгоценный камень прибывает из

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top