最近在做一个Qtopia应用程序与Linux内核的数据通信的项目。由于接触Linux的时间相对较短,所以我目前拟采取的方案是:
1. Linux内核中驱动程序模块中导出“共享数据”;
方法是:a : EXPORT_SYMBOL b : netlink(正在学习中)
2. “共享数据”作为Qtopia中signal-slot机制的对象的成员,当“共享数据”发生变化时触发Qt的槽函数。
方法是:
a 声明QSocketNotifier对象,QSocketNotifier *notifier;
b 用QSocketNotifier建立“共享数据”与notifier的关联,notifier = new QSocketNotifier(fd, QSocketNotifier::Read, this); // fd就是共享数据相关参数
c 将QT的信号和槽函数关联 connect(notifier, SIGNAL(activated(int)),this,SLOT(readKeyboardData()));