基本的に、シリアルポート(実際にはUSB-> RS232コンバーターであり、libserialでサポートされているはずです)を開こうとしている非常に単純なC ++プログラムがありますが、コードはOpen()でフリーズします。エラーなし、例外なし、何もありません、それはただ何もしません。この特定のポートを除いて、他のシリアルポートで動作するようです。シリアルポートは、cutecomや他の端末でも機能します(他のプログラムによって予約されていません)。ポートを開く前後に設定を試みましたが、問題ではないようです。また、libserialの(かなり貧弱な)ドキュメントやヘッダーでハンドシェイクについて何もわかりません。おそらくハンドシェイクか何かを待っているのかもしれませんが、わかりません...Libserial0バージョン0.6.0とUbuntu10.10。何が問題なのか、どうすればこれをデバッグできますか... ?C ++でシリアルポートを使用するために提案された他のライブラリ/方法はありますか?
#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");
}