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