シリアルポートにアクセスする必要があるテストプログラムを書いています。今はVisual studio 2012でやっていますが、後でLinuxに移植したいです。(私の Pandaboard で使用するため)
Win と Linux の間でほぼ同じインターフェイスを持つシリアル ポートにアクセスする方法を教えてください。
以前は Labview でやっていたのですが、今は C++ に変えたいと思ってい
ます。どうもありがとうございました。
2 に答える
Boost.ASIOは十分に文書化され、十分にテストされており、何千人もの人々によって査読されており、クロスプラットフォーム方式でシリアル ポート通信を完全にサポートしています。具体的なドキュメントはここにあります。
そうは言っても、最新の C++ の中程度のスキル レベルを前提としているため、この言語を初めて使用する場合、学習曲線は少し急勾配になる可能性があります。
シリアルポートインターフェイスにはそれほど多くはありません...その下に実装の詳細をすべてラップできるはずです。
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シリアルポートとより具体的な質問で戻ってきます。あなたはちょうどインターフェースについて尋ねました;)