基于CortexA8的嵌入式车联网终端系统设计_第1页
基于CortexA8的嵌入式车联网终端系统设计_第2页
基于CortexA8的嵌入式车联网终端系统设计_第3页
基于CortexA8的嵌入式车联网终端系统设计_第4页
基于CortexA8的嵌入式车联网终端系统设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 密级: 题 目 基于CortexA8的嵌入式车联网终端系统设计学 院: 信工 系 自动化 信息工程学院自动化系 专业班级: 测控技术与仪器112班 学生姓名: 刘帅 学号: 5801211082 指导教师: 张宇 职称讲师: 起讫日期: 2015.3. 起讫日期与其他同学保持一致 删掉页眉的横线基于CortexA8的嵌入式车联网终端系统设计 摘要车联网是指装载在车俩上的电子标签通过无线射频等识别技术,实现在信息网络平台上对所有车俩的属性信息和静、动态信息进行提取和有效利用,并根据不同的功能需求对所有车俩的运行状态进行有效的监管和提供综合服务的系统。本设计主要是基于CortexA8的车联网嵌入

2、式终端系统。采用嵌入式Linux系统作为整个开发方向。ARM硬件平台上扩展OBD模块,GPRS模块等。通过CortexA8处理器将数据存储到MYSQL数据库,并通过QT设计的应用软件来管理系统数据,查询汽车健康状况,并可以通过通信模块与用户通信,从而有效管理汽车。系统软件部分主要实现了Linux系统在开发平台上的移植,主要是bootloader移植,Linux内核移植和根文件系统的建立三个方面。完成OBD,GPRS通信模块在Linux下的驱动设计,最后通过QT设计出数据采集,存储和显示程序。关键字:嵌入式;Linux;CortexA8;数据采集处理;ARMDesign on networkin

3、g of vehiclesterminal system based on CortexA8ABSTRACTThe networking of vehicles is a system using an electronic label to realize picking up and efficient using all of vehiclescharacteristc information and static-motivtion information on the information internet terrace,and provide efficiently guard

4、ianship and supplying integrated services according to different needs of function of the most vehiclesoperational condition.The design is an embedded terminal system based on CortexA8, using embedded Linux system conducts the development oriention.ARMs hardware platform expands OBD module 、GPRS mod

5、ule and so on.The CortexA8 ship used to convert data acquisition to database,and the application software which designed by QT creator is used to manage the system data and search the vehicles condition.the embedded system can also communication with user by GPRS module,so user can manage their vehi

6、cles better.The part of the systems software primary achieved the Linux OSs transplanting on the developing platform.It contains 3 parts: the transplanting of bootloader,the transplanting of Linux kernel and the building of the root file system.In addition ,it completes the driversdesign of OBD modu

7、le and GPRS module.The last,designing the APP to gathering 、restoring and displaying the data. KeyWords:embedded system;Linux;CortexA8;data acquisition;ARM目录摘要. Abstract. 第一章绪论2车联网技术的发展和现状2第二章Linux嵌入式系统软件开发环境搭建22.1 Linux简介22.1 Linux系统安装22.2 Linux下Samba软件的安装和配置22.3 交叉编译环境的搭建22.4 Linux内核及根文件系统制作22.5 Q

8、T和MYSQL安装配置22.6 SecureCRT2第三章硬件平台23.1 处理器23.1.1 Cortex-A823.1.2 Tiny210核心板简介23.2 OBD模块23.2.1 OBD简介23.2.2 EST627产品介绍23.3 3G通信模块23.4 Wi-Fi技术2第四章 上位机QT与MYSQL24.1上位机QT及MYSQL环境搭建24.1.1 选择QT的优势24.1.2 QT编程核心技术模块24.1.3 QT元对象系统24.1.3 QT信号和槽机制24.2 MYSQL24.2.1 MYSQL简介24.2.2 MYSQL常用语句24.3编译QT中MYSQL的驱动2第五章 应用软件编

9、写25.1软件整体框架25.2图形界面设计25.3QT与数据库的连接及数据显示25.4TCP通信设计2第六章系统测试分析26.1 汽车终端整体方案26.2 用户软件2结论2参考文献2目录的页码在哪里?第一章 绪论车联网技术的发展和现状伴随着全球汽车行业的飞速发展,车联网技术也在发生日新月变化。当今,在国际上,美国的IVHS、日本的VICS等系统通过车辆和道路之间建立有效的信息通信,已经实现了智能交通的管理和信息服务。而WIFI、RFID等无线技术近年来也在交通运输领域智能化管理中得到了应用,在智能公交定位管理和信号优先、智能停车场管理、车辆类型及流量信息采集及车辆速度计算分析等方面取得了一定得

