2010-11-29 12 views
2

Im Grunde habe ich ein wirklich einfaches C++ Programm, wo ich versuche einen seriellen Port zu öffnen (der eigentlich ein USB-> RS232 Konverter ist, sollte von libserial unterstützt werden) aber den Code friert bei Open() ein. Keine Fehler, keine Ausnahmen, nichts, es tut einfach nichts. Es scheint auf anderen seriellen Ports außer diesem spezifischen zu funktionieren. Der serielle Port funktioniert auch mit cutecom und anderen Terminals (und ist von keinem anderen Programm reserviert). Ich habe versucht, vor und nach dem Öffnen des Ports zu konfigurieren, aber es scheint keine Rolle zu spielen. Ich kann auch nichts über Handshake in der (recht schlechten) Dokumentation von libserial oder in den Headern sehen, vielleicht das Warten auf einen Handshake oder sowas weiß ich nicht ... Libserial0 Version 0.6.0 und Ubuntu 10.10. Was ist falsch oder wie kann ich versuchen, dies zu debuggen ...? Irgendwelche andere vorgeschlagene Bibliotheken/Weisen, die serielle Schnittstelle mit C++ zu benutzen?Libserial Open() friert in meinem C++ Programm ein

#include <SerialStream.h> 
#include <iostream> 

int main() { 

LibSerial::SerialStream device_; 

device_.SetBaudRate(LibSerial::SerialStreamBuf::BAUD_9600); 
device_.SetCharSize(LibSerial::SerialStreamBuf::CHAR_SIZE_8); 
device_.SetNumOfStopBits(1); 
device_.SetParity(LibSerial::SerialStreamBuf::PARITY_NONE); 
device_.SetFlowControl(LibSerial::SerialStreamBuf::FLOW_CONTROL_NONE); 

device_.Open("/dev/ttyUSB1"); 

} 

Antwort

1

ich libserial ein paar Jahren sah vor, wenn ich eine Steuerschnittstelle an ein Modem schreiben wurde mit auf die Fernbedienung über RS-232 erlaubt. Am Ende ging ich mit der ASIO-Implementierung von Boost für die Verwendung des Serialports.

Nicht sicher, ob Boost.ASIO für Sie arbeiten wird oder nicht. aber in meiner Erfahrung hatte ich es nicht hängen an mir ....

0

Ich fand auch dieses Problem mit einem USB-Seriell-Konverter (pl2303). Es scheint, dass die Einstellung von VTime das Problem löst.

+0

wirklich? Könntest du uns zeigen? – Jasonw