超偏超重检测系统的设计与实现毕业设计

上传人:沈*** 文档编号:42534356 上传时间:2021-11-26 格式:DOC 页数:58 大小:4.29MB
收藏 版权申诉 举报 下载
超偏超重检测系统的设计与实现毕业设计_第1页
第1页 / 共58页
超偏超重检测系统的设计与实现毕业设计_第2页
第2页 / 共58页
超偏超重检测系统的设计与实现毕业设计_第3页
第3页 / 共58页
资源描述:

《超偏超重检测系统的设计与实现毕业设计》由会员分享,可在线阅读,更多相关《超偏超重检测系统的设计与实现毕业设计(58页珍藏版)》请在装配图网上搜索。

1、超偏超重检测系统的设计与实现 Design and Implementation of Overweight-erroweight Detecting Systemby Liu WenwenSupervisor: Yang YingNortheastern UniversityJune 2010东北大学本科毕业设计(论文) 毕业设计(论文)任务书I毕业设计(论文)原创性声明和使用授权说明毕业设计(论文)原创性声明和使用授权说明原创性声明原创性声明本人郑重承诺:所呈交的毕业设计(论文) ,是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他

2、人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 东北大学本科毕业设计(

3、论文) 毕业设计(论文)任务书II学位论文原创性声明学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容

4、编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日东北大学本科毕业设计(论文) 毕业设计(论文)任务书III毕业设计(论文)任务书毕业设计(论文)任务书毕业设计(论文)题目:毕业设计(论文)题目:超偏超重检测系统的设计与实现超偏超重检测系统的设计与实现基本内容:基本内容:基于 linux 操作系统上的程序开发(本设计在虚拟机下的 LinuxRedHat 9.0操作系统上进行),经交叉编译后将可执行文件移植到 ARM 机上,通过现场测试人员的信息选择以及检测卡尺的数据采集,并能对数据进

5、行计算、查找、打印输出,通过运行结果与车辆标重(BZ)比较来检测车辆是否有超偏超重情况。毕业设计(论文)专题部分:毕业设计(论文)专题部分:题目:题目:基本内容:基本内容:学生接受毕业设计(论文)题目日期学生接受毕业设计(论文)题目日期第第周周指导教师签字:指导教师签字:年年月月日日东北大学本科毕业设计(论文) 摘要II超偏超重检测系统的设计与实现摘 要随着中国加入 WTO,国内物流企业既面临前所未有的机遇,也面临残酷的市场竞争。而铁路作为国家重要的基础设施、国民经济的大动脉和大众化的交通工具,在现代物流体系中发挥着重要作用,为国民经济持续快速协调健康发展提供了强大的运力支持,为物流业的快速发

6、展奠定了结实的基础。而在大量铁路货运运输过程中,列车车厢会存在超重偏重的现象,在运输过程中存在很大的安全隐患,极大地影响着铁路运输的安全和铁路的整体形象,为了避免造成巨大的人员伤亡及财产损失,如果能方便,准确,有效,及时地检测列车超偏超重问题,便可极大限度地预防此类事故的发生,因此列车车厢超偏超载检测对铁路运输有着极其重大的意义。系统的主要功能就是对车厢四轴进行数据采集,通过系统计算结果,检测该车厢是否有超重偏重现象发生。该系统是基于 Linux 操作系统上的 C+程序开发(本设计在 VMware 下的 LiunxRedHat 9.0 操作系统上进行) ,经交叉编译后将可执行文件移植到 ARM

7、 机上,通过现场测试人员的信息选择以及检测卡尺的数据采集,分别在空/重(K/Z)情况下,对车辆弹簧压缩情况进行测量,数据录入、保存,系统计算后,将计算结果与标重(BZ)比较,检测车辆是否发生超偏超重情况。本文首先进行了系统的需求获取和业务分析。然后,采用分治的方法对系统进行设计,将系统分为若干个功能模块,叙述了各个功能模块的详细设计与实现。通过对系统的测试,对其功能和性能进行评估。最后,进行总结,介绍系统的特点和不足之处,说明下一步的工作方向。关键字:车厢,超重,偏重,嵌入式开发东北大学本科毕业设计(论文) AbstractIIIDesign and Implementation of Ove

8、rweight-errorweight Detecting SystemAbstractWith Chinas accession to WTO, the domestic logistics business facing unprecedented opportunities, but also face brutal competition in the market. The railway as a national critical infrastructure, the national economy artery and popular means of transport

9、in modern logistics system plays an important role, for the sustained, rapid, coordinated and healthy development of a strong capacity to support the rapid development of logistics industry laid a solid foundation.In a large number of rail freight transportation, the train cars will exist excess emp

10、hasis on the phenomenon, in transit there is a big security risk, greatly affecting rail safety and rails overall image, in order to avoid huge casualties and property damage, if convenient, accurate, effective and timely detection of train Unbalanced overweight, can greatly limit to prevent such in

