Linux 上の C++ でシリアル インターフェイス経由で Arduino と通信するにはどうすればよいですか?
-
05-07-2019 - |
質問
RFID リーダーを Arduino ボードに接続しています。シリアル インターフェイス経由で接続したいと考えています。また、RFID リーダーが信号を省略したとき ((RF)ID を読み取ったとき)、C++ プログラムでその信号を取得したいと考えています。
Arduino から RFID をシリアルに印刷するだけのコードはすでにあります。
私が知らないのは、 C++から読み取る方法 Linuxでは?
見てきました ライブラリシリアル, 、これは簡単に見えます。しかし、どうすればいいですか C++ プログラムが信号に反応して RFID を読み取るようにします。, 、聞き続ける代わりに?これは必要ですか?
編集:私が読んだほとんどの例では、(C++) プログラムは入力を送信し、出力を受け取ります。Arduino からの出力を聞いて受信したいだけです。
解決 2
シリアルインターフェイスから非同期に読み取るBoost :: Asioライブラリを見つけました。 Boost :: Asioドキュメント
他のヒント
UNIX では、select() 呼び出しを使用して入力を待ちます。select() 呼び出しはスリープのように動作します。カーネルがハードウェア割り込みを受信して select() をトリガーするまで、CPU は使用されません。
Arduino PlaygroundのInterfaceセクションの Communications には、 Linux TTYとしてのArduinoとのインターフェースを含む、インターフェースの例。
構文とプログラムフォーラムとArduinoサイトのソフトウェア開発フォーラム。過去には、多くの異なる言語やコンピューターとのインターフェースについて議論がありました。
そして最後に、 Processing と配線サイト。 Arduino IDEは処理言語に基づいており、Wiring環境と開発ボードはArduinoに関連しています。どちらのサイトにも多くの例があり、さらに多くのリソースへのリンクがあります。
編集:実際の質問には答えなかったことがわかりました。これらはすべて一般的な通信リソースですが、一部には、新しいRFID入力をコンピューターに警告する方法に関するヒントがあります。
こんにちは、このためのシンプルなライブラリを作成しました: cArduino https://github.com/ranma1988/cArduino C ++は、Arduinoポートの自動検出、読み取り、書き込みを見つけることができます