我正在构建和嵌入式应用程序,我宁愿使用硬件中断监听器,然后通过每十分之一秒轮询来消耗CPU周期。
这显然是可以完成的,因为有键盘、鼠标和网络等硬件中断的监听器。我最终想做的是让硬件中断触发 Qt 发出信号。
提前致谢。
示例:
硬件中断->readPort()->emit(value)
更新
我认为这样的事情会起作用,但我希望听到有这方面经验的人的意见。
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()));
}
不知道有关您的应用程序的任何其他信息,可能有一个非中断解决方案。
创建 QObject 的子类并将其移动到唯一的 QThread。
在对象中,调用startTimer(100)。
在timerEvent()中,轮询硬件。根据需要发出信号。
在 Qt4 中,信号和槽会自动跨线程排队。
我是一名优秀的程序员,十分优秀!