シリアルポートとインターフェイスできるデスクトップアプリケーションを開発するための技術を決定しようとしています。私はPythonを調べましたが、コンソールベースのアプリは難しくないようです-http://pyserial.sourceforge.net/、そしてプロジェクトのGUI部分を満たすPyQtも調べました。
しかし、PyQtにPySerialのようなサードパーティのモジュールを含めることは可能ですか?
シリアルポートとインターフェイスできるデスクトップアプリケーションを開発するための技術を決定しようとしています。私はPythonを調べましたが、コンソールベースのアプリは難しくないようです-http://pyserial.sourceforge.net/、そしてプロジェクトのGUI部分を満たすPyQtも調べました。
しかし、PyQtにPySerialのようなサードパーティのモジュールを含めることは可能ですか?
PyQtとpyserialは一緒にうまく機能します(実際、私はそれらを私のアプリの1つで使用しています)。pyserialWebサイトの例は、ほとんどがコンソールのような単純な例ですが、どのpyserialオブジェクトからもデータを取得できない理由はありません。そしてそれらをPyQtで使用します。たとえば、シリアルポートを介して受信したデータを取得し、QByteArrayまたはNumPy配列、または好みに合ったものにプッシュすることができます。
いくつかの注意点:Serial.readline()を使用すると、改行(\ n)を取得するまでブロックされます。これはGUIに悪影響を与える可能性があります。read()の代わりにreadline()を使用する必要がある場合は、pyserial関連のアクティビティを別のスレッドに配置することをお勧めします。これをどのように行うかはあなた次第ですが、Qtの組み込みスレッドを使用することをお勧めします。その後、スレッド内でQtタイプなどへのデータ変換を行うことができます。pyqtでのスレッド化に関する詳細情報。
編集:ほとんど忘れました。気になる人がいれば、PyQtを使用してコンソールアプリを作成することもできます。QApplicationの代わりにQCoreApplicationを使用してください。なぜPythonでそれを行うのかはよくわかりませんが、Qtのデータ型が本当に好きでない限り、この場合はPyQtとpyserialを使用して純粋なコンソールアプリを作成できます:D