2012-02-20 11 views
1

私は、自分のアプリケーションを使って価値のある別のアプリケーション(私が書いたものではない)と通信するデバイスを持っています。私はansioライブラリを見つけた、私はそれをインストールし、開始するためのthisチュートリアルを見つけた。USBポートを開き、asioライブラリを使ってデータを受信する方法は?

質問:どのようにデバイス名をポート名に設定するのですか? lsusbを使用して、私が取得:

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 001 Device 004: ID 0ac8:305b Z-Star Microelectronics Corp. ZC0305 Webcam 
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 

は私がウェブカメラのデバイスを扱うようにしたい:

Bus 001 Device 004: ID 0ac8:305b Z-Star Microelectronics Corp. ZC0305 Webcam 

、私は書いた:

try { 
    SimpleSerial serial("/dev/ttyUSB4",115200); // get SimpleSerial class on link above 
    cout<<serial.readLine()<<endl; 
    return 0; 

} catch(boost::system::system_error& e) 
{ 
    cout<<"Error: "<<e.what()<<endl; 
    return 1; 
} 

をしかし、それは与えられた:Error: open: No such file or directory 修正する方法この?前もって感謝します。

+0

あなたのプログラムを 'strace'の下で走らせ、文字列'/dev/ttyUSB4'を探して、その点を中心に関数呼び出しを調べて、ライブラリが実際に何をしているのかを手がかりにしてください。 –

答えて

1

シェル内にls /dev/tty*と入力し、結果のポートの1つを選択します。残念ながら、どちらが正しいかは確かに言えません。そうでなければ、dmesgの出力を処理して正しいポートを抽出することができます。

関連する問題