2009-10-30 8 views
2

puis-je envoyer des signaux spécifiques aux ports USB en utilisant Ruby ou C++, aussi le système d'exploitation est Windows, donc c'est comme totalement nouveau 4 moi (pour programmer pour windows), donc j'essaye de le faire comme un fichier DLL, ce DLL peut contenir du code Ruby ?? D'ailleurs c'est juste un projet de formation, donc peu importe, je m'entraîne juste sur ces trucs sous windows.Contrôler les ports USB

+2

Quel type de périphérique USB souhaitez-vous contrôler? – Artelius

+6

L'USB est juste un bus. Quel type d'appareil est connecté à l'autre extrémité du bus? –

+0

rien de spécifique ... mais que diriez-vous d'une sorte d'anneau, sonne quand j'envoie ce signal spécifique, puis s'arrête quand j'envoie un autre. – Raafat

Répondre

1

Je vois deux questions distinctes ici. Donc, je vais essayer de les interroger séparément.

Comment contrôler les périphériques USB de votre code

Oui, vous pouvez contrôler les périphériques USB à partir de votre propre code. Avec libusb, vous pouvez faire tout ce que les pilotes usb ordinaires font. Sachez que vous ne les adressez pas avec le port sur lequel ils se trouvent, mais avec leur identifiant et leur identifiant. Sous Linux ce travail pour n'importe quel périphérique USB. Sous Windows, vous devez installer libusb en tant que pilote pour l'appareil que vous ne voulez pas contrôler. En savoir plus sur libusb au http://www.libusb.org/. Le libusb pour win32 est hébergé au http://libusb-win32.sourceforge.net/.

Si vous ne voulez pas utiliser libusb de l'intérieur de ruby, vous devez utiliser une sorte de c fixations. Vous pouvez utiliser http://www.a-k-r.org/ruby-usb/ ou écrire vos propres liens.

Comment compiler le code Ruby

Ce n'est pas mon domaine d'expertise, mais comme vous avez posé deux questions comme l'un. Je vais essayer d'y répondre.

Il existe actuellement des façons de compiler du rubis.

  • Vous pouvez écrire un programme C qui inclut l'interpréteur ruby ​​et eval une chaîne de code ruby.
  • Le projet ruby2c peut traduire du code ruby ​​(pas tous) en c. Ce code c pourrait être compilé. Voyez plus au http://rubyforge.org/projects/ruby2c/.

Vous devriez également réfléchir, s'il est logique dans votre cas de compiler le code ruby. Si vous écrivez un programme c ruby ​​mixte, vous pouvez faire de toutes les parties c des extensions c pour ruby. De cette façon, votre rubis n'a pas besoin d'être compilé. Voulez-vous écrire une bibliothèque pour c à ruby? Cela signifierait probablement un énorme impact sur les performances des programmes c qui utilisent cette bibliothèque.