3

シリアル ポートを備えた GPS があり、シリアルから USB への転送ケーブルが付いています。USB 経由でラップトップに接続され、16 進数でデータを送信しています。このデータを Ubuntu の C++ コードで使用したいと考えています。どこから始めて、どうすればデータを読み取ることができるのでしょうか?

4

2 に答える 2

4

まず、ファイル (fstream、FILE *、または OS ハンドル) を「/dev/ttySn」 (nはデバイスの番号) に開き、読み取ります。

#include <string>
#include <fstream>
#include <iostream>

std::string str; 
std::fstream f; 
f.open("/dev/ttyS0"); 
while (f >> str)
{
   std::cout << str;
}

それは ttyS0 の内容を「エコー」するはずです - もちろん、それはあなたのデバイスの「間違った」ポートかもしれませんが、それがどこに接続されているかを知っていれば、それは仕事をするはずです. ポートの構成を設定する必要がある場合もあります。たとえば、sttyコマンドを使用すると、ボーレートが最も重要になるためstty -F /dev/ttyS0 19200、ボーレート (実際にはビットレート) を 19200 ビット/秒に設定します。他のほとんどのパラメーターはおそらく問題ありません。

于 2013-04-30T13:15:05.250 に答える
0
#include <iostream>
#include <fstream>

int main () {
    std::string str;
    std::fstream f;
    f.open("/dev/ttyS0");
    while (f >> str)
    {
        std::cout << str;
    }
}

ここに作業スニペットがあります。この質問をしたとき、必要なincludeステートメントと正しい名前空間を見つけるのに苦労しました。

この回答は、Mats Petersson の回答に基づいています

編集:これは、Mats Peterssonの回答へのコメントとしてより適切です。コメントは次のようになります。

" #include fstreamfor fstreamand #include iostreamfor string and . andcoutの名前空間は."fstreamcoutstd

于 2016-11-15T12:49:10.883 に答える