• 8065阅读
  • 8回复

Qt 如何响应硬件中断信号? [复制链接]

上一主题 下一主题
离线guoissac
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-08
请问达人:
我现在做一个数据采集的系统。在linux平台下;
通过硬件驱动程序发出来的异步通知信号,用Qt程序怎样才能获得这个信号并进行处理。
用(signal(SIGIO, &sig_handler)这样的函数能实现吗?
用event和 linux的异步通知配合实现可以吗?
具体怎么处理?
谁能给个例子?
不胜感激。。。
离线ppdayz

只看该作者 1楼 发表于: 2013-05-08
回 楼主(guoissac) 的帖子
qt只是一个c++库而已,该怎么实现的就怎么实现
在线uidab

只看该作者 2楼 发表于: 2013-05-08
1楼说的对。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线guoissac

只看该作者 3楼 发表于: 2013-05-08
回 1楼(ppdayz) 的帖子
关键不知道怎么实现;
知道的能否指点一下。
离线cavendish

只看该作者 4楼 发表于: 2013-05-08
没做过底层的东西
linux下这种设备都是有文件操作符的吧
不管是块的,还是流的

qt里application一般都是用QSocketNotifier来监控这些的
发生系统事件时,生成QEvent

可以看看
http://doc-snapshot.qt-project.org/4.8/qsocketnotifier.html
离线liuzh_szz

只看该作者 5楼 发表于: 2013-05-08
下载Qt5, 到qtbase/src/platformsupport/input/有键盘鼠标触摸板的驱动,但是都是依赖linux的ev驱动,另外Qt5也有专门的串口驱动,可以自己去git上找找

离线马前卒

只看该作者 6楼 发表于: 2013-05-09
应用级的方案:

应该是你开个全局线程 进行设备IO 轮询 或者注册设备接口的某个 callback 回调

然后 你这个线程在恰当的时候发送同步或异步的 QEvent 给Qt框架

之后再用 信号/槽机制处理

当然如果你只需要同步方式 在全局线程里直接加 Q_OBJECT  发送信号也可以

系统级方案:

不同平台可能实现不同,例:Windows UI系统是搞成消息

在线uidab

只看该作者 7楼 发表于: 2013-05-09
回 3楼(guoissac) 的帖子
先说你这个硬件采集的数据和PC的接口是什么吧,串口,并口,网络,wifi,还是什么??
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线guoissac

只看该作者 8楼 发表于: 2013-05-11
回 7楼(uidab) 的帖子
感谢大家的帮助,硬件接口是 PCI总线接口。
我又研究了好几天,还是没解决这个问题。
快速回复
限100 字节
 
上一个 下一个