serialport (1.0.4)
Авторы: Гийом Пьеронне, Алан Стерн, Дэниел Э. Шиптон, Тобин
Ричард, Гектор Парра, Райан С. Пейн
Домашняя страница: http://github.com/hparra/ruby-serialport/
Библиотека для использования последовательных портов RS-232.
Я использую этот драгоценный камень, и характеристики моего устройства следующие.
Когда я получаю данные, как показано ниже, распакованные данные все еще имеют бит четности.
sp = SerialPort.new("/dev/serial-device", 9600, 7, 1, SerialPort::EVEN)
data = sp.gets
data.chars.each do |char|
puts char.unpack("B*")
end
пр. если sp
получает a
, распакованные данные будут 11100001
вместо 01100001
, потому что это ЧЕТНАЯ четность.
Чтобы преобразовать байт обратно в то, чем он должен быть, мне нравится это
data = sp.gets #gets 11100001 for 'a' (even parity)
data.bytes.to_a.each do |byte|
puts (byte & 127).chr
end
сейчас, для меня это низкоуровневый способ. Я ожидал, что гем последовательного порта должен выполнить эту проверку четности, но насколько я читал его документ, он ничего не говорит о проверке четности.
Мне не хватает метода, который уже реализован в геме, или моя работа, описанная выше, необходима, поскольку я обязан проверить четность и найти ошибку?