問題タブ [qextserialport]
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++ - qextserialport 経由でファイルを送信する
Qt で qextserialport クラスを使用して、デバイス間のシリアル伝送を実装しています。ここで、シリアルポートを使用して USB 経由で接続されたデバイス間でファイルを送信する必要があります。過去数週間、さまざまな機能にシリアルポートを使用してきましたが、どこから実装を開始すればよいかわかりません。読み込めるデータがなくなるまでイベントドリブンでデータを読み込んで、ファイルのサイズ(バイト数)を事前に決定し、データと一緒に送信して、データが欠落した場合に明確にすることを考えました。また、CCIITT 16 ビット チェックサムを計算する正しい関数も持っているので、それをチェックにも使用できます。したがって、私の質問は次のとおりです。
Qt の qextserialport クラスを介してファイルを送受信する最も簡単で効果的な方法を説明してくれるサイトへのリンクを送ってくれませんか。どんな助けでもawsumになります!
c - Linux ではシリアルポートの設定は永続的ですか?
シリアル ポートから読み取る 2 つのプログラムがあり、もう一方の端にデバイスが接続されています。最初のプログラムは Qt フレームワークを使用して作成され、QextSerialPort を使用してシリアルと通信します。2 番目のプログラムは純粋な C で書かれています。
問題は次のようなものです:
システムの起動直後、純粋な C プログラムはシリアルからのデータの読み取りに問題があります。pselect (serial_fd を監視している) が serial_fd で戻ってデバイスからデータを読み取ることはありませんが、デバイスがデータに反応するため、データが適切に送信されることがわかっています。
2 番目のプログラム (Qt で記述) を開始すると、すぐにデバイスからデータを送受信しますが、問題ありません。
さらに、Qt プログラムを開始してから純粋な C プログラムを開始した後、システムを再起動するまで、純粋な C が突然問題なく動作します。Qt で書かれたプログラムは、初期化中にシリアル ポートの設定を永続的に変更するように見えますが、これは可能ですか?
以下は、シリアル ポートを初期化する Qt プログラムのコード スニペットです。
そして、これは純粋なCプログラムからのものです:
何か足りないものはありますか?
よろしくマレク
qt - Qt qextserialport ライブラリをコンパイルできません
qextserialport ライブラリを使用しようとしています:
ダウンロード:
git clone https://code.google.com/p/qextserialport/
Qt で qextserialport.pro を開く
コンパイル... (デバッグモード)
エラーはありませんが、ウィンドウが表示されます:
実行可能ファイルが見つかりませんでした。1 つ選択してください。
どちらを選ぶべきですか?
注意:Qt 3.1.1を使用してMacOSX 10.6を使用しています
c++ - ポートからの読み取り中に qserialport データが欠落しているが、使用可能な 9 バイトが返される
qextserialport
クラスのデータ損失が発生する関数 readdata を使用してポートから読み取り中に
たとえば、serialobj->bytesavailable
9 バイトを返しますがserialobj->readData
、pic マイクロコントローラーからは 2 文字のみを返します。
c++ - Qt QextSerialPort 静的ライブラリ
Qt 4.8.5 で使用する Windows プラットフォーム用の QextSerialPort の静的ライブラリを作成するにはどうすればよいですか?
これを行うために .pro または .pri ファイルを変更する方法がわかりません。(.prf ファイルは再生成され続けます)。
そのため、結果の .vcproj ファイルを変更して静的ビルドを作成し、いくつかの定義を削除しようとしましたが、それでも次のような警告が表示されます。
qextserialport.lib(qextserialport.obj) : 警告 LNK4006: "public: __thiscall QextSerialPort::QextSerialPort(class QString const &,enum QextSerialPort::QueryMode,class QObject *)" (??0QextSerialPort@@QAE@ABVQString@@W4QueryMode@ 0@PAVQObject@@@Z) は既に qextserialportd1.lib(qextserialportd1.dll) で定義されています。2 番目の定義は無視されます
実行時に「システムエラー:qextserailportd1.dllがコンピューターにないため、プログラムを開始できません」というメッセージが表示されます。.lib を使用して静的ビルドを作成しようとしているため、これはもちろん真実です。
では、静的ビルドを正しく行うにはどうすればよいでしょうか?
c++ - qextserialport を使用してシリアル ポートを宣言できません
私はいくつかの質問を見て、たくさんグーグルで検索しましたが、arduino との間で読み書きするために、qextserialport を使用してシリアル ポート オブジェクトを宣言する方法が見つかりません。Qextserialport を使用してシリアル ポートに書き込む方法でユーザーが行ったことを試しましたが、コンパイラは次のエラーを表示します。
私が使用しているコードは次のとおりです。
このエラーが表示されるのはなぜですか? Debian 8.2 と QT 4.8.6 を使用しています
編集: 行を追加した後:
プロジェクト ファイルに次のエラーが表示されます。
c++ - qextserialport の readyRead() シグナルが発行されていない
Windows 8.1 で Bluetooth デバイスと通信するためにqextserialportを使用しています。ComPortクラスを定義しました。最初に「COM5」にメッセージを書き込んで{0xA9,0x55}
、Bluetooth デバイスにデータの送信を開始するように依頼する必要があります。その後、データの読み取りを開始できます。メッセージを書き込んだことを示す端末アプリケーションがあり、データは「COM5」で利用可能です。
問題定義:
comport.cppでは、どちらwaitForBytesWritten()
もwaitForReadyRead()
returnもありませんtrue
。使用可能なバイト数がゼロで、onReadyRead()
スロットは呼び出されません。私のコードで何が問題になっていますか?
comport.h
およびcomport.cpp
qt - QextSerialPort を使用してデータを書き込むと、常に 0 バイトが書き込まれます
ARDUINO ボードに 1/0 を送信しようとしています & 応答としてボードからいくつかのデータを受信しようとしています。これには QextSerialPort (Qt lib) を使用していますが、ボードにデータを書き込むことができません & できません任意のデータも受信します。
qDebug() << "send.size() : " << send.size() << " data = " << send.data() <<" Written = " << port->write(send, send.サイズ()); この印刷 : send.size() : 1 data = 1 Written = 0 //毎回 0 バイトを書き込むことを意味します
私のコードに問題はありますか??
私のArduinoコードは次のとおりです。
解決済み:
Qt5.5でQSerialPortクラスに切り替えましたが、うまくいきました。
&私のaurdinoコードにも問題があります(コピーペースト効果)
c++ - Qt(4.8)シリアルポート(qextserialport)がデバイスからデータを2つの部分で読み取るのはなぜですか?
これは私のコードです:(私はqextserialportを使用しました)
このコードは、最初は Ubuntu で実行され、デバイスから受信したすべてのバイトを表示しますが、Linux 組み込みデバイスでテストすると、このコードはシリアル デバイスから 2 つの部分でデータを読み取りました。() 私のバイトには \n がありません。コードを次のコードに変更します。
しかし、再び私の出力は次のとおりです。
しかし、それはあるべきです:
出力サイズはおそらく 48 バイトまたは 512 バイトです