版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于WINCE的GPS系统软件设计姓名:钟杨 学号:05061112 导师:彭月祥北京工业大学毕业设计(论文)任务书 题目基于WINCE的GPS系统软件设计 专业 应用物理学 学号 0506112 姓名钟杨主要内容、基本要求、主要参考资料等:WinCE是嵌入式计算机的操作系统。有Word, MediaPlayer,支持USB鼠标、键盘,支持IE浏览器实现上网功能。相比于基本内核而言,增强型内核需要增加的配置包括: API、USB鼠标键盘驱动、FAT文件系统、微软拼音输入法、微软字库、平台管理器基础引擎、活动同步传输、TCP/IP传输和网卡驱动。WINCE的配置与应用开发是便携式计算机专用数字设
2、备的流行技术。本设计主要任务是:配置WINCE,实现串口通信功能。并通过GPS信息的读取与显示,熟练使用EVC的程序编写。最后实现在WINCE环境下,实时显示当前的经纬度和时间。要求学生具有计算机原理,WINCE,EVC的基本知识,并要求熟练掌握C+的编程。时间安排:2009年2月3月:阅读文献,了解WINCE,学习GPS模块。2009年4月:设计RS232原理和驱动程序,编写GPS信息解析程序,进行经纬度程序测试。2009年5月:撰写论文2009年6月:准备答辩指导教师签章: 彭月祥 专业负责人签章:2009年 3月 7 日摘要Windows CE操作系统是大部分手持移动设备的操作系统,其风
3、格类似PC机上的Windows操作系统,上手简单,因而备受人们青睐。 的应用也越来越广泛.在工业控制中串口的应用十分广泛,需要的外设大都是通过串口进行接入的,例如,GPS设备以及手柄等都是可以通过串口与嵌入式系统进行通信的,而且效果非常的不错.在工业控制中另一个比较重要的通信接口就是I/O 口,很多IC器件都是由I/O口控制,实现其功能的,因此,对于研究如何在Windows CE上实现控制I/O口是非常有必要的. 在通信专业演变出来的GIS系统中,对于GPS的软件开发已经是一个热门话题,开发此类软件,能够实现全球定位,在定位系统中有着很重要的意义.基于以上考虑,通过本设计,完成以下工作:(1)
4、配置PB与EVC(2)在EVC下编写一串口类,并由此串口类的到由GPS模块传来的当前系统所处的地理位置和当前的UTC时间.将此UTC时间转换为系统所处的当地时间,在WINCE系统中显示系统所处的地理位置和当地时间. (3) 在EVC上编写一键盘式鼠标的程序,以达到熟悉编写关于在WINCE系统中控制I/O口的目的,并方便今后在WINCE系统上的操作.(4)通过PB将该可执行文件下载到2410开发板中,连接号硬件,实现该应用程序.关键词:嵌入式,WinCE,EVC,PB,GPS,键盘式鼠标.AbstractWINDOWS CE handheld operating system is the ma
5、jority of the operating system For mobile devices. The style of WINDOWS CE is similar to the Windows operating System on PC. It is very easy to learn, so that more and more people like to use it. Recently, as communication technology and the rapid development of computer Technology, computer control
6、 has become more and more important part in human life.In the industrial control, the serial ports has been used in more and more place.More and more peripherals are required for control through the serial port.Such as GPS devices, handle devices and so on. In the industrial control, another Importa
7、nt communication port is the I/O ports, a lot of IC device is controlledby this ports. In the GIS system, how to develope a soft-ware that can receive the Globe positioning has been a hot topic. It is very important for people to achieve thisFunctionality. Based on the above considerations, I will c
8、omplete the following tasks:(1)configuring PB and EVC (2)Using EVC to write a class that can receive the UTC time and GPS information.And then, changing the UTC time to local time. Finally, Using the monitor to display the local time and the position of the system. (3)Using EVC to write a keyboard-s
9、tyle mouse. According the ways, we can know how to use I/O in the WINCE operating system. (4)downloading the program to 2410 circuit board through PB and make it practicable Key word:Embedded system ,WinCE,EVC,PB,GPS, keyboard mouse.第一章 绪 论1.1课题背景全球定位系统(Global Positioning System - GPS)是美国从本世纪70年代开始研
10、制,历时20年,耗资200亿美元,于1994年全面建成,具有在海、陆、空进行全方位实时三维导航与定位能力的新一代卫星导航与定位系统。经近10年我国测绘等部门的使用表明,GPS以全天候、高精度、自动化、高效益等显著特点,赢得广大测绘工作者的信赖,并成功地应用于大地测量、工程测量、航空摄影测量、运载工具导航和管制、地壳运动监测、工程变形监测、资源勘察、地球动力学等多种学科,从而给测绘领域带来一场深刻的技术革命。随着全球定位系统的不断改进,硬、软件的不断完善,应用领域正在不断地开拓,目前已遍及国民经济各种部门,并开始逐步深入人们的日常生活。因其在众多领域的应用,使得研究其应用方法是很有必要的.并且随
11、着科学技术的发展,产品的发展趋势也越来越倾向于小巧,便携,节能,功能齐全的方向发展着.就这一发展趋势,本文设计了一个带有操作系统的GPS显示系统的嵌入式设备.下面就相关知识做一个简单的介绍.1嵌入式系统定义 国内对嵌入式系统的一般定义是:以应用为中心,一计算机技术为基础,软硬件可剪切,从而能够适应实际应用中对功能,可靠性,成本,体积,功耗等眼科的要求的专业计算机系统.2嵌入式系统的组成 嵌入式系统通常是由嵌入式处理器,外围设备,嵌入式操作系统和应用软件等几大部分组成.嵌入式处理器嵌入式处理器是嵌入式系统的核心部件.嵌入式处理器与通用处理器的最大不同点在于嵌入式处理器大多工作在为特定的用户群设计
12、的系统中.它通常把通用计算机中许多部件集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,并具有高效率,高可靠性等特征.外设备外围设备是指在一个嵌入式系统中,嵌入式处理器以外的完成存储,通信,调试,显示等辅助功能的其他部件.根据外围设备的功能可分为以下3类:嵌入式操作系统在大型嵌入式应用系统中,为了使嵌入式开发更兼方便,快捷,需要具备一种稳定,安全的软件模块集合,用来管理存储器分配,中断处理,任务间通信和定时器响应,以及提供多任务处理等,这样的软件模块集合就是嵌入式操作系统.嵌入式操作系统的引入大大扩展了嵌入式系统的功能,方便了应用软件的设计,但同时也占用了嵌入式系统的宝贵资源.一般在比较大型
13、或多任务的应用场合,才考虑使用嵌入式操作系统.应用软件嵌入式系统的应用软件是针对特定的实际专业领域的,基于相应的嵌入式硬件平台,并能完成用户预期的任务的计算机软件.用户的任务可能有时间和精度的要求,因此,有些应用软件需要嵌操作系统的支持.应用软件是实现嵌入式系统功能的关键,对嵌入式系统软件和应用软件的要求业余通用计算机软件有所不同.嵌入式软件的特点:软件要求固态化存储.为了提高执行速度和系统的可靠性.软件代码要求高质量,高可靠性.因存储设备的资源有限,并且,产品还存在实时性的要求.为此,程序编写和编译工具的质量要高,以减少程序二进制代码长度,提高执行速度.系统软件的高实时性的基本要求.为实现多
14、任务嵌入式系统的调度的高效,系统软件的高实时性是基本要求.多任务实时操作系统成为嵌入式应用软件的必要.随着嵌入式应用的深入和普及,接触到得时间应用环境越来越复杂,嵌入式软件业越来越复杂.支持多任务的实时操作系统成为嵌入式软件必需的系统软件.3嵌入式系统的特点嵌入式系统是应用于特定环境下,面对专业领域的应用系统,它具有以下特点:功耗低体积小集成度高成本低.2 WINCE操作系统微软WINDOWS CE 是一个开放且多样化的32位嵌入式操作系统,其设计目的是为了符合广泛的智能设备的需要,例如:工业控制,通信集线器和收款系统等企业工具到诸如摄影机, 和家庭娱乐设备等电子消费性产品,为自动控制,视听娱
15、乐,移动计算,终端,数据收集,数据共享及联网等各个应用领域提供了一个稳定,实时及多任务的操作系统.Wince CE .NET 被广泛的应用于工业控制,互联网应用装置,个人数字助理等各种设备.一个经典的WINDOWS CE 嵌入式系统常被定制为一个能够达到特定目的,一个轻量化及内置的能果断反应系统中断的操作系统.WINDOWS CE嵌入式系统目前支持四大系列的CPU架构(ARM, MIPS, SHx, X86)及超过两百中品牌的CPU,同时因为轻量化及高度的模块化得定制化,WINDOWS CE被广泛的应用于设计如下的各种设备:移动 /智能型通话装置数字影像装置工业自动化控制器互联网应用装置媒体应
16、用装置个人数字助理/移动手持设备常驻型网关器收款机装置机顶盒上网板窗口化简易终端并且WINDOWS CE提供给程序开发者标准的Win-32 API,ActiveX控件,MSMQ(message queuing),COM(Component Object Model)接口,ATL(Active Template Library)和MFC连接库等熟悉的开发环境.ActiveSync提供台式计算机和嵌入装置之间容易的网络接口,无论是通过序列连接,还是红外线串行端口或网络电缆连接.Windows CE对多媒体,通信(TCP/IP,SNMP,TAPI,USB, RS232等)还有安全性提供内置的支持.种
17、种地整合应用程序,包括了小型的IE浏览器,针对小型的OutLook的收信信箱的客户端程序,还有小型的容易用户扩展并自定义现行的word等对象.这样使得做出来的产品,即功能齐全,通用性广,又便于人们操作. 通过以上介绍,在WINDOWS CE操作系统上开发显示从GPS模块上下载的位置信息,这可以为以后开发诸如车载导航系统,防盗定位系统等产品提供有力的参考.从这个设计中,我们不仅能够了解和掌握有关GPS方面的有关信息,还能掌握在WINDOWS CE系统上,如何编写程序,以及深刻理解操作系统的基本原理.在通信领域中,如何通过嵌入式系统在与各种器件通信. 第二章 基于WINCE的GPS系统设计整体设计
18、方案系统框图如图-1所示,本系统由三部分组成.一,基于ARM9芯片的2410开发板,LCD显示屏,GPS模块.GPS模块EVC软件,即GPS软件系统LCD触摸显示屏ARM2410处理器 图系统功能描述1).软件界面介绍: 介绍一下本设计要完成的软件的各部分的功能:如图2.1-2.2).实现功能描述: 本设计是使用ARM9开发板的串口连接到GPS模块上,由串口将GPS模块传来的信息解析,并将解析完的数据显示在LCD显示屏上.第三章 基于WINCE的GPS系统软件设计硬件原理介绍: 本设计主要需要了解的硬件知识是HX-87 manual-GPS ENGINE BOARD模块,以及本设计的硬件连接方
19、式.HX-87 manual-GPS ENGINE BOARD模块功能介绍.1摘要产品介绍:SIRF HX-87 series GPS模块具有高精度,高性能的SIRF STarII 芯片组解决方案.该模块在同一时间跟踪20个人造卫星,同时提供快速时钟校准和1赫兹程序导航控制及电源管理系统.主要特点:高灵敏的美国瑟浮星III芯片组.多达20颗卫星跟踪的高性能接收机.TTL输出GPS命令接口.低功率消耗.平均冷却启动时间42秒.重新湖区信息只需0.1秒.支持准确每秒钟输出信号与GPS时间相一致.支持标准的NMEA-0183和美国瑟夫而精致协议.多路径减震硬件.内置的锂电池能够快速的定位.小巧的尺寸
20、(25.4*25.4*7立方毫米),易于集成到手持设备上.HX-87设计采用最新的表面贴装技术和高层次电路一体化,以实现卓越的性能,同时尽量减少尺寸和功率消耗.这种硬件和远见结合的能力使得该铲平易于集成,使用到各种形式的导航应用程序或产品上去.该模块与应用系统的通信时通过RS232(TTL电平)与NMEA-0183协议的.3.1.2技术规格:一、电器属性:1一般属性: 信道 20个信道跟踪2灵敏度: 跟踪信道: -159dBm3精确度 位置: 10米,二维二维有效值 7米(二维有效值),广域扩充系统校正 15米,差分全球定位系统纠正时间:1微秒的GPS时间同步.4基准点: 默认: 1984年世
21、界大地坐标系5采集速率: 热启动: 平均1秒钟一次 重启: 平均38秒钟一次 冷启动: 平均42秒钟一次6受力条件 高度: 18,000米 速度: 515米/秒(1000海里) 加速度: 4G 冲击力: 最大每秒钟20米7电源 电源电流: 80mA 后备电源: 3V可在重点锂电池 多达500个小时放电8射频接口 天线连接类型: MMCX9串行接口 电接口: 双向全双工串口,通过RS232连接(TTL接口) 协议: NMEA-0183 默认NMEA GGA,GSA,GSV,RMC,(可选的:GLLVGT,和ZDA ) 4800波特率(其他波特率可选) 8位数据位,1位停止位,无奇偶校验位.10时
22、间 每秒钟一个脉冲,脉冲的持续时间为100毫秒11重量 8g12推荐的外部天线规格 增益: 最小20dB(包括电缆损耗) 电流要求: 10mA 二、环境要求: 工作温度范围: -40C到+85C 保存温度范围: -45C到+100C三、物理属性 机械外形: HX-87V外形: 单位:mm 管脚定义:Pin1VDDPin2UART TxNMEA协议串行数据输出Pin3UART Rx串行数据输入Pin4NC不能连接,必须悬空Pin5GND地Pin6LEDGPS工作指示灯313 应用: HX - 87系列模块是一种高性能,超低功耗, GPS接收器。应用如下:汽车导航,手表,太阳能供电系统,船舶导航,
23、车队管理,定位和基于位置的服务,雷达探测器GPS功能,手持设备的个人定位和导航,PDA,Pocket PC和其他计算机设备上的GPS应用314 运行和测试(可选)客户可以使用GPS Viewer 软件更改数据协议和通信数据的波特率. 安装合适的浏览器,你就可以随时检查GPS接收机的地址.以下是操作步骤(a) 运行Viewer程序,按下COM按钮,设置Com Port的数据链路和波特率为4800.(b)点击OPEN按钮,下载接收数据.在一个窗口显示NMEA格式的数据流,另一个窗口显示跟踪卫星的星座和信号质量状态.(c)一旦连接成功,点击CLOSE按钮退出程序.不过,你可以点击Cold按钮,来执行
24、冷启动测试.315软件规范NMEA协议:HX-87的软件能够支持NMEA信息格式和美国瑟夫卫星的定义.NMEA消息的前缀格式方向$GPGGA时间,位置和固定的数据Out$GPGLL 维度,经度,时间定位和状态Out$GPGSA 全球导航卫星系的增塑剂和运行卫星Out$GPGSV卫星Out$GPMSS无线电信信号的信噪比,信号强度,频率等Out$GPRMC 建议的最低特定全球导航卫星系统的数据Out$GPVTG速度和运行线路Out$GPZDA时间和日期OutNMEA的格式:NMEA格式包括ASCII字符串$字符,使用来表示终止. NMEA标准通信协议一GP开始,然后跟上3个标识符. 在这个信息中
25、,使用,. 校验值在$和*这两个字符之间的. 因为使用了ASCII码,所以数字的个数和精确度都有所不同.记录长度也会不同. 在某些情况下可能省略一些信息.在这种情况下,就会使用,来保证数据解析的正确.$GPGGA此消息传输全球定位系统修复数据.下面是一个例子:$GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M, , , ,0000*18$GPGGA消息的结构如图所示: 字段:例子:单位备注MessageID$GPGGAGGA协议头时间格式H维度D北纬/南纬指示器NN=北纬,S=南纬经度D东经/西经指示器WE=东经,W=西经定位指示
26、器10:修复无法使用或无效1:全球定位软件产品规格模式,有效解决2:根据使用不同GPS,SPS模式,有效结局35:不支持6:捍卫推算模式:有效解决使用的卫星07卫星使用个数HDOP水平稀释精度海平面高度米平均海拔以上的高度高度单位M米M代表米大地水平面得分割米分割大地水平面单位米M代表米时间区分秒时间单位秒当差分全球定位系统无法使用时,此处为空差异编号:站名0000校验和*18通信终止符$GPGLL 此消息传输地理位置,维度,经度和时间.下面是一个例子.$GPGLL,3723.2475,N,12158.3416,W,161229.487,A,A*41$GPGLL消息的结构如下表所示:字段:例子
27、:单位备注MessageID$GPGLLGLL协议头维度D北纬/南纬指示器NN=北纬,S=南纬经度D东经/西经指示器WE=东经,W=西经时间:状态:AA:有效数据 V:无效数据模式:AA=自动模式,D=差分全球定位系统E=指定路由器校验和*41通信终止符$GPGSA此消息传输增塑剂和积极的卫星信息 下面是一个例子:$GPGSA,A,3,07,02,26,27,09,04,15, , , , , ,1.8,1.0,1.5*33$GPGSA消息结构如下表所示: 字段:例子:单位备注MessageID$GPGSAGSA协议头模式AM:手动,被迫选择二维或三维模式A:模式之间自动切换模式31修复无法使
28、用2二维定位3三维定位使用卫星07管理信道1使用卫星02管理信道2使用卫星管理信道12位置精度衰减因子水平精度衰减因子高度精度衰减因子校验和*33通信终止符$GPGSV这个消息传输有关卫星消息. $GPGSV 消息结构如下所示:每个记录包含的信息最多4个通道,允许多达12个卫星. 在最后的记录序列为使用的信道用逗号表示,空字符已被省略. 下面是一个例子:$GPGSV,2,1,07,07,79,048,42,02,51,062,43,26,36,256,42,27,27,138,42*71$GPGSV,2,2,07,09,23,313,42,04,19,159,41,15,12,041,42*4
29、1$GPGSV 消息的结构如下表所示: 字段:例子:单位备注MessageID$GPGSVGSA协议头消息数量2最高位3个报文数字1序列号,范围为1到3卫星07N=北纬,S=南纬卫星编号07D仰角79度E=东经,W=西经方位角048度信噪比42dBhz卫星使用个数卫星编号02水平稀释精度仰角51Degree平均海拔以上的高度方位角062degreeM代表米信噪比43dBHz分割大地水平面卫星编号26仰角36Degree方位角256Degree信噪比42dBHz卫星编号27仰角27Degree方位角138Degree信噪比42dBHz校验和*71通信终止符$GPMSS此消息传输无线电信号的信噪比
30、,信号强度,频率等等. 下面是个例子$GPMSS,55,27,318.0,100,1,*57$GPMSS消息格式如下字段:例子:单位备注MessageID$GPMSSMSS协议头信号强度55dB卫星系统的跟踪频率信噪比27dB信噪比跟踪的频率无线电指标频率kHZ当前跟踪的频率无线电比特率100比特/秒通道的信道号(1)1如果正在使用信道接收机,该信道将会有用.校验和*57信息结束$GPRMC此消息传输最小的全球卫星导航系统的数据; 下面是个例子$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598, ,*10$GPRMC
31、消息的格式如下:字段:例子:单位备注MessageID$GPRMCRMC协议头时间格式H状态AA:有效数据 V:无效数据维度D北纬/南纬指示器NN=北纬,S=南纬经度D东经/西经指示器WE=东经,W=西经地面速度海里/小时地面速度对地航向Degree对地航向日期120598Ddmmyy地磁变化Degree没有使用模式(1)AA=自动模式 D=差分全球定位系统E=数据接收机校验和*10通信终止符(1) 美国慈孚卫星不支持磁偏角. 所有的”对地航向”的数据都是WGS84方向.(2)斜体加粗的内容只是用于NMEA版本2.3(及更高版本)$GPVTG这个消息传送速度,地面航向,地面的速度 下面是个例子
32、:$GPVTG,309.62,T, ,M,0.13,N,0.2,K,A*23$GPVTG 消息的结构如下表所示:字段:例子:单位备注MessageID$GPVTGVTG协议头航向Degree测量项目参照系TT=实际航向航向(磁性)Degree测量项目参考系MM=磁航向方位速度海里/时以海里/时为单位单位NN=海里/时速度海里/小时速度单位KK=千米/时模式AA=自动模式 D=差分全球定位系统 E=指定路由器校验和*23通信终止符(1) 美国瑟孚不支持磁偏角。所有的”大地导航系统”的大地测量数据为WGS84方向(2) 斜体加粗的内容只是用于NMEA版本2.3(及更高版本)/$GPZDA此消息传送
33、时间和日期.下面是一个例子: $GPZDA,181813,14,10,2003,00,00*4F $GPZDA 消息的格式如下表格所示:字段:例子:单位备注MessageID$GPZDAZDA协议头UTC时间181813精确到润秒UTC日14该数值是1到31UTC月10该数值是1到12UTC年2003该数值是1980到2079当地时间00与UTC时间在时区上的偏移量当地的分区00与UTC时间在分区上的偏移量校验和*4F通信终止符32基于WINCE的GPS系统软件设计的硬件原理图WINCE板上的串口硬件部分:(如图3-1所示)此图展示的是在WINCE电路板上,CPU上连接的可控的两个串口电路.
34、图3-1全球定位系统的硬件原理图:(如图3-2所示)此图展示的是全球定位系统所需的硬件连接图. 图3-2第四章 基于WINCE的GPS系统软件设计的软件开发流程介绍4.1 软件开发环境介绍4EVCEmbedded Visual C+(EVC)是微软公司提供的开发嵌入式软件的平台,它是Visual C+的子集。EVC 自带了标准的Windows CE 的SDK,如果读者有需要,可以从Platform Builder中导出SDK,然后安装在EVC 中。这样就可以利用EVC开发出我们想要的软件了.3.1.2 PB4.2 开发环境Microsoft Windows CE .NET 是Windows C
35、E 3.0 的后续产品,它不仅是一个功能强劲的实时嵌入式操作系统,而且提供了众多强大工具,允许用户利用它快速开发出下一代的智能化小体积连接设备。借助于完善的操作系统功能和开发工具,Windows CE .NET 为开发人员提供了构建、调试和部署基于Windows CE.NET 的定制设备所需的一切特性。平台开发工具Platform Builder 是一个完全集成的开发环境(IDE),并且包括一个软件开发工具包(SDK)导出工具。Windows CE .NET 支持Microsoft eMbedded Visual C+和Microsoft Visual Studio .NET,为面向Micro
36、soft .NET Compact Framework(Microsoft .NET Framework 的一个子集)的Web 服务和应用程序开发提供了一个完整的开发环境。利用这些工具,开发人员可以迅速开发出能够在最新硬件上运行各种应用程序的智能化设计。 GPS软件开发步骤如下:在PC机的Windows中打开eMbedded Visual C+ 4.0.打开EVC 4.0,选择FILE,然后选择NEW,在Projects选项中选择WCE MFC AppWizard(exe),在Project Name框中填写本工程的名称:GPS Device;再选择当前Win32(WCE ARMV4I),最后
37、单击OK进入下一步。选择应用程序的风格,选择如下图所示内容,单击NEXT。无额外操作,单击NEXT5. 选择如图所示内容,单击NEXT。7. 选择ResourceView选项卡,并在GPS Device resources下的Dialog下找到IDD_GPSDEVICE_DIALOG,如图所示:8.右击IDD_GPSDEVICE_DIALOG,选择Properties,弹出如图对话框,在language下拉菜单中选择Chinese (P。R。C)。这样在GPS Device对话框的界面中就可以使用中文字符了。(如图4.2-6)9.画出如图4.2-7所示的界面: 在Static控件上单击鼠标右键
38、.出现如图4.2-8所示界面,这是设置控件的属性的界面.其中General选显卡的ID选项是设置控件的ID号,Caption选项是设置控件的显示文字.Styles和Extended Styles选项卡是设置控件的类型.修改控件的Caption属性后画出如图4.2-9所示的界面;修改剩下的两个未修改的Static控件的属性:将Caption属性设为空,选择Extended Styles选显卡的的Client edge属性如图4.2-10所示.选择Styles选项卡的Notify属性,如图4.2-11所示,修改用于显示接收GPS数据的Edit控件的属性如图4.2-12所示.修改后的最终界面如图所示
39、.11.为程序添加一个新的Dialog资源.同时按下键盘上的Ctrl和R键,这时会出现图5所示内容.图图12.为新资源命名:鼠标右键单击IDD_DIALOG1图标,选择Properties如图所示,这时会弹出如图所示内容,将IDD_DIALOG1更改为IDD_DIALOG_SETUPSERIES.图 图所示的界面.图14.修改两个Dialog资源的各控件的属性如表4.2-1所示:控件名称标题ID号作用静态文本IDC_STATIC_STATUS显示GPS的接受状态静态文本GPS数据解析:IDC_STATIC标示作用静态文本经度:IDC_STATIC标示作用静态文本纬度:IDC_STATIC标示作
40、用静态文本速度(海里/时)IDC_STATIC标示作用静态文本高度:IDC_STATIC标示作用静态文本时间:IDC_STATIC标示作用静态文本日期:IDC_STATIC标示作用静态文本GPS数据接受:IDC_STATIC标示作用静态文本IDC_STATIC_HIGHT_UNIT显示高度的单位静态文本串口号:IDC_STATIC标示作用静态文本波特率:IDC_STATIC标示作用静态文本数据位:IDC_STATIC标示作用静态文本奇偶校验:IDC_STATIC标示作用静态文本停止位:IDC_STATIC标示作用Edit Box(编辑框类)IDC_GPS_LONGITUDE显示经度Edit B
41、ox(编辑框类)IDC_GPS_LATITUDE显示维度Edit Box(编辑框类)IDC_EDIT_SPEED显示速度Edit Box(编辑框类)IDC_EDIT_HIGHT显示高度Edit Box(编辑框类)IDC_GPS_TIME显示时间Edit Box(编辑框类)IDC_GPS_DATATIME显示日期Edit Box(编辑框类)IDC_GPS_REC显示接受数据Button(按钮类)打开IDC_GPS_OPEN打开串口Button(按钮类)关闭IDC_GPS_CLOSE关闭串口Button(按钮类)IDC_GPS_BTN_HIDE显示隐藏(显示GPS接受信息窗口)Button(按钮类
42、)确定IDOK确定选择的串口信息Button(按钮类)取消IDCANCEL取消选择的串口信息Combo Box(下拉列表框类)IDC_CMBNAME选择使用的串口号Combo Box(下拉列表框类)IDC_CMBBAUD选择波特率Combo Box(下拉列表框类)IDC_CMBDATABITS选择数据个数Combo Box(下拉列表框类)IDC_CMBPARITY选择奇偶校验位Combo Box(下拉列表框类)IDC_CMBSTOPBITS选择停止位对使用Combo Box类的一些特殊说明:编辑下拉列表框IDC_CMBBAUD的属性,如图所示。分别在Data选项卡添加内容。在Styles选项卡
43、中选择Type为Drop List,并去除Sort选项。DATA选项卡Styles选项卡 图控件的ID号在Data选项卡中添加的内容IDC_CMBNAME1 2 3 4IDC_CMBBAUD4800 9600 19200 115200IDC_CMBDATABITS5 6 7 8IDC_CMBPARITY无 奇校验 偶校验 标记 空格IDC_CMBSTOPBITS1 2和CESerie两个文件,并添加相应代码.说明:这两个文件是为创建一个串口类,使得程序很方便的使用ARM9开发板的串口资源(CESeries类的设计详情请参见代码部分和).16.向工程中添加CESeries类,20,图步骤所示,选
44、择和两个文件. 图 图17.按照步骤16的方法,添加和GpsRecDataAnalyst.h文件,以及 和SeriesPortSet.h文件.18.安键盘上的Ctrl + W会出现图所示的内容,提示为IDD_DIALOG_SETUPSERIES资源命名类型名,点击OK按钮,会出现如图所示界面.在Name属性中写入IDD_DIALOG_SETUPSERIES资源的类型名:CDlgSeriesSetup.点击OK按钮.图图19. 安键盘上的Ctrl + W,出现如图所示界面(本步骤的目的是为了使控件有一个能够关联的变量,方便今后使用)图20.双击IDC_CMBBAUD,出现如图所示界面,修改界面内
45、容为图图图图21.根据步骤20的方法,为各控件添加关联变量,如ID号TypeMemberIDC_EDIT_HIGHTCStringm_GPS_Str_HightIDC_EDIT_SPEEDCStringm_GPS_Str_SpeedIDC_GPS_CLOSECButtonm_GPS_CloseIDC_GPS_DATATIMECStringm_GPS_Str_DataTimeIDC_GPS_LATITUDECStringm_GPS_Str_LatitudeIDC_GPS_LONGITUDECStringm_GPS_Str_LongitudeIDC_GPS_OPENCButtonm_GPS_Ope
46、nIDC_GPS_RECCStringm_GPS_Str_RecIDC_GPS_TIMECStringm_GPS_Str_TimeIDC_STATIC_HIGHT_UNITCStringm_GPS_HightUnitIDC_STATIC_STATUSCStringm_GPS_Str_Status 表4.2-3(Class name:CGPSDeviceDlg)ID号TypeMemberIDC_CMBBAUDCComboBoxm_c_CMB_BaudIDC_CMBDATABITSCComboBoxm_c_CMB_DataBitsIDC_CMBNAMECComboBoxm_c_CMB_NameID
47、C_CMBPARITYCComboBoxm_c_CMB_ParityIDC_CMBSTOPBITSCComboBoxm_c_CMB_StopBits 表4.2-4(Class name:CDlgSeriesSetup)22.在DlgSeriesSetup.cpp文件中添加下列清单1中加粗的内容.(以后如没用特殊说明,加粗部分为清单中需要添加的内容)清单1:#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CDlgSeriesSetup dialog#includeSe
48、riesPortSet.hSeriesPortSetg_PortSet(_T(1),_T(9600),_T(无),_T(8),_T(1);CDlgSeriesSetup:CDlgSeriesSetup(CWnd* pParent /*=NULL*/): CDialog(CDlgSeriesSetup:IDD, pParent)”确定”按钮弹出如图所示界面,点击OK按钮.添加清单2的加粗内容.图清单2void CDlgSeriesSetup:OnOK() / TODO: Add extra validation here CComboBox *pCmbName = NULL;CComboBox
49、*pCmbBaud = NULL;CComboBox *pCmbParity = NULL;CComboBox *pCmbDataBits = NULL;CComboBox *pCmbStopBits = NULL;pCmbName = (CComboBox*)GetDlgItem(IDC_CMBNAME);pCmbBaud = (CComboBox*)GetDlgItem(IDC_CMBBAUD);pCmbParity = (CComboBox*)GetDlgItem(IDC_CMBPARITY);pCmbDataBits = (CComboBox*)GetDlgItem(IDC_CMBDA
50、TABITS);pCmbStopBits = (CComboBox*)GetDlgItem(IDC_CMBSTOPBITS);ASSERT(pCmbName != NULL);ASSERT(pCmbBaud != NULL);ASSERT(pCmbParity != NULL);ASSERT(pCmbDataBits != NULL);ASSERT(pCmbStopBits != NULL);/得到串口编号CString tmpCommName;pCmbName-GetWindowText(tmpCommName);m_portNo = _wtoi(tmpCommName);/得到波特率CSt
51、ring tmpBaud;pCmbBaud-GetWindowText(tmpBaud);m_baud = _wtoi(tmpBaud);/得到奇偶校验/m_parity = pCmbParity-GetCurSel();CStringtmpParity;pCmbParity-GetWindowText(tmpParity);ParityJudge(tmpParity);/得到数据位CString tmpDataBits;pCmbDataBits-GetWindowText(tmpDataBits);m_databits = _wtoi(tmpDataBits);/得到停止位/m_stopbi
52、ts = pCmbStopBits-GetCurSel();CStringtmpStopBits;pCmbStopBits-GetWindowText(tmpStopBits);StopBitsJudge(tmpStopBits);/保存修改值:g_PortSet.UpSeriesPortValue(tmpCommName,tmpBaud,tmpParity,tmpDataBits,tmpStopBits);CDialog:OnOK();24. 双击IDD_DIALOG_SETUPSERIES资源的”取消”按钮弹出类似图4.2-22所示的界面,点击OK按钮.25.向DlgSeriesSetup
53、.h文件中添加清单3中加粗的内容.清单3/ Implementationprotected:/ Generated message map functions/AFX_MSG(CDlgSeriesSetup)virtual BOOL OnInitDialog();virtual void OnOK();virtual void OnCancel();/AFX_MSGDECLARE_MESSAGE_MAP()public:UINT m_portNo; /*串口号*/UINT m_baud;/*波特率*/UINT m_parity; /*奇偶校验*/UINT m_databits;/*数据位*/U
54、INT m_stopbits;/*停止位*/private:void StopBitsJudge(CString trfStopBits);void ParityJudge(CString strParity);26.向DlgSeriesSetup.cpp文件中添加清单4中加粗的内容.清单4void CDlgSeriesSetup:ParityJudge(CString strParity)if(strParity=_T(无)m_parity=0;return;if(strParity=_T(奇校验)m_parity=1;return;if(strParity=_T(偶校验)m_parity=
55、2;return;if(strParity=_T(标记)m_parity=3;return;if(strParity=_T(空格)m_parity=4;return;MessageBox(_T(ParityJudge is a error!);void CDlgSeriesSetup:StopBitsJudge(CString trfStopBits)if(trfStopBits=_T(1)m_stopbits=0;return;if(trfStopBits=_T(1.5)m_stopbits=1;return;if(trfStopBits=_T(2)m_stopbits=2;return;M
56、essageBox(_T(StopBitsJudge is a error!);BOOL CDlgSeriesSetup:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_c_CMB_StopBits.SetWindowText(g_PortSet.m_stopbits);m_c_CMB_Parity.SetWindowText(g_PortSet.m_parity);m_c_CMB_Name.SetWindowText(g_PortSet.m_portNo);m_c_CMB_DataBit
57、s.SetWindowText(g_PortSet.m_databits);m_c_CMB_Baud.SetWindowText(g_PortSet.m_baud);/g_PortSetreturn TRUE; / return TRUE unless you set the focus to a control/ EXCEPTION: OCX Property Pages should return FALSE27.在GPS DeviceDlg.h文件中添加相应的头文件和必有的函数声明.如清单5所示: (加粗的内容是添加的内容)清单5/ CGPSDeviceDlg dialog#includ
58、e CESeries.h#include DlgSeriesSetup.h#includeGpsRecDataAnalyst.hclass CGPSDeviceDlg : public CDialog/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CGPSDeviceDlg)virtual BOOL OnInitDialog();afx_msg void OnGpsBtnHide();afx_msg void OnGpsOpen();afx_msg void OnGpsClose
59、();afx_msg void OnTimer(UINT nIDEvent);afx_msg void OnPaint();/AFX_MSGDECLARE_MESSAGE_MAP()private:CRect rectSmall;CRect rectLarge;private:CCESeries m_ceSeries; /定义串口类private:void OnClear();bool OnGpsDlgValueSet(CString recData);static void OnSeriesRead(CWnd* pWnd,char* buf,int bufLen);28.向GPS Devic
60、eDlg.cpp文件中添加相应添加消息映射:如清单6所示清单6BEGIN_MESSAGE_MAP(CGPSDeviceDlg, CDialog)/AFX_MSG_MAP(CGPSDeviceDlg)ON_BN_CLICKED(IDC_GPS_BTN_HIDE, OnGpsBtnHide)ON_BN_CLICKED(IDC_GPS_OPEN, OnGpsOpen)ON_BN_CLICKED(IDC_GPS_CLOSE, OnGpsClose)ON_WM_PAINT()ON_WM_TIMER()/AFX_MSG_MAPEND_MESSAGE_MAP()29.修改初始化函数:如清单7所示清单7BOO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地下排水建设项目材料买卖协议典范
- 2024技术顾问服务协议系列篇
- 2024企业债务融资协议模板
- 2024届安徽凤台一中高三3月教学质量检测试题数学试题理试题
- 2024槽棎施工质量保障协议范本
- 2024年房产开发融资居间协议模板
- 2024建筑外保温服务协议样式
- 2024年商业交易货样协议模板
- 2024年度美容院加盟协议示例
- 2024全职员工派遣协议范本
- 马原辨析题题库
- ev3产品介绍(颈动脉)
- 表格式教学设计方案模板举例
- 720--消防自动喷水灭火系统(干式)讲解
- 卢森宝亚压缩空气泡沫系统
- AQL抽样检验表(标准版本2(1).0)
- 桶装水领用登记表
- 安阳师范学院校级教学团队推荐表
- 企业中层管理人员素质测评(附答案)
- 《新概念英语》第二册(电子版)
- 活性焦过滤吸附法污水深处理技术
评论
0/150
提交评论