11、cidents, so rail vehicles over partial overload detection on rail transport has a great significance.Main function is to collect data on the car four-axis, calculated by the system to detect whether there is excess emphasis on the car phenomenon. The system is based on the Linux operating system on

12、the C + + application development (the design LiunxRedHat 9.0 operating system under VMware on), by the cross compiler will be ported to ARM machine executable file, through field testing of information personnel selection and testing caliper data collection, respectively, air / weight (K / Z) case,

13、 the vehicle to measure the spring compressed, data entry, storage, system calculations, the calculated results with standard weight (BZ) compared to detect whether the vehicle is to occur, Partial overweight.Firstly, the system requires for access and business analysis. Then, using the partition me

14、thod of the system design, the system is divided into several functional modules, described the various functional modules of the detailed design and implementation. Through the system, test its functionality and performance assessment. Finally, to sum up, introduc the system features and shortcomin

15、gs, indicating future work directions.Key words: cars, overweight, erroweight, embedded development东北大学毕业设计(论文) 目录IV目 录毕业设计(论文)任务书.I摘 要.IIABSTRACT.III第 1 章 引 言.11.1 课题研究的背景和来源 .11.2 课题研究成果应用的实际意义 .21.3 本文的内容及主要工作 .3第 2 章 相关技术简介.52.1 嵌入式 LINUX开发环境.52.2 QT 系统.52.2.1 QT/Embedded 开发环境.52.2.2 QT 的优势.62.2

16、.3 Qtopia.62.3 交叉编译开发环境 .62.4 本章小结 .7第 3 章 需求分析.93.1 系统实现目标 .93.2 系统运行环境 .93.3 功能性需求描述 .93.3.1 开始检测.103.3.2 计算打印.113.3.3 查询修改.113.3.4 联机上传.113.4 非功能性需求描述 .113.5 本章小结 .12第 4 章 系统设计.134.1 系统设计原则 .134.2 系统总体设计 .134.3 主要窗口设计 .14东北大学毕业设计(论文) 目录V4.3.1 Login 设计.144.3.2 MainDlg 主窗口设计 .154.3.3 Measure 窗口设计.1

17、74.3.4 Myquery 设计.204.3.5 Browse4print 设计.214.3.6 Upload 窗口设计.224.3.7 Disquery 设计.234.3.8 Print 设计.244.3.9 Dataif 设计.244.3.10 Key 设计.254.3.11 Posix_QextSerialPort 串口设计.264.3.12 Result 设计.264.4 本章小结 .26第 5 章 系统实现.275.1 开始检测模块 .275.2 计算打印模块 .295.3 查找修改 .325.4 联机上传 .355.5 本章小结 .35第 6 章 系统测试.376.1 单元测试

18、.376.2 集成测试 .386.3 系统测试 .38 6.3.1 系统测试数据.386.4 本章小结 .39第 7 章 结 论.417.1 本文工作总结 .417.2 进一步展望 .41参考文献.43致 谢.45东北大学毕业设计(论文) 第 1 章 引言- 1 -第 1 章 引 言1.1 课题研究的背景和来源铁路作为国民经济的大动脉,铁路货运在现代物流体系中发挥着重要作用,为了能更好的为国民经济持续快速的发展提供运力,保证铁路货运的安全,对火车安全系数的检测显得尤为重要。随着电子技术的快速发展,特别是大规模集成电路的产生而出现的微型机,使现代科学研究得到了质的飞跃,而嵌入式微控制器技术的出现

19、则是给现代工业控制领域带来了一次新的技术革命。超偏超重检测系统就是基于嵌入式系统的开发,满足现代铁路货运检测的嵌入式新产品。同其他计算机技术一样,嵌入式也是在硬件和软件交替发展的双螺旋支撑下逐渐趋于稳定和成熟的。嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能1。嵌入式系统的特点:嵌入式系统功耗低、体积小、专用性强。嵌入式系统与 PC 的最大不同就是嵌入式 CPU 大多工作在为特

20、定用户群的系统中,能够把PC 中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。嵌入式系统的硬件和软件都必须高效率地设计,系统要精简。操作系统一般和应用软件集成在一起。对软件代码质量要求很高,应该尽最大可能避免“死机”的发生。嵌入式系统开始需要专门的开发工具和开发环境。嵌入式系统一般指非 PC 系统,它包括硬件和软件两部分。硬件包括处理器微处理器、存储器及外设器件和 IO 端口、图形控制器等。软件部分包括操作系统软件(OS) (要求实时和多任务操作)和应用程序

