2

基本的に、シリアルポート(実際には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");

}
4

2 に答える 2

1

数年前、RS-232を介したリモート制御を可能にするモデムへの制御インターフェイスを作成する必要があったときにlibserialを調べました。結局、シリアルポートを利用するためのBoostのASIO実装を採用しました。

Boost.ASIOがあなたのために働くかどうかわからない。しかし、私の経験では、私はそれが私にかかっていませんでした....

于 2010-11-29T18:00:20.447 に答える
0

USBシリアルコンバーター(pl2303)を使用してこの問題も発見しました。VTimeを設定すると問題が解決するようです。

于 2011-10-11T21:28:38.857 に答える