Ich habe mir das Teil mal vorgenommen und in ein Gem umgearbeitet. Es sollte jetzt zudem 1.9-kompatibel sein. Vorweg: Mein Laptop hat keinen COM-Port. Ich habe also
nichts testen können, du trägst das volle Risiko. Du kannst mir aber jeglichen Fehler sagen, ich versuche das dann zu korrigieren.
Von mir gemachte Änderungen:
- Die Klasse heißt jetzt Win32Serial2.
- Die Instanzmethode #open ist überflüssig und wird jetzt gleich mit Win32Serial2.new erledigt.
- Alle Methoden werfen einen IOError bei Fehlern.
- Die Klassenmethode Win32Serial2.open funktioniert wie File.open, d.h. sie ruft automatisch noch #close auf, auch bei Exceptions
- Win32Serial2::VERSION hinzugefügt (Library-Version)
Zur Installation benötigst du das Development Kit des RubyInstallers. Dann wechselst du in das entpackte Verzeichnis und führst nur
aus. Läuft die Kompilierung erfolgreich ab, dann hast du jetzt ein
pkg/-Verzeichnis mit dem Gem drin, das du ganz normal mit
--local installieren kannst.
Vale,
Quintus
PS: Ich habe die Library umgearbeitet, die du auch heruntergeladen hast - deren API stimmt allerdings nicht mit dem in der von dir genannten Doku überein - wundere dich also nicht, wenn mein Gem nicht zur Doku passt. Eine Klasse Win32SerialPort::SerialPort war da gar nicht enthalten.
PPS: Ich habe mich auch nicht weiter in die Library eingearbeitet, eine Dokumenation liegt dementsprechend nicht bei. Ich lade dich aber ein, sie einfach in die C-Datei reinzuschreiben; sie wird automatisch in den Dokumentationstask "rake rdoc" aufgenommen.
(Allerdings liefert Darkfish grausige Ergebnisse, der ist für C-Code völlig unbrauchbar. Nimm entweder das steinalte RDoc, dass mit Ruby mitgeliefert wird oder hanna, die können das.)