21、编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制东北大学毕业设计(论文) 第 1 章 引言- 2 -着应用程序编程与硬件的交互作用5。嵌入式控制器的应用几乎无处不在:移动电话、家用电器、汽车无不有它的踪影。嵌入式控制器因其体积小、可靠性高、功能强、灵活方便等许多优点,其应用已深入到工业、农业、教育、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化化进程、提高生产率等方面起到了极其重要的推动作用。嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含了 5 - 10 个嵌入式微处理器。在制造工业、

22、过程控制、网络、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面均是嵌入式计算机的应用领域。嵌入式系统工业是专用计算机工业,其目的就是要把一切变得更简单、更方便、更普遍、更适用;通用计算机的发展变为功能电脑,普遍进入社会,嵌入式计算机发展的目标是专用电脑,实现“普遍化计算”,因此可以称嵌入式智能芯片是构成未来世界的“数字基因”7。1.2 课题研究成果应用的实际意义铁路行车安全是铁路运输工作的重中之重。铁路部门将防止货物三重一超两脱一开(超重,偏重,集重;超限;货物脱落,蓬布脱落;车门开放)作为确保行车安全的重要工作常抓不懈,通过明确岗位责任制,强化作业现场管理等方法,但是由

23、于历史原因,铁路现有的货运货物计量一直采用比较原始的计量方式:整车货物以件计算,散装货物通过测定其密度来确定装载高度,这些办法非常不准确,因而,货运列车因为超重、偏载而引起断轴、切轴、爬轨和列车颠覆事故时有发生,引起的事故骇人听闻,极大地影响着铁路运输的安全和铁路的整体形象,超偏超载近年来成为影响铁路行车安全的重要因素,如果能方便,准确,有效,及时地检测列车超偏超重问题,便可极大限度地预防此类事故的发生,因此铁路车辆超偏超载检测对铁路运输有着极其重大的意义。由于铁路车辆检测具有重大意义,在超偏超重检测方面有很多方法,最常见的有轨道衡方法。固定式轨道衡测量方法只具有简单的静态称重功能,投资大且需

24、要专门的称重地点,不能检测出偏载,而且由于安装要求和成本较高,无法大量采用,使应用受到很大的局限性。嵌入式的发展极大推动了计算机技术和计算机产业的发展,使计算机与各个领域完美结合,所以将计算机技术与铁路检测结合起来,将检测算法以计算机软件形式经过嵌入式开发应用到现在铁路检测当中。东北大学毕业设计(论文) 第 1 章 引言- 3 - 本课题研究的系统,是通过嵌入式系统,将超偏超生检测算法通过程序移植到 ARM 机上,系统通过检测人员的信息选择及数据采集,并进行数据的计算、保存、打印,将计算得到的结果与车厢标重比较,实现对车厢超偏超重的检测。1.3 本文的内容及主要工作本文在分析介绍了嵌入式系统相

25、关技术,基于铁路检测系统的需求特点,完成嵌入式检测系统的设计,实现对车厢超偏超重的检测。各章的内容组织如下:第 2 章介绍了嵌入式 Linux 开发环境、QT 系统、交叉编译技术。第 3 章分析了系统的开发环境,利用用例建模分析系统的功能需求,并且根据实际情况补充了部分需求,提出了非功能性需求。第 4 章对系统进行总体设计,对检测系统的各个窗口进行设计,包括login、mainDlg、measure 、myquery、disquery、browse4print、print、upload、key,并画出个别窗口的类图。第 5 章通过流程图介绍了开始检测、计算打印、查询修改、联机上传四个模块的实现

26、,并简单系统的工作流程。第 6 章介绍了利用工具进行测试的情况,并对出现的错误进行了分析解决。第 7 章结论部分是对整个论文工作的总结以及下一步工作的展望,指出我们工作中有待改进的地方,同时指明了下一步的研究方向。东北大学毕业设计(论文) 第 1 章 引言- 4 -东北大学本科毕业设计(论文) 第 2 章 相关技术简介- 5 -第 2 章 相关技术简介2.1 嵌入式 Linux 开发环境由于嵌入式系统本身相对于 PC 来说资源的缺乏,可能嵌入式设备上根本没有标准显示终端或者标准键盘,因此也就不可能在嵌入式设备上直接进行程序编制,即嵌入式系统本身不具备自举开发能力,只能先在 PC 上完成程序编写

27、、编译、链接,之后把可执行程序下载到嵌入式设备上运行。通常采用宿主机+目标机的交叉调试方式。宿主机就是安装有嵌入式 linux 开发环境的 PC 机,可以利用它强大的功能资源高效地完成目标系统的开发。嵌入式开发通常需要有交叉编译、调试等系列工具、目标板的编程下载工具、目标处理器及平台的整个内核源码树等。可以自己去组建、移植所有的一切8。2.2 QT 系统QT 是一个支持多操作系统平台的应用程序开发框架,它的开发语言是C+。QT 最初主要是为跨平台的软件开发者提供统一的、精美的图形用户编程接口,但是现在它也提供了统一的网络和数据库操作的编程接口12,13,14。QT 是以工具开发包的形式提供给开

