問題タブ [qtserialport]

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.

0 投票する
2 に答える
3521 参照

qt - Qt5 QSerialPort 書き込みデータ

送信メッセージ間の遅延を使用して、シリアルポートにデータを書き込むにはどうすればよいですか? これは私のコードです:

この関数を呼び出すと、デバイスにエラー メッセージが表示されます。

ありがとうございました。

0 投票する
1 に答える
896 参照

qt - PyQtとシグナルを使用してqt5serialport.dllでsegfaultを取得する

現在、Windows XP SP3、Python 3.3.3、および PyQt5 5.1.1 で、QSerialPort を使用して信号を発信するときに発生する奇妙なセグメンテーション違反に苦しんでいます。

これが純粋な Qt と C++ で同様に発生するかどうかは本当に疑問ですが、私の C++ は恐ろしく、実行中のツールチェーンがセットアップされていません。

最小限のサンプル コード (申し訳ありませんが、これ以上単純化できませんでした):

これを実行し、シリアル ポート経由でバイトを受信すると、qt5serialport.dll で「アクセス違反」(別名 segfault) が発生します。最初に「開始」をクリックしたときに発生することもあれば、2回目以降に発生することもあります。

これまでに観察したいくつかのこと:

  • 信号には、最初のパラメーターとして bool/int が必要であり、その他のパラメーターが必要です。そうしないと、トリガーされないようです。

  • ポートが閉じられるに信号を送信すると ( self.ser.close())、トリガーされないようです。

  • Linux (Archlinux、Python 3.3.2、PyQt 5.1.1) ではこれを再現できませんが、2 回目の起動後は常にQSocketNotifier: Invalid socket specified.

何を与える?私は何か間違ったことをしていますか?それとも [Py]Qt のバグですか?

0 投票する
1 に答える
143 参照

qt4 - QtSerialport の一貫性のない接続の問題

過去にこのライブラリを Qt4 で使用したことがありますが、現在、より多くの受信データを含むプロジェクトで使用しようとしています。プログラムで正しい COM ポートに接続しようとすると、パケットが受信されていません。別のターミナル プログラムを使用すると、一定のデータ フローが表示されます。COM ポートへの接続を何度か試みた後、私のプログラムは最終的に接続して正しく動作します。コマンドが実行されたときに、プログラムが一貫して COM ポートに接続できるようにする必要があります。私のコードの何が問題なのかについて何か考えがある人がいれば、本当に助けていただければ幸いです。

私はそれから次のように読みます:

等...

0 投票する
1 に答える
1694 参照

c++ - Qt サードパーティ ライブラリの静的リンク (QtSerialPort)

静的リンクが機能していたことが判明しましたが、Qt ライブラリに対してのみです。サードパーティ ライブラリ QtSerialPort が静的にリンクしていません。再調査の結果、このライブラリを静的にビルドするか、.pro ファイル内の .pri ファイルに直接リンクする必要があることがわかりました。

QtSerialPort は静的リンク用に設計されていないように見えるため、どちらの方法もわかりません。

私が本当に理解していない.priメソッドは、次の2つのリンクで漠然と説明されています: http://qt-project.org/forums/viewthread/15223 http://www.qtcentre.org/archive/index.php /t-54505.html

これらの方法のいずれかを機能させる方法について、誰かアドバイスがありますか? それとも別の方法でしょうか?

また、MSVCP100.dll は静的にリンクしていません。

================================================== ================================

スタンドアロン アプリケーションを作成できるように、Qt にライブラリを静的にリンクさせようとしています。Qt を静的にビルドしてから静的アプリケーションをビルドする方法に関するさまざまなチュートリアルに従いましたが、うまくいきません。アプリケーションのサイズが 79KB から 7+MB に増加したため、静的リンクを使用して Qt を正常にビルドできたと思いますが、QtCore4.dll と QtSerialPort.dll が見つからないというエラーが引き続き発生します。また、この静的構成を使用するときに発生する別の問題は、それほど深刻ではありませんが、プログラムを閉じると、Windows がクラッシュしたと見なし、MyProgram.exe が動作を停止したというウィンドウが表示されることです...

Qt 4.8.5 で MSVC 2010 を使用している Windows マシンを使用しており、サードパーティ ライブラリ QtSerialPort を使用しています。

私が読んでいるガイドに従って行ったことは次のとおりです。

qt-everywhere-opensource-src-4.8.5.zip をダウンロードして解凍します /mkspec/mwin32-msvc2010/qmake.conf を開き、次の行を次のように変更します

次に、MSVC2010 コマンド プロンプトを開き、これに cd します。次に、コマンドを入力します

これが完了したら、プロジェクトを開いて追加します

.pro ファイルに。QtCreator で、[プロジェクト]、[キットの管理]、[Qt バージョン] の順に移動し、生成した qMake を参照します。このバージョンの qMake で新しいキットを追加します。次に、すべてをクリーンアップしてこの新しいキットに切り替え、QtCreator から qmake を実行します。次に、msvc2010 コマンド プロンプトを使用して、ファイルが生成されたディレクトリに移動し、

これにより、かなり大きな .exe が生成されますが、前述したように、まだいくつかの .dll に依存しています。

0 投票する
1 に答える
5475 参照

c++ - Ubuntu で QSerialPort が「/dev/ttyUSB0」を開くことができない

