2

シリアル ポートをテストする簡単なプログラムを作成しようとしていますが、QSerialPort を動作させるのに問題があります。QSerialPort オブジェクトからシグナルを受信しません。おそらく何か関係があると思われる3つのランタイム警告/エラーが表示されます。

エラーは次のとおりです。

QApplication::qAppName: Please instantiate the Qapplication object first
QSocketNotifier: Can only be used with threads started with QThread
QSocketNotifier: Can only be used with threads started with QThread

以下のコード スニペットは、エラーを再現するために提供できる最小のサンプルです。信号の接続は表示されませんが、これらのエラーが表示されない理由だと思います。open 関数を呼び出さないと、エラーは発生しません。

#include <QtGui/QApplication>
#include <QSerialPort>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    PowerBoardGUI w;
    w.show();

    QSerialPort* serial = new QSerialPort();


    serial->setPortName("/dev/ttyS1");
    serial->setBaudRate(QSerialPort::Baud9600);

    bool isOpen = serial->open(QIODevice::ReadWrite);
    serial->close();
    delete serial;


    return a.exec();
}

テスト システムは Redhat 5.6 です。QT 4.7.4 の静的バージョン。QSerialPort の最新バージョン (現在 GIT から構築されています)。

4

0 に答える 0