def read_raw_data
		data_ffi = ::FFI::MemoryPointer.new(:int, 16)

		data_length = ::FFI::MemoryPointer.new(:int)
		data_length.write_int(16)

		Klass.getRawData(@handle, data_ffi, data_length)
		
		data = []
		
		data_length.get_int(0).times { |i|
			data << data_ffi[i].get_int(0)
		}
		
		[data, data_length.get_int(0)]
	end
def read_raw_data
		data_ffi = ::FFI::MemoryPointer.new(:int, 16)

		data_length = ::FFI::MemoryPointer.new(:int)
		data_length.write_int(16)

		Klass.getRawData(@handle, data_ffi, data_length)
		
		data = []
		
		data_length.get_int(0).times { |i|
			data << data_ffi[i].get_int(0)
		}
		
		[data, data_length.get_int(0)]
	end
Reads any available raw data. This should be polled continuously(every 20ms) to avoid missing data. Read data always starts with a space and ends with a pulse.
 @return [Array<Integer>] returns true if the raw data was successfully transmitted, or raises an error.
 @return [Integer] returns the data length, or raises an error.