forked from toholio/ruby-serialport
-
Notifications
You must be signed in to change notification settings - Fork 59
Open
Description
I am trying to set up serial communication between a Ruby on Rails app and an Arduino Mega. In Ruby, I am writing an array of strings to the serial, which the Arduino is then supposed to read, process and write corresponding output back to the serial.
For some reason, when I use irb and run the script line by line, everything works and I get the desired result, but when I use ruby sample.rb or run the code from inside Rails, it just gets stuck in the while loop and never returns anything. Would love any guidance on how to get this working.
# sample.rb
require 'serialport'
port_str = '/dev/tty.usbmodem1411'
baud_rate = 9600
data_bits = 8
stop_bits = 1
parity = SerialPort::NONE
sp = SerialPort.new(port_str, baud_rate, data_bits, stop_bits, parity)
seq = ['[h:0,0,120,5]', '[t:0,1,6,7,4]', '[t:-1,2,5,-1,3]', '[t:-1,0,2,-1,-1]', '[l:1,1,0.5,0.5,1]']
seq.each do |i|
puts 'laptop> ' + i
sp.write i
end
while(true)
while (o = sp.gets.chomp) do
puts 'arduino> ' + o
end
endFor reference, I am running Ruby 2.1.2, Rails 4.1.4, and serialport 1.3.1.
Metadata
Metadata
Assignees
Labels
No labels