Hai bisogno di assistenza con le comunicazioni della porta seriale in Ruby
-
03-07-2019 - |
Domanda
Devo fare alcune comunicazioni su una porta seriale in Ruby. Dalla mia ricerca, sembra che non ci siano molte biblioteche moderne per le comunicazioni seriali e il materiale più recente che posso trovare è del 2006. Ci sono gemme di cui non sono a conoscenza?
Alla fine ho bisogno di mantenere le comunicazioni con un dispositivo seriale collegato a USB (non riesco a capire la porta senza problemi) per comunicazioni avanti e indietro in quel modo (un po 'di codice pseudo-rubino).
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
Soluzione
Le specifiche della porta seriale non sono cambiate per sempre, non mi preoccuperei di quanti anni hanno le librerie.
Suppongo che tu abbia visto this articolo del 2006 su ruby ??e porte seriali
Ecco qualcuno che ha ottenuto la Ruby-SerialPort menzionata lì per lavorare sui mac quest'anno.
C'è anche questo vecchio post from ruby ??talk, sull'interfacciamento con l'API seriale Win32.
Altri suggerimenti
Solo perché la ricerca di ruby-serialport ti porterà a volte qui:
il repository github di toholio non sembra più essere attivo (dal 09/2010). La gemma pubblicata proviene da
Sebbene lo standard seriale non sia cambiato, il modo in cui Ruby Gems interagisce con le estensioni di Ruby C è cambiato abbastanza nel corso degli anni in modo che l'estensione della porta seriale di RubyForge non funzionasse bene. Ci sono state alcune patch nel corso degli anni su RubyForge per risolvere il problema, ma non è stato carino. La grande notizia è che Github ha permesso un'incredibile accelerazione dell'attività per ripulire l'estensione della porta seriale Ruby. Almeno tre persone diverse stanno ramificando il proprio codice di porta seriale su Github. Puoi cercare su Github, ma credo che Toholio abbia l'ultimo codice, che ricodifica e riconfeziona la porta seriale di Ruby come una gemma di Ruby. (Yea!)
http://github.com/toholio/ruby-serialport/tree/master
Funziona benissimo per me su Linux, risolvendo il conflitto precedente con l'ultima versione di Ruby Gems. Su Windows, ho ancora problemi a farlo funzionare. Compilare le estensioni di Ruby su Windows non è mai molto semplice, ma questa è un'intera "lattina di vermi". Sono solo felice che le persone stiano lavorando di nuovo sul supporto della porta seriale Ruby. Ho chiesto a Toholio di generare un gioiello binario di Windows, che risolverebbe i problemi di tutti, e dice che è nella sua lista da fare.