10、应用成效。自上个世纪60年代提出智能交通的概念以来,国际企业对相关技术一直相当重视。Benz,BMW,Toyoto等汽车公司已经积累多年研发经验,Microsoft ,goole等IT公司也从不同领域深入到车联网相关系统的研发中,松下,东芝等传统电子厂商还先后做出了车联网的原型。车联网是基于汽车标准信息源技术,而此项技术又是基于无线射频识别技术(RFID)开发的涉车信息资源的应用技术。目前,我国已经实施了车俩射频电子标签自动识别系统。上海世博会上汽集团通用汽车馆展示了城市概念车EN-V车型,这款车的自动驾驶电气化,车联网概念将把人类带入零排放、零交通事故的未来汽车时代。现今车联网技术已经具备了

11、一定得技术基础,目前最成熟的车载系统通用汽车的OnStar已具有远程控制的功能。下一代交通运输系统和智能社会交通的基本构成已经呼之欲出,日渐成熟的车联网技术也将彻底改变未来的出行模式。汽车实现“零排放、零油耗、零堵塞、零事故、且驾乘充满时尚和乐趣“,实现车与车之间的对话将是车联网未来的美好愿景。车联网关键技术主要是:传感器技术及传感信息整合;开放的、智能的车载终端系统平台;语音识别技术;服务端计算与服务整合技术;通信及其应用技术;互联网技术。其中本课题重点是车载终端系统的研究。车载终端是车主获取车联网最终价值的媒介,可以说是网络中最为重要的节点。当前,很多车载导航娱乐终端并不适合车联网的发展,

12、其核心原因是采用了非开放的、非智能的终端系统平台。为了适应网络生态系统,车联网终端应该采用更适合互联网大环境的操作系统,比如现今十分火爆的Android,ios或者是开源的Linux系统。这些操作系统将更为适应现在的移动互联。第二章 Linux嵌入式系统软件开发环境搭建2.1 Linux简介Linux是一种自由和开源的类UNIX操作系统。该操作系统的内核由林纳斯.托瓦兹在1991年10月5日首次发布。Linux是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网

13、络和核心的设计思想,是一个性能稳定的多用户网络操作系统。2.1 Linux系统安装本次PC端Linux开发采用虚拟机方式安装Linux系统。用到的虚拟机为VMwareWorkstation 10版本,VMwareWorkstation是一款功能强大的桌面虚拟计算机软件,提供用户可以在同一台计算机上同时运行不同的操作系统,是进行开发、测试、部署新的应用程序的最佳解决方案。Linux操作系统选择cnetos6.6版本,它是来自于Red Hat依照开源规定释放出的源代码所编译而成,用户可以在网上下载centos6.6的ISO文件,并参考网上教程一步步安装完毕后,启动虚拟机。如图所示:图2.1 cen

14、tos界面打开图形界面下的命令行模式,输入ifconfig命令,可以看到虚拟机的IP地址为29。2.2 Linux下Samba软件的安装和配置Samba软件是在Linux下的一个免费软件,由服务器和客户端构成。它提供的功能主要是PC主机和虚拟机之间的文件共享。配置步骤如下:1. 在Centos命令行模式下输入 yum y install samba命令,下载安装。2. 进入/etc/init.d/smb目录下,输入start命令启动Samba服务。3. Chkconfig - level 35 smb on设置开机自动启动。4. Vi /etc/seLinux/conf

15、ig 设置seLinux = disabled来关闭防火墙。5. iptables F并修改/etc/samba/smb.conf配置文件,设置共享目录。此时可以在PC端cmd下键入虚拟机IP地址29,如图可以看到PC和虚拟机建立了连接,两者可以共享文件(共享文件时需注意将共享文件夹及其父文件夹的权限开放)如图:图2.2 Samba共享文件2.3 交叉编译环境的搭建通过samba将ARM-Linux-gcc 复制到虚拟机,将工具包解压并安装到/usr/local/ARM目录下(tar xvzf ARM-Linux-gcc*.tgz C /usr/local/ARM);将

