0

シリアルポートにアクセスする必要があるテストプログラムを書いています。今はVisual studio 2012でやっていますが、後でLinuxに移植したいです。(私の Pandaboard で使用するため)
Win と Linux の間でほぼ同じインターフェイスを持つシリアル ポートにアクセスする方法を教えてください。
以前は Labview でやっていたのですが、今は C++ に変えたいと思ってい
ます。どうもありがとうございました。

4

2 に答える 2

3

Boost.ASIOは十分に文書化され、十分にテストされており、何千人もの人々によって査読されており、クロスプラットフォーム方式でシリアル ポート通信を完全にサポートしています。具体的なドキュメントはここにあります。

そうは言っても、最新の C++ の中程度のスキル レベルを前提としているため、この言語を初めて使用する場合、学習曲線は少し急勾配になる可能性があります。

于 2012-11-20T05:03:42.697 に答える
2

シリアルポートインターフェイスにはそれほど多くはありません...その下に実装の詳細をすべてラップできるはずです。

class ISerialPort
{
public:
   void open(const std::string &serialPortName) = 0;
   void close() = 0;

   void write(const vector<char> &data) = 0;
   vector<char> read(size_t bytesToRead) = 0;
}

これは、2つの異なるプラットフォームが実装する共通のヘッダーであるため、あまり「インターフェース」ではありません。

編集:Linuxのシリアルポートには、デバイスノードを開くことでアクセスします。/ dev / ttyS0(シリアルポート0)など。Windowsでも同じことをしますが、デバイスノードを開く代わりに、ファイル(COMポート)を開きます。COM1など。

Linuxでは、デバイスノードを開くなどのプラットフォームに依存する問題に飛び込んでいます。Linuxでは、ファイル(COMポート)を開きます。

Google c ++ windows/linuxシリアルポートとより具体的な質問で戻ってきます。あなたはちょうどインターフェースについて尋ねました;)

于 2012-11-20T04:28:36.280 に答える