원본 질문을 더 이상 완전히 그 문제와 관련이 없으므로 원래 질문을 아래쪽으로 옮겼습니다. 나는이 같은 요구 할 수 있어요 serialport.so를 찾을 수 없습니다입니다'serialport'가 필요하다는 잘못된 보석이 필요합니다.
:
$ [email protected]
$ irb
> require 'serialport.so'
=> true
(보석 목록 emtpy 반환)
업데이트 :
require 'serialport'
irb 세션에서 실행되는 경우, 둘 다 보석을 제거하더라도 true를 반환해야합니다. 그래서 "require 'serialport'"를 통해 또 다른 보석이 필요합니다. 결과없이이 보석의 다른 버전을 검색했습니다.
올바른 보석이 필요한지 어떻게 확인할 수 있습니까?
업데이트 :
[보석의 제거 목록]
내가 RVM 전역 네임 스페이스에있는 모든 보석을 제거 할 때, 나는 아직도 '하여 SerialPort'을 필요로 사실 수 있습니다.
이제 내 보석 출력 목록이 완전히 비어 있고 '직렬 포트'가 여전히 irb 내에서 true를 반환해야합니다.
전 rvm을 사용하고 있습니다. 전 세계 보석과 내가 사용하고있는 보석 세트의 모든 보석을 비 웠습니다. 'serialport'를 포함하는 이름을 가진 시스템 보석은 없으며, serialport.o, serialport.so와 같은 보석 디렉토리에 포함될 파일을 검색했고 아무것도 찾지 못했습니다. 아마도
require 'serialport.so'
는 true를 돌려 '하여 SerialPort를'요구에 응답 할 수 있고
sudo find/-name 'serialport.so' -print
아무것도 반환하지 않는 것을
나는에 대한 손실에 있어요.
아이디어가 있으십니까?
원래 포스트 : 나는하여 SerialPort (1.0.4) 보석을 사용하고
.
implementation.rb:14:in `initialize': wrong number of arguments (5 for 2) (ArgumentError)
from implementation.rb:14:in `open'
from implementation.rb:14
이 같은 이상한 : 루비 implementation.rb를 실행하는 경우
require 'rubygems'
require 'serialport'
port_str = "/dev/cu.usbserial" # Serialport mount point
baud_rate = 9600
data_bits = 8
stop_bits = 1
parity = 0
sp = SerialPort.new(port_str, data_bits, stop_bits, baud_rate, parity)
while barcode = sp.gets do
puts barcode
end
sp.close
, 내가 얻을 :
문서가 여기에
http://rubydoc.info/gems/serialport/1.0.4/에서 발견되는 나의 implementation.rb입니다 어디서나 초기화 메소드가 보이지 않습니다 (루비가 내부적으로 SerialPort :: new의 이름을 초기화로 지정하고 있습니까?).이것은 다른 일 근무하고 있었고, 난 변경하는의 것 아무것도 생각할 수 없다
require 'serialport.so'
class SerialPort
private_class_method(:create)
# Creates a serial port object.
#
# <tt>port</tt> may be a port number
# or the file name of a defice.
# The number is portable; so 0 is mapped to "COM1" on Windows,
# "/dev/ttyS0" on Linux, "/dev/cuaa0" on Mac OS X, etc.
#
# <tt>params</tt> can be used to configure the serial port.
# See SerialPort#set_modem_params for details
def SerialPort::new(port, *params)
sp = create(port)
begin
sp.set_modem_params(*params) # Calls C extension
rescue
sp.close
raise
end
return sp
end
# SerialPort::open removed as its the same thing as new() with a block
end
: 같은
보석의 루비 부분이 보인다.
ruby-serialport gem (0.7.0)에서도 같은 오류가 발생합니다.이 오류는 두 소스에서 모두 똑같은 것으로 보입니다.
샘플 구현은 http://rubyforge.org/projects/ruby-serialport/ (http://ruby-serialport.rubyforge.org/에서 문서)
어떤 아이디어에서 발견 http://www.sfc.wide.ad.jp/~mitsuya/4U/ruby-serialport-macosx.html
후자의 보석 (루비하여 SerialPort)에서 발견된다? 감사.
gem list를 실행하면 저에게 맞는 목록은 무엇입니까? –
나는 그것을 보석 자체에 문제가되지 않는 것으로 좁혔다. 오히려 보석이 제거 될 때 실패하지 않기 때문에 "require 'serialport' '를 통해 다른 보석이 필요합니다. – jvatic
필자는이 문제를 해결할 수있는 rvm을 사용하고 있습니다. – jvatic