28、发者的,这些工具开发包包括了图形设计器、Makefile 制作工具、字体国际化工具和 QT 的 C+类库等。谈到 C+类库我们自然会想到 MFC。QT 的类库等价于 MFC 的开发库,但是 QT 的类库是支持跨平台的类库,也就是说 QT 类库封装了适应不同操作系统的访问细节,这是 QT 的魅力所在。目前 QT 支持的操作系统平台包括:MS/Windows - 95、98、2000、XP 和 VistaUnix/Linux 和很多其他 X11 平台; Macintosh -Mac OS X;Embedded 有帧缓冲(framebuffer)支持的 Linux 平台,Windows CE10。2

29、.2.1 QT/Embedded 开发环境QT/Embedded 是一个为嵌入式设备上的图形用户接口和应用开发而定制的C+工具开发包。通常可以运行在多种不同的处理器上部署的嵌入式 Linux 操作系统上。此外,QT/Embedded 还包括了几个提高开发速度的工具。一般来说,属于 QT/Embedded 开发的应用程序最终会发布到安装有嵌入式东北大学本科毕业设计(论文) 第 2 章 相关技术简介- 6 -Linux 操作系统的小型设备上,所以使用装有 Linux 操作系统的 PC 或者工作站来完成 QT/Embedded 开发当然是最理想的环境,尽管 QT/Embedded 也可以安装在 UN

30、IX 和 Windows 系统上13。2.2.2 QT 的优势QT 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 QT 具有下列优点: (1)优良的跨平台特性: QT 支持下列操作系统: Microsoft Windows 95/98,Microsoft Windows NT, Linux,Sun OS,HP-UX,等等。(2)面向对象:QT 的良好封装机制使得 QT 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。QT 提供了一种称为 signals/slots

31、的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。 (3)丰富的 API :QT 包括多达 250 个以上的 C+ 类,还提供基于模板的 collections,serialization,file,I/O device,directory management,date/time 类,甚至还包括正则表达式的处理功能。2.2.3 QtopiaQtopia 是为采用嵌入式 Linux 操作系统的消费电子设备而开发的综合应用平台, Qtopia 包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。2.3 交叉编译开发环境程序设计需要开发环境的支

32、持。根据运行平台的不同,开发环境分为本地开发环境和交叉开发环境,交叉开发环境又可分为开放型以及商业型两大类。需要交叉开发环境的支持是嵌入式应用软件开发的一个显著特点,交叉开发环境是指编译、链接、和调试嵌入式应用软件的开发环境,与运行嵌入式应用软件的环境有所不同,通常采用宿主机+目标机6。高级语言编写的源文件主机系统目标处理器汇编语言编写的源文件交叉编译器交叉汇编器目标文件目标文件链接器二进制可执行文件目标系统东北大学本科毕业设计(论文) 第 2 章 相关技术简介- 7 -图 2.1 交叉编译过程2.4 本章小结本章等待先对嵌入式 Linux 开发环境进行了简单介绍,以及当今嵌入式开发流行的原因

33、;介绍了 QT 系统、如何建立 QT/Embedded 开发环境、QT 的优势以及 Qtopia 开发平台;同时介绍了交叉编译开发环境。东北大学本科毕业设计(论文) 第 2 章 相关技术简介- 8 -东北大学本科毕业设计(论文) 第 3 章 需求分析- 9 -第 3 章 需求分析软件需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。它的主要用途是明确系统需求,是用户和开发人员之间进行讨论的基础,并作为系统设计、实现以及测试的依据。只有准确全面的需求获取与分析才能保证系统设计、系统实现的顺利进行,为后期测试提供必要的支持。

34、3.1 系统实现目标在火车载重检测过程中,首先分别在空/重(K/Z)情况下,对火车车厢四轴弹簧压缩情况进行测量,数据采集、录入、保存,通过系统计算,将计算结果与标重(BZ)比较,检测车辆是否超偏超重。为保证检测系统能够有效地为车辆超偏超重检测人员服务,从功能上必须达到以下目标:必须实现在车辆超偏超重检测过程中的所有必需功能。作为超偏超重检测系统,系统必须能够实现对数据的采集、录入,保存,查找、打印等功能,保证系统实现的功能的有效性。必须保证检测人员得到数据的及时性和可靠性。检测人员作为整个系统的操作者,系统的信息通过检测人员的采集和录入,通过卡尺采集到的数据也必须快速传达给系统,同时,要保证得