16、路径添加到环境变量:使用vi修改/root/.bashrc文件,添加PATH = $PATH:/usr/local/ARM/4.5.1/bin,重启系统。在终端下打开命令行,执行ARM-Linux-gcc V查看编译版本图2.3 gcc版本2.4 Linux内核及根文件系统制作Linux内核的主要模块为一下以下几个部分:存储管理、CPU和进程管理、文件管理、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。内核结构如图所示删掉下面这些奇怪的线:SYSTEM CALL TNTERFACEPROCESS MANAGEMENTVIRTUAL FILE SYSTEMMEMORY MANA

17、GEMENTNETWORK STACKARCHDEVICE DRIVERS图2.4 内核架构图2.4内核架构本次Linux系统内核为2.6.32版本。通过samba服务奖内核源码包复制到Linux共享目录下,执行tar xvzf Linux-2.6.32.tar.gz C /home/zds/kernel解压到用户家目录下。解压后进入Linux-2.6.32目录,目录下几个重要文件夹arch:与体系结构相关的目录。Init:内核初始化代码。Kernel:内核管理核心代码。Ipc:进程间通信的实现代码。修改makefile文件,将交叉编译器bin文件目录路径添加CROSS:COMPLIE?=/后

18、面,修改时钟,修改机器码,执行make menuconfig命令进行配置(根据硬件资源)。配置完成后执行make ZImage 生成二进制bin文件。根文件系统可以通过busybox来制作,一般采用YAFFS文件系统。根文件系统目录一般包括/bin,/sbin,/dev,/etc,/modules,/var,/usr,/src,/var,/lib等文件目录,根文件系统可以按照如下步骤来制作:1. 创建根文件目录root_2.6.31,并在目录下创建子目录(按Linux格式)2. 通过samba服务获取busybox源码包,解压并修改makefile文件,指定交叉编译器,处理器架构3. 执行ma

19、ke menuconfig选择静态编译并保存到上级rootfs目录,依次执行make,make install,完成后将rootfs下所有文件复制到root_2.6.31中4. 在dev目录下创建俩个设备节点,命令:mknod console C 5 1 mknod null C 1 35. 将busybox目录下examples/boot/loppy/etc和系统配置文件中的/etc/passwd,/etc/shadow,/etc/group下的所有文件拷贝到root_2.6.31的配置文件夹中(/etc)6. 使用makeyaffs工具将根文件夹制作成root_2.6.32.bin文件.2

20、.5 QT和MYSQL安装配置下载安装QT pc版,ARM版本,安装tslib库源码,添加ARM-Linux-gcc交叉编译器和工具包。图2.5添加交叉编译器图2.6工具包添加MYSQL:MYSQL是一个开放源码的关联式数据库管理系统,2009年被甲骨文公司收购,MYSQL广泛应用在Internet上的中小型网站中,由于体积小、速度快、总体共有成本低,尤其是开放源码这一特点,广受中小型网站喜爱。Linux下通过yum install MYSQL MYSQL-server命令安装MYSQL服务器和客户端,安装头文件等设备文件,启动MYSQL,设置用户密码,成功进入MYSQL。增加一个用户,使之能

21、够在任何主机访问本地数据库。命令:Grant all privileges on *.* to zds%identified by zdswith grant option;2.6 SecureCRTSecureCRT是一款支持SSH的终端仿真程序,在windows下登陆Linux服务器主机的程序。它同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的理想工具。通过使用内含的VCP命令行程序可以进行加密文件的传输。打开SecureCRT,新建连接,建立到虚拟机Linnux系统的连接,输入密码后如图:图2.7 SecureCRT连接虚

22、拟机第三章 硬件平台3.1 处理器3.1.1 Cortex-A8ARM Cortex-A8处理器是第一款基于ARMv7架构的应用处理器,并且是有史以来ARM开发的性能最高、最具功率效率的处理器。Cortex-A8处理器的速率可以在600MHz到超过1GHz的范围内调节,能够满足那些需要工作在300mW以下的功耗优化的移动设备的要求;以及满足那些需要2000 Dhrystone MIPS的性能优化的消费类应用的要求。Cortex-A8处理器是ARM的第一款超标量处理器,具有提高代码密度和性能的技术,用于多媒体和信号处理的NEON技术,以及用于高效地支持预编译和即时编译Java及其他字节码语言的J

