問題タブ [libserial]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - libserial 読み取りシリアル ポート
ライブラリを使用libserial
して、C++ を使用してモデムとやり取りしています。C++ コードは AT コマンドを送信します。
ERROR
モデムは、 または のいずれかの応答で応答しますOK
。
応答を読み取るための C++ コード:
OK
応答が の場合、モデムは別のコマンドを送信し、応答が の場合ERROR
、モデムは最初のコマンドを再送信するように応答を処理したいと考えています。
c++ - libserial エラー: ボーレートを 115200 に設定できません
Libserial を使用して USB-uart モジュールと通信しようとしています。
以下は、最初の部分の私のコードです。
同じUSBモジュールを使用してUbuntu 12.04および13.04で実行すると、すべて
エラー: ボーレートを設定できませんでした。
いくつかのテストを行った結果、ボー レートを 115200 以上に設定すると、このエラーが発生することが最終的にわかりました。57600 および 19200 で問題なく動作します。
しかし、ボーレートを 115200 に設定する方法はあるのでしょうか? シリアル テスト ツールをダウンロードしました。これは 115200 として機能します (ただし、メッセージの内容は確認していません。送信 LED が点滅していることに気付きました)。
それともハードウェアの制限なので、ボーレートを上げたい場合は別のモジュールを購入する必要がありますか?
ありがとう
===========
アップデート:
ハードウェアに問題はありません。115200 を使用して Windows VS でテストしたところ、問題なく動作しました。しかし、2 つの Ubuntu デスクトップ (12.04 と 13.04) では失敗しました。
設定後にボーレートを出力します
serial_port.SetBaudRate(SerialStreamBuf::BAUD_115200);
int レート = serial_port.BaudRate();
cout << SerialStreamBuf::BAUD_115200 << endl;
cout << レート << endl;
結果は、それらの値が同じであることを示しています。両方とも です4098
。
.good()
次に、すべての部分にコメントを付けようとしましたが、そのSetBaudRate
部分の後、プログラムは正常に開始されましたが、送信 LED が点滅しません。したがって、ボーレートの設定に実際には何か問題があると思うので、シリアルの初期化は失敗しましたが、返されるボーレートは正しいです。
今、私は次に何をすべきか分かりません...
私のコードをすべて見る必要がある場合
g++ - LibSerial を使用したエラー
LibSerial を使用していくつかのコードをビルドしましたが、コンパイルすると次のエラー メッセージが表示されます。
エラーをリンクしていると思いますが、問題を解決する方法がわかりません。
c++ - LibSerial から SerialStram.h をインクルードしようとするとエラーが発生する
COM ポートを介したシリアル通信 (ATMega32A を使用) に LibSerial のクラスを使用しようとしています。SerialStream.h をインクルードするとすぐに、ファイル SerialPort.h からいくつかのエラー メッセージが表示されます。
ここで取得したエラーを確認できます。 http://i.stack.imgur.com/s8ZdC.png
私は LibSerial のインストールを完全には理解していなかったので、クラスの使い方が間違っていると思います。私はコンパイラ QT Creator を使用しており、OS は Windows 7 です。詳細が必要な場合は、お気軽にお問い合わせください。
c++ - C++ libserial スキップ 0x09
Mavlink プロトコルを介して通信する Pixhawk フライト コントローラからシリアル経由でデータを読み取ろうとしています。17 バイトを送信します。最初の 3 つは 0xFE、0x09 で、その後にメッセージごとにインクリメントするカウンターが続きます。これは GtkTerm で確認済みです。
ただし、次のコードを実行すると、0x09 (2 番目のバイト) は常にスキップされるため、17 バイトの各メッセージのうち 16 バイトのみが受信されます。
何か案は?ありがとう、ジェームズ。
c++ - Linuxでlibserialをコンパイルするには?
私のプログラムは、シリアル デバイスと通信する必要があります。Ubuntu 14.04 LTS で開発しています。libserial を見つけて使用しようとしましたが、コンパイルできません。v0.6.0rc2 をダウンロード、コンパイル、インストールしました。ええ、それは rc ですが、sourceforge でより人気があり、安定版リリースは非常に古いものです。より良いライブラリを知っている場合は、コメントで教えてください。
ドキュメントに従って以下に示すコードはコンパイルされません。
これは私が得るエラーです:
問題の行をに変更し、my_serial_stream.Open( "/dev/ttyS0" , ios::out ) ;
namespace を追加しましstd
た。今、私はこのエラーを受け取ります:
c++ - libserial readsome が奇妙な値を返す (エラーではない)
私のOS:Ubuntu 14.04
IDE: 日食火星
ライブラリ: GCC、libserial
シリアルバス経由で通信するためにlibserialを使用しています。
ポイント
readsome()
正しく読み取り、バッファーをいっぱいにしますが、その戻り値は、読み取った値の数ほど期待されていません。常に「6394433」を返します。
ここで何がうまくいかないのですか?
c++ - OS X で LibSerial をコンパイルできない
私はArduinoとシリアルポート通信を使用するプロジェクトに取り組んでいます。しかし、ラップトップを Win から Macbook Pro に切り替えたので、シリアル通信の代替手段を見つけなければなりません。私は c++ を使用しているため、いくつかの調査の結果、LibSerial を使用することにしました。どういうわけか私はそれをコンパイルすることはできません。手順は次のとおりです。
「make」ステップで、g++ print ステートメントは次のようになります。
しかし、ソース コードを調べると、クラス PosixSignalDispatcher::CannotAttachHandler が明確に定義されています。どの部分が間違っているかわかりません。
いくつかの情報を提供します:私はOS X Yosemiteを使用しており、LibSerialのバージョンは0.6.0rc2です
読んでくれてありがとう。
c++ - シリアル デバイスから読み取れません
シリアル デバイスMipex-02 ガス センサーからデータを読み取るライブラリを作成しようとしています。残念ながら、私のコードはシリアル接続を正しく開いていないようで、その理由がわかりません。
完全なソース コードはgithubで入手できます。具体的には、シリアル接続の構成は次のとおりです。
ここでの列挙型の意味は十分に明白だと思います。値は取扱説明書からのものです。
UART の特徴: 交換レート – 9600 ボー、8 ビット メッセージ、1 ストップ ビット、パリティ チェックなし
そのため、最初は傍受を使用してテストしていましたが、完全に正常に機能しました。しかし、デバイスに直接接続しようとすると、何も読み取れませんでした。デバイスの RX LED が点滅するので、明らかにプログラムが何かを送信できますが、インターセプトとは異なり、TX LED は決して点滅しません。
したがって、データが正しく送信されていないかどうか、すべてが送信されていないかどうかはわかりません。傍受が途中ではない場合にのみ発生するため、接続を盗聴することさえできません。Interceptty のコマンドラインはinterceptty -s 'ispeed 9600 ospeed 9600 -parenb -cstopb -ixon cs8' -l /dev/ttyUSB0
(-s オプションが stty に渡されます) であり、理論的にはコードで設定されているオプションと同じです。
前もって感謝します。