35、到的数据的可靠性。必须保证检测人员和系统之间进行有效地通信。对于检测系统而言,通过系统计算得到的数据,对车辆是否进行调整尤其重要,所以,要保证检测人员和系统通信的通畅性、有效性,提高系统检测的效率。3.2 系统运行环境硬件环境:嵌入式开发板 FriendlyARM,数据采集卡尺,热敏打印机,软件环境:VMware 下的 LinuxRedHat 9.0 操作系统,采用 QT 系统的 C+程序开发。3.3 功能性需求描述在面向对象的系统分析中,获取功能需求的最常用的技术就是用例建模技术。它能够直观地向客户展示系统的功能,方便技术人员准确地获取需求。在项目开发的前期,它帮助开发人员理解系统的需求而不

36、考虑具体的实现方法。东北大学本科毕业设计(论文) 第 3 章 需求分析- 10 -用例,表示系统的一种行为或者某个功能。它是在特定条件下,为了达到某种目的,系统和用户之间进行交互的一个序列。用例模型由参与者和用例组成,参与者是与系统进行交互的外部实体,可能是某个人或者是某个事物。下图显示的就是本系统的用例图。本系统中,参与者是检测人员,对于用例分析来说,只有用例图和用例描述相结合才能表示系统的需求,相关的用例描述如下:系系统统检测人员登录退出开始检测计算打印查询修改联机上传查询打印修改图 3.1 超偏超重检测系统用例图3.3.1 开始检测用例标识:1.0 参与者:检测人员简要说明:检测人员在系

37、统要求下选择信息、采集数据。基本事件流:东北大学本科毕业设计(论文) 第 3 章 需求分析- 11 -1)检测人员选择信息,包括空/重(K/Z) 、车型(c50121/k1023/w8110/w8010)等,对车辆进行数据采集。2)对所测量车号录入,并进行保存,选择是否打印。3.3.2 计算打印用例标识:2.0 参与者:检测人员简单说明:检测人员向系统提供要计算打印的车号或日期,系统显示出要打印的记录或显示“无记录” ,查询到记录可以选择打印结果。基本事件流:1)检测人员向系统提供要查询的车号或日期进行查询。系统进行查询,反馈结果,查询方式为按日期查询时,可以查到当天的多个记录。2)检测人员可

38、以对查询到数据进行修改、保存、打印结果。3.3.3 查询修改用例标识:3.0参与者: 收货人简要说明:货物到达站点以后,由收货人将货物提走。基本事件流:1)货物在卸货操作以后检测当前位置,若当前站点和目的站点相同,则提示相关人员货物已经到达目的地。2)管理人员联络收货人完成提货操作。系统修改货物的状态。3.3.4 联机上传用例标识:4.0 参与者:检测人员简单说明:检测人员向宿主机发出信号,上传数据。基本事件流:1)检测人员向宿主机发出信号,选择是否上传数据,并选择是否删除现存记录。3.4 非功能性需求描述非功能性需求在整个系统中占有非常重要的位置,对系统的非功能性需求的满足是系统成功的基础,

39、下面列出本系统的非功能性需求:(1) 系统能够长时间的持续工作。对于企业应用级的系统来说,软件的稳定性与正确性一样重要。考虑到本东北大学本科毕业设计(论文) 第 3 章 需求分析- 12 -系统的实际情况,检测系统必须提供满足 10 小时以上的工作电量。(2) ARM 机必须能存储 100 条记录以上的空间。因为检测人员随身携带本检测系统,当需要进行大量的数据测量与检测时,要保证 ARM 机本身能够提供足够大的存储空间,至少要达到 100 条记录,一次检测工程结束后,可以将当前检测到的通过联机上传给宿主机,清空存储空间。3.5 本章小结本章首先介绍了系统的实现目标、开发环境。然后通过用例分析的

40、方式获取和分析了系统的功能性需求,对需求进行了补充,提出了系统的非功能性需求。从而对系统的整体需求有了完整的了解。从本章的需求分析中可以得出,系统的非功能性需求相对来说比较易于实现,而功能性需求比较严格。对于功能性需求影响最大的就是系统设计的架构,所以在设计和实现系统时,要在对系统的架构给予充分重视的前提下,实现功能性需求。东北大学本科毕业设计(论文) 第 4 章 系统设计- 13 -第 4 章 系统设计4.1 系统设计原则(1) 低成本。随着技术的进步和系统复杂性的增加,软件成本在整个系统中所占的比重越来越大,企业应用中已经达到 25%左右,而且有继续增加的趋势。为了降低系统的成本,系统中各

41、个模块都采用开源项目中的组件完成。它们不仅能够提供比较完善的功能,而且还能根据系统需求进行适当扩展。(2) 规范性。从软件周期上来考虑,软件维护阶段在软件生命周期或生存期中占较大比重,有的可达软件生存周期的 50-70%。所以需要软件在设计的过程中积极遵循各种规范,保证后期维护和开发人员能够快速理解系统。(3) 易扩展。系统的设计直接决定可扩展性。可扩展性是软件工程追求的目标,能够大大提高软件的复用程度,较低开发成本。4.2 系统总体设计系统主要是为铁路检测人员提供好的检测设备,所以简单快捷实用是根本出发点。系统根据功能划分,将功能分解,降低之间的耦合性,从而,为了替换某个模块达到质量或效率的

