Question

Je dois établir certaines communications via un port série Ruby. D'après mes recherches, il apparaît qu'il n'y a pas beaucoup de bibliothèques modernes pour les communications en série et que le matériel le plus récent que je puisse trouver date de 2006. Y a-t-il des joyaux que je ne connais pas?

Je dois finalement maintenir les communications avec un périphérique série connecté à l'USB (je ne peux pas comprendre le port sans problème) pour les communications dans les deux sens, comme ça (pseudo-code Ruby-esque).

def serial_write_read
  if serial.read == "READY"
    serial.write "1"
    until serial.read == "OK"
      serial.write "5"
    end
    return when serial.read == "DONE"
  end
end
Était-ce utile?

La solution

La spécification du port série n'a pas changé depuis toujours, je ne m'inquiéterais pas de l'âge des bibliothèques.

Je suppose que vous avez vu ceci

Voici quelqu'un qui a eu la bibliothèque Ruby-SerialPort mentionnée pour fonctionner sur les macs cette année.

Il existe également cet ancien message de ruby ??talk, sur l’interfaçage avec l’API série Win32.

Autres conseils

Simplement parce que la recherche de ruby-serialport vous mènera parfois ici:

Le dépôt de github de toholio ne semble plus être actif (à partir de 09/2010). Le joyau publié provient de

http://github.com/hparra/ruby-serialport

Bien que le standard de série n'ait pas changé, la façon dont Ruby Gems interagit avec les extensions Ruby C a suffisamment changé au fil des ans pour que l'extension de port série RubyForge ne fonctionne pas correctement. Au fil des ans, RubyForge a eu quelques correctifs pour remédier à cela, mais cela n’a pas été joli. La bonne nouvelle est que Github a permis une incroyable accélération de l'activité de nettoyage de l'extension du port série Ruby. Au moins trois personnes différentes effectuent une ramification croisée de leur code de port série sur Github. Vous pouvez effectuer une recherche sur Github, mais je pense que Toholio possède le dernier code, qui recode et reconditionne le port série Ruby en tant que Ruby Gem. (Oui!)

http://github.com/toholio/ruby-serialport/tree/master

Cela fonctionne très bien pour moi sur Linux, en résolvant le conflit précédent avec la dernière version de Ruby Gems. Sous Windows, j'ai toujours du mal à le faire fonctionner. Compiler des extensions Ruby sous Windows n’est jamais très facile, mais c’est tout un "noisetier". Je suis simplement heureux que les gens travaillent à nouveau sur le support du port série Ruby. J'ai demandé à Toholio de générer une gemme Windows binaire, ce qui résoudrait les problèmes de tout le monde, et il dit que cela figure sur sa liste.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top