23、azelle®运行时间编译目标(RCT)技术。图3.1 CortexA8简化视图3.1.2 Tiny210核心板简介Tiny210是一款高性能的CortexA8核心板,它由广州友善之臂设计、生产和发行销售。它采用三星S5PV210作为主处理器,运行主频可以高达1GHZ。S5PV210内部集成了PowerVR SGX540高性能图形引擎,支持3D图形流畅运行,并可流畅播放1080P大尺寸视频。Tiny210核心板主要采用了2.0mm间距的双排针,引出CPU大部分常用功能引脚(总共180pin),接口和Tiny6410核心板兼(P1,P2,CON2兼容,可共用同一个底板);Tiny210

24、标配512M DDR2内存和512M闪存(SLC),并可选配1GB闪存(SLC)。在开发底板布局上安排上,我们尽量考虑把常用尺寸的LCD模块能够固定在底板上,比如3.5"、4.3"、5"、 7”LCD等,这样用户在使用时不至于把各种电线搅在一起,更增加了开发套件的便携性。图3.2 Tiny210开发板3.2 OBD模块3.2.1 OBD简介OBD(On-Board-Diagnostics)即车载自动诊断系统。这套系统能在汽车运行过程中实时监测发动机电控系统及车辆其他功能模块的工作状况,发现工况异常时会以诊断故障代码的形式存储在系统内的存储器上。我们可以通过这个接口

25、获得车辆的各种工况,包括故障信息、油耗记录、行车记录等数据。从而更好的监督管理车辆的健康。OBD不仅仅是一个独立的系统,还是一个完美的数据源。OBD以汽车上的各种传感器、发动机电控单元及各执行器为监测对象。实际应用中,OBD系统在汽车点火时就已经启动。其工作原理是:通过监测发动机电控单元反馈的各种传感器和执行装置的输出信息,一旦监测到某一信号产出设定范围一段时间,OBD就会进行故障报警,并将生成故障码存储到RAM中。3.2.2 EST627产品介绍EST627是有深圳速锐得科技针对行业用户精心打造的一款OBD智能信息终端硬件产品集OBD+GPRS等各种功能与一体,实现车辆数据的实时获取、跟踪定

26、位和状态监测,更高效更智能的实现车辆管理、车辆远程监控。图3.3产品外观图图3.4主要部件组成EST627的OBD模块能够实现获取车辆实时数据、驾驶习惯数据、行程报告、车速监测、故障码、电瓶电压监测等数据报告。并且支持实时数据获取,熄火自动生成本次行程报告。图3.5 OBD模块通讯协议支持列表当终端与ECU通讯成功,设备进入正常工作后,循环执行的任务列表清单如下(以6秒间隔上传时间为例):图3.6任务列表a. 加速度值,角速度值只在程序内进行运算。超过阈值将累加。b. GPS 定位分 2 种定位,基站定位和 GPS 定位,如果有外接 GPS 设备,基站定位暂停获取,一旦检测到 GPS 定位失败

27、,基站定位会立即激活,并按照每 1 分钟的频率更新一次基站定位信息,如果 GPS 和基站定位都获取失败,将直接显示默认为 0 的数值。c. 当前车速每 1S 检测一次,如当前车速超过设定阀值,将触发超速报警。d. 网络检测分 2 种,如果 GPRS 模块已经关闭,10S 之后,将再次开启,并重新执行 GPRS 模块初始化(包含同步设置、入网、建立 TCP 链接) ,若 GPRS 模块在正常运行并且存在 SIM 卡,则依次执行查看本地网络信号、检查 GPRS 信号、检查 TCP 状态等,若 SIM 卡不存在,GPR模块将关机。e. 当终端收到服务器下发的指令后,终端会将指令存入消息队列,并立即开

28、始执行指令任务。超速报警:设备会每一秒获取一次车辆的当前车速,若车速超过设定值,将上报服务器后台超速消息,如果车速一直高于设定值,设备只会上报一次超速消息,若当前车速有低于设定值,设备将重新上报超速消息,消息格式定义如下:图3.7超速消息格式3.3 3G通信模块3G是第三代移动通信技术,是指支持高速数据传输的蜂窝移动通讯技术。3G服务能够同时传送声音及数据信息,速率一般在几百kbps以上。3G是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统,目前3G存在3中标准:CDMA2000、WCDMA、TD-SCDMA。系统采用的通信模块为WCDMA标准的ZTE MF210。特性简介:-