42、提升,就不会改变整个结构,只需要改相应的模块,工作量就会明显减少。说明:执行文件:jcxt数据文件:data.txt密码文件:password.txt车型文件:vehicletype.txt桌面文件:jcxt.desktop项目文件:jcxt.pro (用 Qdevelop 打开)交叉编译通过的 jcxt 二进制文件以及 data.txt 文件、password 文件、vehicletype 文件复制到/opt/Qtopia/bin 路径下,桌面文件 jcxt.desktop 文件复制到/opt/Qtopia/apps/Applications 。源代码文件:login.cpp login.h

43、 登录main.cpp 主程序mainDlg.cpp mainDlg.h 主窗口东北大学本科毕业设计(论文) 第 4 章 系统设计- 14 -measure.cpp measure.h 测量窗口myquery.cpp myquery.h 查询窗口display.cpp display.h 显示查询browse4print.cpp browse4print.h 为打印查询print.cpp print.h 打印upload.cpp upload.h 上传数据dataif.cpp dataif.h 读取数据接口qextserialport.cpp qextserialport.h 串口qextse

44、rialbase.cpp qextserialbase.h 串口基类posix_qextserialport.cpp posix_qextserialport.h posix 串口key.cpp key.h 输入数字、字符myctrl.cpp myctrl.h 重写控件类4.3 主要窗口设计4.3.1 Login 设计为了保证检测的保密性和安全性,对系统设置了密码,只有正确的登陆密码和退出密码才能出入该系统。首先在 ARM 机上点击系统启动,进入系统,输入登录密码,才允许进行下一步操作;同样的,在一次检测结束之后,输入退出密码,才能退出系统。在 login 主函数 login()中为输入的密码

