lib/arduino_firmata/arduino.rb in arduino_firmata-0.0.4 vs lib/arduino_firmata/arduino.rb in arduino_firmata-0.0.5
- old
+ new
@@ -8,19 +8,20 @@
@wait_for_data = 0
@execute_multi_byte_command = 0
@multi_byte_channel = 0
@stored_input_data = []
@parsing_sysex = false
- @sysex_bytes_read
+ @sysex_bytes_read = nil
@digital_output_data = Array.new(16, 0)
@digital_input_data = Array.new(16, 0)
@analog_input_data = Array.new(16, 0)
@version = nil
@serial = SerialPort.new(serial_name, params[:bps], params[:bit], params[:stopbit], params[:parity])
+ @serial.read_timeout = 3
sleep 3
Thread.new{
loop do
process_input
@@ -41,9 +42,13 @@
break if @version
sleep 0.3
end
sleep 0.5
+ end
+
+ def close
+ @serial.close
end
def digital_read(pin)
(@digital_input_data[pin >> 3] >> (pin & 0x07)) & 0x01 > 0
end