0

私はアプリを構築して組み込み、ハードウェア割り込みリスナーを使用してから、10 秒ごとにポーリングして CPU サイクルを消費します。

キーボード、マウス、ネットワークなどのハードウェア割り込みのリスナーがあるため、これは明らかに実行できます。私が最終的にやりたいことは、ハードウェア割り込みが Qt 発行信号をトリガーすることです。

前もって感謝します。

例:
ハードウェア割り込み -> readPort() -> emit(value)

UPDATE
このような方法でうまくいくと思いますが、経験のある方からのご意見をお待ちしております。

mSN = new QSocketNotifier; // defined in .h
QFile file("/dev/testDriver");
if(file.open(QFile::ReadOnly)) {
  QSocketNotifier mSN(file.handle(), , QSocketNotifier::Read);
  mSN.setEnabled(true);
  connect(mSN, SIGNAL(activated(int)), &this, SLOT(readyRead()));
}
4

2 に答える 2

0

アプリケーションについて他に何も知らない場合、中断のない解決策があるかもしれません。

QObject のサブクラスを作成し、それを一意の QThread に移動します。

オブジェクトで、startTimer(100) を呼び出します。

timerEvent() で、ハードウェアをポーリングします。必要に応じて信号を発します。

Qt4 では、シグナルとスロットはスレッド間で自動的にキューに入れられます。

于 2013-05-09T15:44:27.567 に答える