基于Linux/Qtopia的车载温度网络采集
eFlag=0//内核停止读取温度标志
DS18B20_fasync(1,filp,0);//关闭异步通知
module_put(THIS_MODULE);//设备计数器减1
return 0;
}
写接口函数用来通知驱动。例如通知驱动读取通道2的数据,在应用程序中执行写接口函数write(fileno,&SLOT2,1),驱动设置当前读通道号为2。
至此完成驱动接口函数。此驱动属于字符设备驱动,将源程序放在driver/char 目录下。同时需要修改该目录下的Kconfig配置文件并添加 Config 18B20_S3C2410选项,修改driver/char/Makefile,添加obj$(CONFIG_18B20_S3C2410) +=S3C2410_18B20.O。最后重新配置内核,将驱动以模块形式添加到内核,这样就可以编译驱动了。
4 Qtopia应用程序设计
(1) 创建工程
首先利用QT Designer设计器创建一个窗体应用程序ThermometerFigure.ui。窗体程序创建好后根据需要添加窗体控件、槽函数、信号等。图3为ThermometerFigure类的实现框图。
(2) ThermometerFigure类实现
利用uic工具产生相应的*.cpp和*.h文件(窗体类的实现文件和头文件)。编辑*.cpp和*.h文件实现各成员函数、信号槽的连接。具体实现如图3所示。
(3) 创建main及初始化
首先创建main.cpp文件,并在main.cpp 中创建QApplication 对象。QApplication 类负责图像用户界面应用程序的控制流和主设置,对所有来自系统和其他源文件的事件进行处理和调度;还包括应用程序的初始化和结束。
int main( int argc, char **argv ) {
QApplication app(argc,argv);
ThemometerFigure wyc;//创建对象
app.setMainWidget( &wyc );//选为主窗体
wyc.show(); return app.exec();
}
(4) 编辑*.pro文件并生成Makefile
利用progen工具创建Thermometer.pro,具体实现如下:
TEMPLATE=app
CONFIG=qt warn_on release
HEADERS=ThermometerFigure.h
SOURCES=ThermometerFigure.cpp \ main.cpp
INTERFACES=
执行qmake命令生成Makefile文件,执行之前要设置相关的环境变量,编译器路径等。
qmakeo Makefile Thermometer.pro
(5) 编译链接工程
执行make命令,将生成目标二进制文件Thermometer,此文件即可在设备上运行。
图3 ThermometerFigure类的实现框图
图4 ThermometerFigure类实现界面
(6) 将可执行文件发布到Linux系统
将可执行文件添加到Qtopia的根文件系统中,将生成的新的根文件系统烧写到设备的Flash根文件系统区,这样就可以在桌面运行程序了。图4为 ThermometerFigure类实现界面。
结语
本文介绍了车载信息系统开发的部分实现方法。通过实例讲述了Linux的开发过程,包括驱动开发和应用程序开发流程。创新点在于将一线制传感器网络引入车载信息采集系统,大大简化了线路结构,有很高的实用价值。
嵌入式 Linux 总线 传感器 S3C2410 CAN总线 温度传感器 电压 电流 MOSFET ARM LCD 触摸屏 USB PWM ADC 电路 相关文章:
- 采用MPC5200实现高速视频探测的车内应用(02-22)
- 嵌入式非易失性存储器在汽车系统中的应用(05-13)
- 基于嵌入式的悬架与转向集成控制器研究(05-20)
- 嵌入式电脑在车载电视系统中的应用方案(04-13)
- 基于嵌入式Qt的车载GUI平台的设计(07-10)
- ARM嵌入式汽车节能控制系统的设计(07-17)