29、制式:HSUPA/HSUPA/WCDMA- 频段: ·UMTS2100/1900/850(900)MHz ·GSM1900/1800/900/850MHz- 速度:7.2M/5.76Mbps- 外形尺寸:51x30x4.7mm- VID:PID 19d2:0117图3.8 3G模块3.4 Wi-Fi技术现如今Wi-Fi已经成为生活中的一部分了。WIFI技术的应用,可以将更多日常电子产品连入局域网内,统一协调管理。本监控平台将WIFI技术融合到车辆监控,拓宽了车辆监控的视角。系统中使用的WIFI为miniUSB-WIFI,型号为N8508。特性简

30、介:- 无线标准: IEEE 802.11b/g/n- 传输速率: 150Mbps- 芯片: RTL8192CU- 接口类型: USB- 尺寸: 18x14x6mm- 支持Android/Linux- 支持AP模式,一键设置,轻松共享图3.9miniUSB WIFI第四章 上位机QT与MYSQL4.1上位机QT及MYSQL环境搭建4.1.1 选择QT的优势随着嵌入式技术应用领域愈加广泛,用户体验也越来越重要,一个友好的人机交互界面成为评价嵌入式系统的重要指标,选择QT作为本次GUI开发工具,主要是因为:a. 它的源代码开源。QT遵循GPL协议,分为商业版本和开源版本。用户可以使用开源代码自由添

31、加新的特性。b. 优良的跨平台特性。QT支持Microsoft Windows95/98、windowsXP、Linux、FreeBSD等操作系统。QT通过大量的类,为开发人员提供功能的同时屏蔽了不同操作系统上的实现细节。用户只需要将QT开发的应用程序重新编译,就可以用于不同的开发平台。c. 具有丰富的API。QT具有几个百C+类,主要包括界面控制类、布局管理类、图形图像类、数据库类、网络类等。这些类组成了QT编程的基本模块组件。d. 支持构件化编程。QT通过模块化设计和优良的封装机制提高了软件构建和模块的可重用性。构件间通过信号和槽机制交互,保证代码安全可靠。e. 图形支持特性。QT有QPa

32、inter类和QGraphics View API对高级2D图形提供支持。本次上位机采用QT4.7.3版本,安装mingw工具集(MinGW是一个可自由使用和自由发布的Windows特定头文件和使用GUN工具集到入库的集合,允许你在windows平台生成本地的Windows程序而不需要第三方C运行库,它在windows平台上模拟了Linux下的GCC开发环境)图4.1 QT4.7(minGW工具链)4.1.2 QT编程核心技术模块使用QT编程开发数据采集系统界面需要使用到QT的元对象系统、信号与槽机制、QT事件处理机制以及QT的各种类库。这些类共同完成了基于QT的图形化软件设计。4.1.3 Q

33、T元对象系统QT中的元对象系统主要是来处理对象间通信的SIGNAL/SLOT机制、运行时的类型信息,和动态属性等信息的系统,它基于QObject类、类声明中的Q_OBJECT宏和元对象编译器moc4.1.3 QT信号和槽机制在GUI开发中,若某个部件发生改变时,希望像中断机制一样调用相关函数来处理这中变化,使得信号和响应函数间正常通信。QT提供信号和槽机制,这是区别于其他工具包的重要地方。信号和槽通信模式通过借助moc工具,将编写的信号和槽代码转换成标准的C+/C语言。我们可以设置监视对象,当对象状态发生改变时,该对象发射信号出去。由槽来接收信号,从而做出反应。发射信号的对象并不知道谁接收信号

34、,接收信号的响应函数也不知道谁发射的信号,从而达到了一定得安全性。在QT编程中,我们可以使用connect()函数将某个对象的信号和其他对象的槽联系起来,也可以通过disconnect()函数断开连接。4.2 MYSQL4.2.1 MYSQL简介数据库(database)是按照数据结构来组织、存储和管理数据的仓库,自产生以来,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。用户可以对文件中的数据进行新增、截取、更新、删除等操作。本系统采用的是MYSQL数据库。MYSQL是一个关系型数据库管理系统,由瑞典MYSQL

35、AB公司开发,目前属于甲骨文公司(Oracle)。MYSQL是最流行的关系型数据库管理系统,在WEB应用方面MYSQL是最好的RDBMS(relational database management system:关系数据管理系统)那个软件之一。PC端下载的MYSQL为MYSQL5.6版本,下载、安装、配置文件登陆后,输入S,如下:4.2 MYSQL4.2.2 MYSQL常用语句show databases; 显示所有数据库 show tables;显示当前库下所有表use 库名; 切换到库 create table 表名(列名 数据类型,列名 数据类型,.);创建表insert into 表