USBシリアルケーブルを介してデスクトップPCにマイクロコントローラーを接続しようとしています。私のデスクトップ PC の OS は Ubuntu 13.10 です。USBシリアルケーブルはTTL-232R-3V3 (FTDI)です。

これが私のソースコードです。プログラムを実行すると、失敗に終わります。(この場合、「Fail」がコンソールに出力されました。)

この記事によると、次のステートメントを .pro ファイルに追加する必要があります。

USBシリアルケーブルを差し込むと、Ubuntuでは「/dev/ttyUSB0」として認識されます。うまくいきそうです。

パーミッションのトラブルを避けるために、私のユーザー名はgpasswdコマンドでダイヤルアウトグループに追加されます。その結果、ターミナルソフト上でUSBシリアルデバイスと通信できるようになりました。

しかし、QSerialPort の問題を解決できません。誰にもアイデアはありますか?どんな助けでも大歓迎です。

前もって感謝します!

0 投票する
2 に答える
3756 参照

c++ - QSerialPort::readLine が MS Windows で期待どおりに動作しない

USBシリアルケーブルを介してマイクロコントローラーをデスクトップPCに接続しようとしています。私のデスクトップ PC の OS は Windows 8.1 で、USB シリアル ケーブルは TTL-232R-3V3 です。(FTDI) (Qt バージョン: 5.2.0 beta1、QtCreator バージョン: 3.0、コンパイラ: MSVC2012)

現在、リード/ライト ループバック テストを試みているため、USB シリアル ケーブルの RX/TX ピンが相互に接続されています。

これが私のコードです。

プログラムの実行を開始すると、結果が予想とは異なります。送信データは先頭行のみ受信可能です。そのため、「Read data: #1 Send data line」がコンソールに出力されます。しかし、送信された残りのデータは決して受信されません。誰かが理由を知っていますか?

どんな助けでも大歓迎です。前もって感謝します。

編集: Papp のコメントに従ってコードを修正しました。その後、期待どおりに動作します。送信されたすべてのメッセージが受信されました。

readLine() や canReadLine() の使い方を誤解しているということですか?

EDIT 2回目:次のコードも機能します。

0 投票する
2 に答える
1350 参照

c++ - QtSerialPort の例が失敗する

私は Qt 5.1 を使用しており、アプリ (v4.8.4 で QextSerialPort を使用して動作していた) が通信に失敗したとき、...\5.1.1\Src\qtserialport\examples\serialport\terminal の例を試しました。そしてそれも失敗します。

COM ポートをエミュレートする単純な USB ドングルがあります。RealTerm を使用している場合、AT コマンドをそれに送信して、問題なく OK を返すことができます。

しかし、Qt に付属している端末の例は Qt と通信しません。API スヌーパーを調べたところ、WaitCommEvent と WriteFile に対して「997: オーバーラップされた I/O 操作が進行中です」というエラーが返され、失敗しました。

Windows 7 で実行していて、exe と DLL を Windows 8 マシンにコピーしましたが、通信に失敗しました (ただし、API スヌーピングは行っていません)。

誰にも何を試してみるべきか考えがありますか? 変更されていないサンプルアプリが単に失敗するのはどうしてでしょうか? 私は混乱しています。

0 投票する
2 に答える
3353 参照

c++ - Qtはシリアルポートで全バイトを送信します

QtSerialPort を使用するこの単純なコードがあります。

私のシリアルの結果は {2, 50} です。私が送信できる最大数は 128 だと思います (文字は -128 から 128 に移動します)。0から255までの番号を送信する方法はどこにありますか? unsigned char を使用しようとしましたが、「書き込み」メソッドが機能しません。QByteArray でも同じ問題が発生します。

皆さん、ありがとうございました。

0 投票する
2 に答える
960 参照

c++ - シリアル ポート クラス Qt C++ の継承

serialport クラスにいくつかの機能を追加したいので、それを継承していくつかの機能を追加したいと考えています。しかし、問題が発生しました。クラスを次のようなヘッダー ファイルに配置します。

ターミナルの例を変更しています: http://qt-project.org/doc/qt-5.1/qtserialport/terminal-mainwindow-cpp.html

ここで、MainWindow コンストラクターで serialport オブジェクトが作成されます。

ただし、 mySerialport を宣言して試した後

コンストラクタに関する無数のエラー メッセージしか表示されません。

質問:
1. エラーは何でしょうか? 基本かと思います。2. シリアルポートが MainWindow を継承しているのはなぜですか? MainWindow デストラクタが呼び出されたときに serialport が削除されるのは Qt のことですか?

0 投票する
2 に答える
3388 参照

c++ - Windows 7 での qt 5.2 シリアル ポート書き込みの問題

ハードウェアで FTDI シリアル ポート CHIP を使用しています。現在、Linux で動作するコードがあり、Windows 7 に移行しました。奇妙な問題がいくつか発生します。

問題: これを行う他のコンソール アプリケーションを実行しないと、シリアル ポートにデータを書き込むことができません。

だから、すべてを読んでループするだけです。ハードウェアは何も送信しないため、読み取りは無限ループにすぎません。書き込みプログラムを閉じて実行すると、正しく実行されます。

read all を実行すると動作しますが、read all を実行しないと動作しません。私たちは何を間違っていますか?ありがとう。