2009-10-30 5 views
2

루비 또는 C++을 사용하여 USB 포트에 특정 신호를 보낼 수 있습니까? 운영 체제도 Windows이므로 완전히 새로운 4 me (Windows 용 프로그램)와 같습니다. DLL 파일,이 DLL은 Ruby 코드를 포함 할 수 있습니까 ??컨트롤 USB 포트

그냥 훈련 프로젝트 일 뿐이므로, 그다지 문제가되지는 않습니다. 창문 아래에서 연습하는 것뿐입니다.

+2

어떤 종류의 USB 장치를 제어하고 싶습니까? – Artelius

+6

USB는 단지 버스 일뿐입니다. 어떤 종류의 장치가 버스의 다른 끝에 연결됩니까? –

+0

특별한 건 없지만 ... 어떤 종류의 반지에 대해서, 내가 그 특정한 신호를 보낼 때 울리면, 다른 신호를 보낼 때 멈 춥니 다. – Raafat

답변

1

두 가지 질문이 있습니다. 그래서 나는 그들을 분리하여 감시하려고 노력할 것이다.

어떻게 코드에서 자신의 코드에서

예를 제어 할 수있는 USB 장치를 USB 장치를 제어 할 수 있습니다. libusb를 사용하면 일반적인 USB 드라이버가 할 수있는 모든 것을 할 수 있습니다. 자신이 사용하는 포트를 사용하지 않고 manufacterer 및 장치 ID로 주소를 지정하지 마십시오. 리눅스 에서이 모든 USB 장치에 대한 작동합니다. Windows에서는 어떻게 든 제어 할 수없는 장치 용 드라이버로 libusb를 설치해야합니다. libusb에 대한 자세한 내용은 http://www.libusb.org/입니다. win32 용 libusb는 http://libusb-win32.sourceforge.net/에 있습니다.

ruby ​​내부에서 libusb를 사용하지 않으려면 C 바인딩을 사용해야합니다. 당신은 에테르 사용 http://www.a-k-r.org/ruby-usb/ 또는 자신의 바인딩을 쓸 수 있습니다.

방법이 제 전문 분야되지 않습니다 루비 코드

을 컴파일하지만, 당신이 하나 둘 질문을한다. 나는 그것을 과감히하려고 노력할 것이다.

실제로 루비를 컴파일하는 방법이 있습니다.

  • 루비 인터프리터와 eval의 루비 코드 문자열을 포함하는 C 프로그램을 작성할 수 있습니다.
  • ruby2c 프로젝트는 일부 루비 코드 (전부는 아님)를 c로 변환 할 수 있습니다. 이 C 코드는 컴파일 될 수 있습니다. http://rubyforge.org/projects/ruby2c/에서 자세한 내용보기

또한 루비 코드를 컴파일하는 것이 적절한 지 생각해 봐야합니다. 혼합 C 루비 프로그램을 작성한다면 루비에 대한 모든 C 부분 확장을 만들 수 있습니다. 이렇게하면 루비를 컴파일 할 필요가 없습니다. 루비의 c 라이브러리를 쓰지 않으시겠습니까? 이것은 아마도이 라이브러리를 사용하는 c 프로그램에 대해 큰 성능 영향을 의미 할 것입니다.