36、名 values(); 向表中插入数据select 条件 from 表名 条件; 从表中查找符合条件的内容 例:select * from mytable; 显示mytable表内所有内容drop table 表名; 删除表 drop database 库名; 删除库4.3编译QT中MYSQL的驱动QT驱动目录在plugins/sqldrivers目录下,QT默认并不支持MYSQL数据库,我们需要编译MYSQL驱动。编译过程如下:1. 安装MYSQL后找到 lib和include文件目录路径。2. 进入cmd prompt,进入QT驱动目录下的MYSQL目录,执行qmake “INCLUDE+

37、=(MYSQL目录中的include)” “LIBS+=(MYSQL的lib目录下的libMYSQL.lib)” MYSQL.pro。3. 执行mingw32-make(事先需将安装的mingw工具集的bin目录加入PATH环境变量)4. 进入QT安装驱动目录下,发现新增了俩个文件libqsqlMYSQLd(4).a和qsqlMYSQL(4).dll5. 将MYSQL下的libMYSQL.dll文件复制到QTbin下打开QT,测试连接成功。如图:图4.3 QT连接MYSQL测试第五章 应用软件编写5.1软件整体框架本次设计的软件主要功能是实现数据的获取、存储和管理的功能,并能直观的将信息传递给

38、用户,实现交互。这次应用软件我们通过QT来编写。本车载终端系统的工作流程可分为以下几部分: 1. 系统初始化程序。该部分包括:MCU初始化,3G模块启动,显示界面以及建立无线通信。在硬件上电开机后这部分程序之运行一次,即实现MCU时钟配置,开启中断,配置通信端口,初始化模块和建立3G模块与后台服务器间的TCP通信。2. 主程序。主程序在上电后一直处于循环执行状态,整个系统据图功能的实现就是基于这部分程序的循环调用。该部分程序包括:数据处理,信息显示,TCP连接监测和恢复,车载自诊断系统OBD故障码接收等。根据车载终端系统的功能要求,这部分主要是实现车载信息终端对车辆各个运行数据的获取、存储和显

39、示功能。通过TCP建立通信传入数据库,从而实现车载终端与客户端间的数据交互。数据库连接及数据显示:显示数据库中新增内容连接本地MYSQL数据库网络通信:将数据存入数据库传送数据判断是否请求新连接?是定时器:产生新连接设置定时时长,每5S发射信号显示数据库新增内容图5.1开发平台整体框架5.2图形界面设计QT Designer是一个可视化的基于QT的用户界面设计工具。用来生成ui定义文件,而不考虑具体的开发语言。QT Designer的GUI布局和窗口设计功能非常强大,提供了大量功能完备的控件,界面清晰美观。使用QT Designer可以方便快速的修改对话框,对于复杂的窗口设计,使用Desgin

40、er也会比直接使用C+代码编程要简洁快速。QT Designer将工程文件命名为Form.ui,通过uic工具将Form.ui文件生成Form.h头文件,结合designer设计的窗体,再自己编写main.cpp文件和功能实现文件,通过这些步骤,就可以开发出结合QT编程和QT Designer设计的QT应用软件。5.3QT与数据库的连接及数据显示数据库几乎是每个较大软件所必须应用的,QT中也使用QTSql模块实现了对数据库的完美支持。我们可以在QT creator的帮助文档中查找QTSql Module。内容如下:图5.2 QTSql Module使用这个模块我们需要加入头文件#include

41、 <QTSql>,并且在工程文件中添加QT += sql。QT通过QSqlDatabase类来建立与数据库的连接,并通过QSqlQuery类来执行SQL语句。本次设计软件数据库方面,我们通过QSqlDatabase类和本地MYSQL数据库建立连接后,使用QSqlQuery类执行数据库语句,将数据库中存放的最新一条信息提取出来,并通过lineEdit控件显示。同时,我们通过按钮控件作为发射信号对象,当按钮按下时,调出数据表,数据表中所有的信息,方便用户查询历史记录。5.4TCP通信设计TCP是一个基于流的协议。对于应用程序,数据表现为一个长长的流,而不是一个大的平面文件,在TCP之上建立的高层协议通常是基于行或者块的。QT提供了网络模块(QTNetwork Module)来用于网络程序的开发。可以在帮助文档中看到,QT提供了多个网络相关类,其中QTcpServer类和QTcpSocket类是用于TCP编程的。在使用网络编程类使,需要添加头文件#include <QTNetwork>,并在工程文件中添加QT += network。QTcpSocekt间接地由

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论