1、3.1 Linux下Qt编写的的电子钟模块组成3.2 时间显示模块的设计3.3 闹钟设置模块设计3.4闹钟功能模块的设计 6第四章 系统实现 74.1开发环境4.2时间显示模块的实现 84.3 闹钟设置模块的实现4.4 闹钟功能模块的实现 9第五章 系统测试 115.1 测试环境5.2 功能测试5.3 性能测试 12第六章 结束语 136.1 全文总结6.2 下一步工作6.3 附件(部分代码)参考文献 19第一章 绪论1.1 选题依据面向21世纪的科技发展,嵌入式系统(Embedded Systems)开始进入到IT时代,并且稳健发展,逐步形成一个主流。嵌入式是同是以应用为中心,以计算技术为基
2、础,软硬件可裁剪,适于应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。它是一个技术密集、资金密集、高度分散、不断创新,基于硅片的知识集成系统。今天的嵌入式系统已普遍应用于国防电子、数字家庭、工业自动化、汽车电子、医学科技、消费电子、无线通信、电力系统等国民经济的主要行业。随着嵌入式技术的发展,嵌入式系统将更广泛地应用于人类生活的方方面面,如:基于嵌入式Internet网络的电子皮肤、可以嵌入到牙齿上的手机都在研发之中。著名嵌入式系统专家沈绪榜院士认为,“计算机是认识世界的工具,而嵌入式系统则是改造世界的产物。”Linux是一个遵循POSIX标准的免费操作系统,具有BS
3、D和SYSV的扩展特性。与其他操作系统相比,Linux有其自身的一些特点:多任务、多用户、多平台、使用分页技术的虚拟内存等。同时由于它源代码完全公开,用户可根据需要自己定制自己的操作系统,从而系统能够很好的满足用户的要求。它是免费的自由软件,用其构建的系统成本较低,而且Linux是单内核的操作系统,并可按要求进行任意剪裁,因此具有很好的实时性,很强的稳定性、嵌入性的操作系统,因此越来越多的研究人员开始采用Linux平台来开发自己的产品。自由开源软件在嵌入式应用上受到青睐,Linux日益成为主流的嵌入式操作系统之一。可应用于多种硬件平台,Linux采用一个统一的框架对硬件进行管理,同时从一个硬件
4、平台到另一个硬件平台的改动与上层无关。Linux具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入到内核中或者从内核中移走,并能根据嵌入式设备中的个性需要量体裁衣。Linux系统内核精简、高效并且稳定,能够充分发挥硬件的功能,因此它比其他操作系统的运行效率更高。Linux是首先实现TCP/IP协议栈的操作系统,它的内核结构在网络方面是非常完整的,并提供了对包括十兆位、百兆位及千兆位的以太网,还有无线网络、Token ring(令牌环)和光纤甚至卫星的支持,这对现在依赖于网络的嵌入式设备来说无疑是很好的选择。Linux操作系统下有一个强大的图形用户界面工具包 Qt是一个跨平台的C
5、+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。且具备面向对象、丰富的 API、强大的类等优点,这将为我们提供图形化编程的便利。本次我们在实验中所做的是电子时钟的设计与实现。时钟是我们日常生活中经常用到的工具,时钟的外观和多样化能给我们的生活带来更多的方便和乐趣。1.2 主要研究内容1了解并安装Qt,搭建好编程环境;2使用Qt编写一个电子钟程序;该电子钟具有显示和闹钟的功能。第二章 需求分析2.1 Linux下Qt编写的的电子钟特点本次设计是采用Qt编写的一个电子钟程序,由于Q t是一个跨平台的
6、C+图形用户界面应用程序框架。所以这次编写的电子钟具有很友好的显示界面,代码采用C+编程中的结构,是面向对象的,有利于模块化和扩展,对于后期功能的添加修改具有很良好的支持。Linux操作系统下的图形用户界面工具包Qt,通过编写Qt代码,结合一些算法机制,来达到实现时钟的基本功能的目的。在本次课程设计中,比较好的把C+与Qt结合起来使用。Qt作为面向对象的软件开发工具,它使用信号Signal/槽slot机制来进行对象间的通信。信号/槽机制是Qt的一个中心特征并且也许是Qt与其它工具包的最不相同的部分。这样便解决了我们在用户界面上的操作,如单击某个按钮与内部对象之间的信号传输。Qt运行速度快、执行
7、效率高,再加上它提供了一组更容易理解的GUI类,信号与槽易使用,它所拥有的插入体系结构,使得我们可以将代码加载到一个应用中而无需进行重新编译或重链接等优点,为我们本次设计增色不少,能使图形界面看起来更加舒服,使用起来更加灵活。2.2 Linux下Qt编写的的电子钟的功能需求本次设计的电子钟应具有以下功能:1) 能够获取系统时间并同步显示;2) 用户能够自由的设置闹钟提示的时间;3) 定好时间后时钟最小化隐藏;4) 到达指定时间时钟能够浮出提示时间已到。2.3 Linux下Qt编写的的电子钟的性能需求作为一个常见的也最简单的电子钟程序,其性能要求并不苛刻,其性能要求如下:1)能够时刻与系统正确时
8、间保持同步2)能够稳定的正确的在系统中持续运行3)闹钟提示功能正确无误准时浮出4)启动程序时间不超过2秒5)退出程序不超过一秒第三章 系统设计3.1 Linux下Qt编写的的电子钟模块组成在Qt下编写的电子钟,主要需要实现的是三大功能模块:1)时间显示模块:该模块要求显示的界面,能够显示出系统时间并且与系统时间保持一致。2)闹钟设置模块:该模块提示设置闹钟时间,可以自己手动用键盘输入,也可以使用鼠标设置时间。3)闹钟功能模块:闹钟时间设置好以后,点击确定电子钟隐藏,并对比当前时间与设置时间,设置时间到闹钟浮出。系统模块组成图如图3-1所示:图3-1 电子钟模块组成图3.2 时间显示模块的设计Q
9、T中已经有QLcdNumber类,在该程序中建立该类的对象LcdNumber,对该类中一系列成员函数的修改直到达到自己的要求和电子钟显示界面的美观。对于如何保持与系统时间同步,我们在Alarm对象中使用函数clockChange()通过调用函数 lcdNumber-display()来保持与系统时间的同步。3.3 闹钟设置模块设计这里必须得给使用者一个提示,提示用户手动设置闹钟时间,所以这里需要建立一个Label对象,继承Qlabel,提示用户设置闹钟。新建一个QtimeEdit的对象TimeEdit用来方便用户手动设置时间,并新建一个button对象来确定设置。3.4闹钟功能模块的设计在Al
10、arm中新建立一个成员函数down()来控制整个窗口的下降和隐藏,建立Comtocur()通过对该函数的编程来实现设置时间与当前系统时间的对比,达到监控系统时间是否到达闹钟时间的目的。若时间达到,使用函数dialogUp()来使窗口浮出达到闹钟报时的功能。第四章 系统实现4.1开发环境本次报告所编写的电子钟是在LINUX环境下使用QT4.6编写完成的,而LINUX操作系统我选择的是Ubuntu10.4,这就涉及到怎样在Ubuntu下安装QT,和使用QT实现电子钟的功能。在Ubuntu下搭建QT的编译环境如下:1、下载Qt 4.6.0 for X11 OpenSource版。2、下载过来的是 q
11、t-x11-opensource-src-4.6.0.tar.gz 文件,用tar命令解压一下。tar zxvf qt-x11-opensource-src-4.6.0.tar.gz3、把这个目录移到/usr/local目录下,改名为qt。4、修改(可以使用vi编辑器或者gedit)自己目录下的.bash_profile 或者 .profile或者是/etc/profile这个文件,加入下面的代码:QTDIR=/usr/local/qtPATH=$QTDIR/bin:$PATHMANPATH=$QTDIR/man:$MANPATHLD_LIBRARY_PATH=$QTDIR/lib:$LD_L
12、IBRARY_PATHexport QTDIR PATH MANPATH LD_LIBRARY_PATH5、注销一下用户或者 source .bash_profile 一下,使配置文件生效。6、进入QT的目录,开始编译./configure输入yes同意GPL/QPL协议。7、开始make 这步要一两个小时make8、开始installmake install9、进入QT的目录,进入bin目录,然后运行 ./designer,就可以看到图形界面了。4.2时间显示模块的实现首先进入main()函数,由于在每一个使用Qt的应用程序中都必须使用一个QApplication对象,故用QApplicat
13、ion app( argc, argv )语句定义一个对象app;其次根据自己新定义的类alarm创建一个对象,系统自动进入alarm的构造函数中。在Alarm对象中我们首先完成对数字钟的初始化,建立初始化函数init(),我们在初始化中设置好时间显示模块。成员函数:(1)setWindowTitle()设置标题的函数,我们这里把标题设置为Alarm clock。(2)setFixedSize(QSize(300,80) 此函数中嵌套一个Qsize函数是控制整个程序窗口大小的函数,我们已经把窗口大小设置为300,800。(3)setFixedSize(QSize(150,50) 设置时间显示区
14、域的大小,同样嵌套一个Qsize函数,把显示区域控制为150,50。(4)setNumDigits(8)设置显示区域显示8个数字,如果不设置默认显示的5个数字。(5)setSegmentStyle(QLCDNumber:Flat); 填充颜色,默认是白色的。(6)display(QTime:currentTime().toString(hh:mm:ss); 设置格式,还有其他形式的,这里我们设置为常用的hh:ss形式。(7)clockChange() 显示变化的时间,与系统时间保持一致。4.3 闹钟设置模块的实现闹钟设置模块也可以在初始化函数中实现,只需要在时间显示区域旁边的区域中设置一个设置区域。(1)新建QtimeEdit的对象TimeEdit,setDisplayFormat() 设置闹钟设置区域的时间显示模式。(2)新建QPushButton的对象Button,显示为确定,这个Button对象需要在后面信号与槽的设置中跟窗口隐藏
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1