45、设置一个 edit 框,数字写入的位置lineEdit = new QLineEdit(this);lineEdit-setGeometry(QRect(p00.x(), p00.y() + rowSpace, btWidth*2, btHeight - 10);lineEdit-setEchoMode ( QLineEdit:Password );lineEdit-show();设计 0-9 的数字按钮,点按数据键可以将数字以“*“号键的形式写入缓冲区Button*= new PushButton(* , this, 0);QObject:connect(button*,SIGNAL(cli

46、cked(QPushButton*),this, SLOT(btNumClicked(QPushButton *);Button*-setGeometry(QRect(p00.x(), p00.y() + 2*rowSpace, btWidth, btHeight);对输入错误的数字进行“清除” ,以便重新输入btClear = new 东北大学本科毕业设计(论文) 第 4 章 系统设计- 15 -QPushButton(codec-toUnicode(清除, strlen(清除) , this, 0);QObject:connect(btClear, SIGNAL(clicked(), th

47、is, SLOT(btClearClicked();btClear-setGeometry(QRect(p00.x() + colSpace * 2, p00.y() + rowSpace, btWidth, btHeight);函数 btNumClicked(QPushButton * btNum)则是将数字写入 edit 框,点按数字按钮可将数据写入。函数 btLoginClicked()是将输入的密码和系统已设置的登陆密码进行比较,若输入正确,允许进入,否则显示“密码错误” ,不能进入检测系统。函数 btQuitClicked()是将输入的密码和系统已设置的退出密码进行比较,若输入正确,

48、退出系统,否则显示“密码错误” ,不能退出检测系统。函数 btClearClicked()是对输入有误的数字进行清除。图 4.1 login 窗口图4.3.2 MainDlg 主窗口设计主窗口的设计是系统设计的关键,是引导检测系统的中枢。可以通过主窗口进入到四个功能模块(开始检测、计算打印、查询修改、联机上传) 。在 MainDlg 主函数 MainDlg()中设计“开始检测” “计算打印” “查找修改”东北大学本科毕业设计(论文) 第 4 章 系统设计- 16 -“联机上传”四个按钮,点击按钮可以进入对应的操作窗口btStartMeasure = new QPushButton(codec-

49、toUnicode(开始检测, strlen(开始检测) , this, 0);QObject:connect(btStartMeasure, SIGNAL(clicked(), this, SLOT(btStartMeasureClicked();btStartMeasure-setGeometry(QRect(p00.x(), p00.y() + rowSpace + rowSpan, btWidth, btHeight);函数 showSubWin()可以进入子窗口下进行下一步具体操作。函数 btStartMeasureClicked()是进入到开始检测的子窗口,在些窗口下可以对车厢四轴

50、进行数据采集,车型车号的录入,保存或打印结果。函数 btCalcPrintClicked()是进入到计算打印的子窗口,在此窗口下可以对数据进行查找,若存在,则可对数据进行超偏超重的检测,并可以将得到的结果打印出来。函数 btSeachNReviseClicked()是进入到查询修改的子窗口,在此窗口下可以对已存在的数据进行查找或修改功能。函数 btConnectPCClicked()是进入到联机上传的子窗口,在此窗口下可以将已写入 data.txt 的记录上传给宿主机,并选择是否将全部记录删除,以减少ARM 内存空间。图 4.2 主窗口东北大学本科毕业设计(论文) 第 4 章 系统设计- 17

51、 -4.3.3 Measure 窗口设计Measure 模块是该检测系统的核心,要实现对车厢车轴的检测、对记录的保存等工作。对 Measure 做出类图构造如下:+btLogoutClicked()+showSubWin()+btSeachNReviseClicked()+btCalcPrintClicked()+btStartMeasureClicked()+subdlgReturnHandle()+btQuitClicked()+resizeEvent()+closeEvent()+mouseReleaseEvent()+showAfterLogin()-btHeight-btWidth-

52、rowSpan-rowSpaceMainDlg+resizeEvent()+closeEvent()+receiveMsg()+leZ2_1Clicked()+leVehicleNumClicked()+getdate()+reset()+btSaveClicked()+keyReturnClicked()+btMeasureReturnClicked()+btClearClicked()+mouseReleaseEvent()-btHeight-btWidth-rowSpan-rowSpace-colSpace Measure+setInfo()+btPrintClicked()+btRet

53、urnClicked()-btHeight-btWidth -rowSpan-rowSpace-colSpacePrint+bt2CharClicked()+bt2NumClicked()+judgeInput()+parseInutWeight()+parseDateNum()+parseVehicleNum()+setTitle()+parseVehicleStyle()+setInputType()+setInputStr()+parseDateFormat()+parsVehicleNumFormat()+judgeInput4btConfirm()+btClearClicked()+

54、btConfirmClicked()-btHeight-btWidth-rowSpace-colSpacekey+parseRow()+row2Str()+readLine4Upload()+readByDate()+readAll()+readByCH()+appendRow()+clearFile()+modifyRow()+parsePwd()+readPasswd()dataifqextserialport图 4.3 measure 类图设计空/重和车型的下拉菜单,检测人员可以对信息进行选择,因为要分别在车厢空载和载重情况下的数据采集,以及车型的选择,菜单是实现选择的最好形式。cmbE

55、mptyOrLoad = new QComboBox(K/Z, this, 0);cmbEmptyOrLoad-setGeometry(QRect(p00.x()+colSpace-50, p00.y() + 3, btWidth , btHeight);QString str;str = K; cmbEmptyOrLoad-insertItem(str, 0);str = Z; cmbEmptyOrLoad-insertItem(str, 1);东北大学本科毕业设计(论文) 第 4 章 系统设计- 18 -对于车型的选择,是通过读取文件来进行的QFile file(/opt/Qtopia/b

56、in/vehicletype.txt)。为车轴设计数据传送窗口,串口送入的数据直接写入正在检测的车轴窗口QLabel * lbZ1_1 = new QLabel(codec-toUnicode(轴 1-1, strlen(轴 1-1) , this, 0);lbZ1_1-setGeometry(QRect(p00.x(), p00.y() + rowSpan + rowSpace, btWidth, btHeight);leZ1_1 = new LineEdit(this);leZ1_1-setGeometry(QRect(p00.x() + colSpace - 50 , p00.y() +

57、 rowSpan + rowSpace , btWidth, btHeight);QObject:connect(leZ1_1, SIGNAL(clicked(), this, SLOT(leZ1_1Clicked();leZ1_1-show();调用串口函数 QextSerialPort(),对于要采集车厢四个轴的数据,是通过带串口的卡尺直接送到系统中,port = new QextSerialPort();port-setBaudRate(BAUD4800); port-setFlowControl(FLOW_OFF);port-setParity(PAR_NONE); port-setD

58、ataBits(DATA_8); port-setStopBits(STOP_1); port-open(IO_ReadWrite);设计车号的窗口,点击窗口,切换到数字 0-9 的窗口,要车号写入(要求车号必须为 7 位数字)设计日期的窗口,日期是系统是通过自己的函数 getdata()得到(要求日期为 6 位显示,即年年月月日日) 。设计保存的按钮,点击保存,可以对已写入和选择的数据信息保存到data.txt 文件中。设计返回的按钮,点击返回,可以返回到上一层窗口。函数 receiveMsg()是将从串口卡尺得到的数据接收到系统中,axis 是轴标志,若为 0,则串口未打开,数据不能输入,

59、若不为 0(axis 可以是 1-4) ,则可以将数据送入到指定的车轴存储区。函数 leZ1_1Clicked()与函数东北大学本科毕业设计(论文) 第 4 章 系统设计- 19 -receiveMsg()有联系,leZ1_1Clicked()中指定 axis 的数值将直接影响receiveMsg()中的 switch 语句的选择,关系到串口写入的数据送往哪一车轴存储区。函数 leVehicleNumClicked()是实现对车号的输入,在 Measure()主函数中已经对要输入的车号设计了窗口,要输入车号时,窗口转换到数字键窗口,进行 7 位的车号输入。函数 getdate()是实现系统对日

60、期的获取,因为 ARM 机系统本身带有时间装置,所以检测系统只需要获取 ARM 机本身的时间即可。函数 btSaveClicked()是实现对已获得的数据进行保存,将信息写入到data.txt 文件中,并对写入的格式进行设定。保存成功后,会弹出窗口,提示保存成功。同时可以对获得的数据进行打印。Axis是否为0开始判断四个车轴有无空数据是否无输入数据有车号冲突返回写入data.txt文件否数据重写是打印是否东北大学本科毕业设计(论文) 第 4 章 系统设计- 20 -图 4.4 save 流程图函数 btMeasureReturnClicked()可以回到主窗口下,退出本窗口,或进入到其他窗口进

61、行操作。函数 reset()可以将已写入的数据重置,全部清空,以便进行下次检测。4.3.4 Myquery 设计可以对已存储的数据进行查询,查到后可以对数据进行修改,保证数据的可靠性和结果的准确性。类图设计如下:+btLogoutClicked()+showSubWin()+btSeachNReviseClicked()+btCalcPrintClicked()+btStartMeasureClicked()+subdlgReturnHandle()+btQuitClicked()+resizeEvent()+closeEvent()+mouseReleaseEvent()+showAfter

62、Login()-btHeight-btWidth-rowSpan-rowSpaceMainDlg+leVehicleNumClicked()+closeEvent()+leInputDateClicked()+keyReturnClicked()+btSearchClick()+btReturnClicked()-btHeight-btWidth-rowSpan-rowSpace-colSpaceMyQuery+queryByCH()+queryByDate()+query()+leClicked()+keyReturnClicked()+btReturnClicked()+btNextCli

63、ck()+btPrevClicked()+save()+mouseReleaseEvent()-btHeight-btWidth-rowSpan-rowSpace-colSpaceDispQuery+bt2CharClicked()+bt2NumClicked()+judgeInput()+parseInutWeight()+parseDateNum()+parseVehicleNum()+setTitle()+parseVehicleStyle()+setInputType()+setInputStr()+parseDateFormat()+parsVehicleNumFormat()+ju

64、dgeInput4btConfirm()+btClearClicked()+btConfirmClicked()-btHeight-btWidth-rowSpace-colSpacekey+parseRow()+row2Str()+readLine4Upload()+readByDate()+readAll()+readByCH()+appendRow()+clearFile()+modifyRow()+parsePwd()+readPasswd()dataif图 4.5 Myquery 类图查询的方式有按车号查询和按日期查询两种。首先设计“按车号查询” “按日期查询”的窗口,点击窗口,切换到

65、数字 0-9 的窗口,将所要查询的车号写入(要求车号必须为 7 位数字) ,或者将所要查询的日期写入(日期为 6 位显示,东北大学本科毕业设计(论文) 第 4 章 系统设计- 21 -即年年月月日日) 。设计查询按钮,点击查询,可以对已存在在 data.txt 文件中的数据进行查询。按车号查询只能查找到唯一记录,或者显示“无记录” ;“按日期查询”可以查询到当日的多个记录,可以通过“”或“ ”进行近一步的选择。设计返回按钮,点击返回,可以返回上一层窗口。函数 leVehicleNumClicked()实现要进行按车号查询时,对车号的录入,在 Measure()主函数中已经对要输入的车号设计了窗

66、口,要输入车号时,窗口转换到数字键窗口,进行 7 位的车号输入。函数 leInputDateClicked()实现要进行按日期查询时,对日期的录入。函数 btSearchClick()实现对数据的查询工作,分别在按车号和日期下进行查询。先判断车号或日期是否是空,将输入的和记录的车号或日期比较,若相等,则调出记录。4.3.5 Browse4print 设计打印查询可以对已有的记录进行查询,查询方式有按车号和按日期进行查询,与查询修改中的功能和方式一样,充分利用了函数的可复用性。按车号查询时,若存在记录,则可对其进行重新打印,若不存在,则弹出“无记录” ;按日期查询,可以查询到指定日期下的多条记录,通过“” “ ”进行记录选择,同样可以对其进行重新打印。Browse4print 类图设计如下:+btLogoutClicked()+showSubWin()+btSeachNReviseClicked()+btCalcPrintClicked()+btStartMeasureClicked()+subdlgReturnHandle()+btQuitClicked()+resizeEvent()

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!