1、摘要:伴随着人们生活水平的提高,汽车作为一种非常便利的交通工具,逐步进入千家万户,为人们的生活带来了极大的方便。但是随着人们外出空间的不断扩大,如何使人们能够在一个陌生的环境中找到自己的方位,并且能准确地定位自己的目的地,成为人们关心的问题!汽车导航系统满足了人们的需求,解决了这个问题。汽车导航的基本功能是一个车载的电子地图,但是它比普通电子地图的功能强大百倍。在汽车导航系统中,人们不但可以看到自己周边乃至全国的各个比例尺下的地图,而且还能通过GPS等信息准确地定位自己的方位,设定想要到达的目的地。在用户设定目的地后,系统会根据用户的要求自动计算出一条最佳路径,提供给用户,以作行驶参考。导航系
2、统还能够完成设施检索、电话号码检索、住所检索等各种检索功能。更让人兴奋的是能够在汽车内进行无线上网等功能。关键词:汽车导航 POI HMITooL目录第一章 前言111 应用背景112 目的和意义213 关于本文2第二章 汽车导航系统知识简介32.1 汽车导航的基础知识32.1.1 汽车导航系统的基本概念32.1.2 汽车导航系统的发展历史42.1.3 汽车导航系统的发展现状52.1.4 汽车导航系统的未来62.1.5 汽车导航系统的主要功能62.1.6 汽车导航系统的基本工作原理72.2 汽车导航系统的基本框架82.3关于OPERATION BOOK102.3.1 OPERATION BOO
3、K的作用102.3.2 OPERATION BOOK 的功能实现102.3.3 OPERATION BOOK的制作112.4专用词语11第三章 需求分析133.1 任务概述133.1.1 项目任务概述133.1.2 课题任务概述133.2 课题目的及可行性分析133.2.1 课题目的133.2.2 可行性分析133.3 工具HMI TOOL简介143.3.1 HMITool的目的143.3.2 工具中各数据的构成143.4 COMPILER工具简介183.5 Framwork 简介203.5.1 AW导航系统结构203.5.2 代码与系统结构图的对应关系203.5.3 画面编码的文件结构213
4、.5.4 迁移处理部分(Frame Work)22第四章 概要设计264.1 电话号码输入画面制作264.2 电话号码检索结果目录画面制作274.3 检索的数据结构294.4 电话号码输入画面编码304.5 电话号码检索结果目录画面编码31第五章 系统实现345.1 画面的数据制作345.1.1 电话号码输入画面数据制作345.1.2 检索结果目录画面数据制作355.2 画面编码375.2.1 电话号码输入画面编码375.2.2 检索结果目录画面编码39第六章 测 试426.1 实现过程中出现的问题及解决方法426.2 运行结果42结 论52参考文献53ABSTRACT54 第一章 前言11
5、应用背景当今世界汽车的保有量逐年增加,给道路交通带来了严重的堵塞和拥挤,成为社会环境的一大公害,也造成了巨大的经济损失。修建道路,加大流通能力,虽然是解决交通拥挤的重要途径,但一些交通发达的国家都已清醒地意识到,仅仅靠扩建公路来解决交通拥堵问题是很有限的,必须谋求一种高科技手段的解决办法汽车电子导航系统。汽车电子导航系统不仅能够解决交通堵塞问题,更是汽车时代数码生活的新象征。现在,驾驶装有导航系统汽车的人们再也不必为工作或者旅游要去一个陌生的地方而感到苦恼,也不用担心面对高速发展的交通网不知怎样前往目的地,这就大大节约了时间,提高了效率,因此越来越受到人们的欢迎,逐渐走入人们的生活。现代汽车导
6、航系统得到普及和推广是伴随着美国GPS(Global Positioning System,即全球定位系统)系统的发展而出现的,是一种可以实现汽车即时定位、路径诱导、路径计算等功能的车载定位系统。20世纪90年代,美国将导航系统的研究从传统的惯性导航领域推进到了现代的卫星导航领域。GPS系统是由空间卫星、地面监控和用户接收等三大部分组成。空间卫星由24颗卫星组成一个分布网络,分别分布在6条离地面2万公里、倾斜角为55的地球准同步轨道上,连同设在美国本土的地面监测中心和采用伪随机编码测控技术的GPS接收机,可以提供全球范围从地面到9000公里高空之间任何载体的高精度三维位置、三维速度和系统时间。
7、该系统于1993年全部建成,随之对民间开放使用。就目前的发展情况看,车辆导航技术最发达的地方是美国、日本和欧洲等地区,其导航技术的现状代表了本领域研究和应用的发展方向,尤其是日本导航技术的发展更是处于领先地位。在日本的一些豪华轿车上,导航系统已不再是选装,而成为了标准设备。例如丰田公司的Windom,日产公司的Cina,本田公司的Legend。此外,还有一些进口轿车,如奔驰公司的S级轿车,宝马公司I的新7系列和5系列轿车都装备有这种电子导航系统。三菱汽车公司更是大胆赌注,作为标准设备,把导航系统装在了中级轿车Galant上。由于汽车导航系统扩展到更多的车型,因此在车内装饰设计中,在仪表板上预先
8、留出一块15厘米左右的视频显示屏幕的位置,已成为常规。美国福特公司的GPS系统只有汽车收音机大小,它与收音机,电话集装在一起。显示屏位于中央,为司机指示方向并提供声音指示。 GPS汽车导航系统的研制和应用在我国起步较晚,还处于初级阶段,目前主要是应用在专用汽车上,如银行运钞车,公安巡逻车等。近几年,我国自行开发的汽车卫星导向仪已正式推向市场。它可将汽车的任何动态位置随时准确无误地显示在仪器的电子地图上。该导向仪的电子地图自动跟踪显示汽车当前位置及周边情况。这种导向仪已内存我国各大城市道路的电子交通图及全国高精度的公路网及其沿线村镇以上级别的地名。司机可随时在导向以上查询周边半径300公里地区的
9、地理信息,为汽车提供安全顺畅的行车路线。此外,驾驶员亦可将行走的路线随时输入导向仪,以确保按原路返回。该仪器只有一本普通书大小,重600克,采用汽车点烟器电源供电,使用十分方便。目前,越来越多的汽车行业厂商开始投入导航系统的推广。可以预见,随着更多汽车企业的介入,导航产品市场将逐渐成熟。汽车导航已经进入了一个蓬勃发展的时代。未来的导航系统将集娱乐、通信和导航于一体,更注重个性化、个人化、小型化。预计不久的将来,导航系统将成为现代化汽车的标准配置,让更多的用户都享受高科技带来的乐趣。12 目的和意义此次毕业设计的目的是为了将在学校所学的知识运用到实践当中,锻炼自己动手能力,和学习能力,由于我是在
10、公司完成毕设,所以也有熟悉业务工作的目的。13 关于本文此次毕业设计所选择的大题目是公司给定的,因为所在部门是汽车导航,所以公司给的大的题目是汽车导航系统POI部分的设计与实现,POI部分是完成检索功能,包括设施检索、电话检索、住所检索、五十音检索等,我的论文所要研究的就是电话检索的部分。第二章 汽车导航系统知识简介2.1 汽车导航的基础知识2.1.1 汽车导航系统的基本概念因为对汽车导航不熟悉,很多人一听到“汽车导航”,想到的就是GPS全球定位。其实这种知识是不全面的。当人们为了工作或旅行要开车去从来没有去过的地方时,会犹豫不知该怎么走才好。这时汽车司机常常会一边打开地图,一边观察周围一些能
11、够成为目标的建筑物和信号器具上的标志,确定自己的位置。然后,从这些信息中得知到目的地为止的大概的距离和方位,在地图上确认到达目的地为止的路径。汽车导航系统就是由“知道自己位置的”定位功能,“引导到目的地为止”的路径引导功能,再加上把这样的情报通知给驾驶员的代替地图的显示器和语音输出设备构成。现在汽车导航的特征是“电子地图”和“GPS定位功能”。电子地图就是将各个地区的地图以特殊格式存入DVD(VCD)或硬盘中,在需要的时候有导航仪读取。GPS定位功能是美国国防部的NAVSTAR(Navigation System with Time And Ranging )卫星导航系统,可以在全地球上测定绝
12、对位置(精度,纬度,高度)。通过推测算法、地图匹配以及来计算出自车位置。 电波 Beacon Antenna FM多重 Display光Beacon N A V Iautenna VICSReceiver GPS Antenna TFT液晶 CD-ROM/DVD PCMCIA图2.1 汽车导航的产品形态2.1.2 汽车导航系统的发展历史现在汽车导航的特征之一的“电子地图”和“定位功能”正式投产是1987年的丰田皇冠系列,那时推测航法已经作为定位技术被使用了。这是把通过地磁气传感器得到的方位和通过车速传感器得到的距离,按照向量积分算出车辆的行驶轨迹,求得从出发地的相对位置。1989年生产的日产车
13、(公爵)第一次采用了地图匹配技术。这是把通过推测航法算出来的车辆的行驶轨迹和存放在CD-ROM里的道路形状相比较,找出自车的行驶道路,确定自车位置的技术。1990年的马自达第一次采用了GPS定位技术。由于GPS可以确定在全球范围内的绝对位置,这样使自车定位的精确度大大提高了。1991年丰田里第一次安装了自动计算到目的地为止的经路的路径引导功能,通过他产生了汽车导航的2个基本功能。这时,作为定位技术采用的有推测航法,地图匹配,还有用GPS补正绝对位置的混合航法,现代汽车导航系统的基本功能已经实现,并且精确度也有了很大的提高。 1992年的丰田上采用了通过声音进行路径引导的方法,使导航使用起来更加
14、容易。至此,汽车导航系统的导航功能已基本成熟。1995年到2000年,车辆内的信息化的急剧的推进,汽车导航实现了动态的交通信息接收并向小型化的方向进行发展,推出了基于掌上电脑的导航仪产品。2.1.3 汽车导航系统的发展现状目前,索尼日本推出的一款名为“XYZ”的汽车导航系统刚刚在日本市场投放,就受到了众多汽车爱好者的极大关注。“XYZ ”的汽车导航系统通常被安装于汽车驾驶座前方的仪表盘控制区,主体部分是一个设计小巧的显示器,其最为奇特之处就在于这块显示器的图像输出上:“XYZ”可以输出类似于三维游戏画面的立体影像,不仅告诉驾驶者现在所处的位置及周围环境,还可以显示接下来的街道,拐角或交叉路口的
15、交通状况等,因为是三维成像,如同“极品飞车”的游戏画面一样,能够给驾驶者带来身临其境的真实感觉。它的可移动式硬盘存储器拥有30 GB 的强大存储量,除了可以保存大量的3D电子地图外,还能余下空间使驾驶者保存自己喜欢的各种音频和视频文件。可以将存储器从汽车上卸载下来,连接到电脑或因特网下载电子地图或影音文件等。设计者还别出心裁地为“XYZ”配备了一个触摸屏,可以直接用手指点击,进行播放、进退及建立播放列表等操作。目前,在国内也有许多公司在这个方面开展研究.比如, 国内第一款便携式、多用途卫星定位自导航产品“城际通”,已由北京城际在线网络科技有限公司研发成功并已通过部级专家鉴定.它采用了一种综合了
16、卫星定位技术(GPS)、地理信息技术(GIS)、嵌入式系统、互联网技术的便携式、多用途卫星定位自导航信息终端。国内也有许多公司在汽车导航方面有很高的技术水平.而且在国内的许多汽车上面没有加载汽车导航系统,同时在汽车私人购买量迅速增加的过程中发展迅速,这就为汽车导航产品留下了巨大的市场空间。近年来,全国许多地方如北京、厦门、深圳、成都等地都在研制汽车卫星定位系统,并且已有六七个产品投放市场,但这些产品大都局限于汽车的跟踪定位和防盗,真正可以广泛运用于大众的汽车卫星导航系统并不成熟。直到最近,被业界关注的“卫星导航仪”出现在人们视野的时候,把一度涌动的全球卫星定位系统(GPS)产品开发潮推向了前端
17、。2.1.4 汽车导航系统的未来在日本汽车导航技术在汽车制造业中的普及率较高,并且各公司的产品之间竞争十分激烈,相关技术发展也较快。欧美国家以及日本的汽车导航市场也已经初步形成。汽车导航系统并不是单纯地向目的地的诱导,而是考虑了进行安全行使机能的一部分以及与高速道路的收费系统连接等各种用途。在将来的市场中,汽车导航系统将向着多媒体和人工智能的方向发展。.国外汽车导航的发展告诉我们,汽车导航技术在应用领域有着广阔的前景。是未来汽车制造业发展的必经阶段。我们有必要将这一先进技术带入中国的汽车工业,为民族汽车工业的腾飞打好基础。2.1.5 汽车导航系统的主要功能(1) 定位功能汽车电子导航系统,必须
18、在地图画面上表示出对车辆正确的测定位置。位置的测定方法有:自行定位法, GPS全球卫星定位法, 复式定位法, 地图匹配法。(2) 电子地图显示功能电子地图上显示的内容包括,地图背景,自车位置,引导路线,Mark(标记点),UserMark(用户自定义标记点),比例尺,地图方位,到达时间,残余距离,走行轨迹等。(3) 导航功能用户在电子地图上指定目的地后,给出目的地和当前车辆位置的连线,并给出合适的到达目的地的最佳路径,以醒目的颜色显示,并根据汽车新位置不断修正以上显示;用户还可以根据自己得喜好选择各种路线条件,如推荐,距离优先,一般道优先,道幅优先等。(4) 查询功能可以通过住址、设施名称、电
19、话号码等进行检索地图中各单元的信息。以便设定为目的地或经由地或进行其他操作,还可以查看引导道路情况及标记点周边情况等。(5) 多媒体功能随着导航技术的日益成熟化,导航仪上的功能也日益多元化。不仅仅起到导航的功能,更增加了电视、DVD/CD、MP3、FM等多媒体功能,让用户在开车的时候能充分享受到导航系统带来的驾驶乐趣。2.1.6 汽车导航系统的基本工作原理(1) 定位算出车辆的现在位置的定位方式有自立航法和电波航法。自立航法是通过安装在车辆上的方位传感器和距离传感器求得行驶轨迹,求得车辆的相对位置。电波航法里,GPS被实用化,接受由人造卫星发出的电波,求得车辆的绝对位置。还有,在各自的航法中通
20、过比较地图的道路形状数据和车辆行驶轨迹的形状,提高现在地的推定位置的方法就是地图匹配。车辆厂家纯正导航是从自立航法出发,加上GPS、地图匹配提高了精度。同时,市场导航是从GPS出发,加上地图匹配提高了精度,但是如果只使用GPS的话,由于存在电波的遮蔽地方,所以不能时常保持其精度。因此自立航法和地图匹配、GPS同时使用,维持精度的类型逐渐变为一般化。这样,自立航法和GPS同时使用的航法叫做混合航法。图2.2 复合定位法定位功能是由减低电波航法GPS和方位传感器、距离传感器拥有的误差,算出经纬度、方位、行驶轨迹的混合航法和对照通过混合航法得到的行驶轨迹和道路数据,算出现在位置的地图匹配构成。(2)
21、 路径案内案内是日文汉字,就是引导的意思。在最开始时,路径案内功能只是对被设定的目的地用箭头显示方向这一单一功能。然后是开发了自动算出案内路径的自动路径探索功能和基于被输入进去的路径案内到目的地为止的案内功能,现在发展到了把这两个功能组合起来的案内功能上。另外,这个案内的内容不仅仅是在地图上的方向显示,还出现了显示所分歧的交叉点的详细情报的交叉点扩大图和方向名称显示,用声音通知分歧的交叉点的声音案内,进一步出现了显示在HUD(Head Up Display)里的案内等,面向更加详细案内的改良和更加容易理解的显示方法的研究也展开的非常火热。(3) 路径案内主要的功能自动路径检索功能:指的是根据所
22、给的目的地和检索备件,加上地图CD-ROM中保存的数据(静态情报)、还有从外部得到的动态情报(如VICS信息),自动算出推荐给驱动器的路径的功能。检索条件有是否把收费道路作为优先、是否设定通过点等。静态情报有道路网络、道路单一方向通行或交叉点通行规则、道路宽度、道路种类、收费道路、道路结构、状况等。动态情报有封闭交叉斜路(Ramp)等通行规则情报、表示道路拥挤程度的阻塞情报。路径指导显示(Route guidance):是指导使驾驶员安全、快速的且放心的到达设定目的地。路径指导显示方法中有表示路径概要的路径全体图或路径模式图、为减少看画面而进行的声音案内、表示用声音不能表达好的分岔交叉点详细情
23、报的交叉点扩大图、高速行驶时简单明快的案内的方面名称显示等。2.2 汽车导航系统的基本框架导航系统基本框架如下,由于AW部门只涉及UI层和功能层,故只对这两层做简要介绍。(1)HMI(Human & Machine Interface)HMI实现的是用户的操作界面,是用户与导航系统交互的纽带。用户通过HMI告诉导航系统想要进行的操作,导航系统再通过HMI显示出来。 (2)DG(Driver Guidance)相信每个人都有迷路的经历,当你徘徊在十字路口时,你需要的可能是一张地图,当你在地图上找不到参照物的时候,你需要的是一个能告诉你正确道路的好心人,但对于一个Driver来说,在驾驶期间无论是
24、查阅地图,还是问路都是一件既危险又麻烦的事。DG所作的事情就是在你对行进方向感到迷惑的时候,告诉你正确的行进方向,以及提供给用户安全,准确到达目的地的动态和静态信息。(3)MAPMAP即地图描画,此组件是提供导航系统中进行地图描画的功能及方法的组件。导航系统中的地图描画是指、根据应显示的地点位置从地图Data base读入地点情报,并根据描画算法进行描画及显示。(4)NOTENOTE组件为用户提供信息的检索和管理功能。其中,信息包括导航信息和用户自定义信息两部分。导航信息是导航系统提供的数据,例如Disc数据、Vics数据等,而用户自定义信息是用户自己设定的信息,例如Mark等。用户检索时可以
25、检索所有两种信息,提供信息列表,详细情报等功能。而管理只是针对用户自定义信息,主要是提供了登录,删除,修改等功能(5)RP(Route Production/Route Planning)RP就是在给定自车位置和目的地的情况下,按照用户设定的不同条件,计算出一条或多条从自车位置到目的地的花费(根据用户的设定,可能是指时间,费用等)最少的最优路以供用户使用。在导航系统(NAVI)中,RP的定位是DG的子模块(Component),所有的计算要求必须通过DG的触发才能够实现,也就是说,RP的一切动作的来源都是DG,如果没有计算请求,RP自身不去主动算路。根据以上描述可以看出:提供两个地点间的推荐经
26、路是RP的主要功能。 (6)VP(Vehicle Position)VP即车辆定位,即:车行过程中,实时计算出车辆位置。车辆定位方法有自行定位法、GPS全球卫星定位法、复式定位法、地图匹配法。在介绍导航功能时已经阐述过,在此不再重复。(7)VICS(Vehicle Information & Communication System)VICS是Vehicle Information &Communication System的缩写,意为道路交通信息通信系统。接受阻塞、规则、停车场、文字情报、简易图形等形式的VICS信息。要能够实时提供塞车情报、所需时间、交通管制情报以及停车场空位等等的情报。同
27、样的,也能够对在事前将信息提供给各家庭或公司以对于旅行计划的制定有所帮助。2.3关于OPERATION BOOK2.3.1 OPERATION BOOK的作用OPERATION BOOK就是实现汽车导航的用户操作界面。下图就是用户界面中导航界面的一部分.图2.3 用户操作界面2.3.2 OPERATION BOOK 的功能实现BOOK中的功能大概分为以下这3大类。(1)功能实现根据Event启动,通过操作MODEL要求需要的功能。(例:径路计算开始,电话受信等)(2)画面描画把各画面中的必要的信息显示在屏幕上。(例:Switch描画、List描画等)(3)画面迁移进行与用户操作相对应的画面迁移
28、,实现使用起来比较容易的用户界面。2.3.3 OPERATION BOOK的制作在AW项目组中,BOOK画页的开发制作是利用HMI Tool这样一种工具来完成的。通过此工具,可以对导航画面进行方便的、可视化的编辑,并能根据生成的导航画面,自动生成描述导航画面的相关文档及用于导航系统上的源代码。应用HMI Tool,可以实现导航画面处理的自动化,对导航系统的开发有很大的帮助。是用这种工具的好处是方便快捷,有可视化效果。2.4专用词语因为设计书是日文,所以在其中有很多的专用名词是用日文书写的,而翻译时在中文中又没有特别确切的词来对应,或者翻译过来的解释很麻烦,罗嗦,所以就直接用了日文的中文汉字,在
29、这里先解释一下这些专用名词的含义:(1) 部品:部品指的是在画面上的每个组成部分都可以叫做是一个部品,例如一个button,一个bitmap图;(2) SW部品: SW部品中SW是switch的缩写,指的是由选择属性的部品,大多指的是button,在点击后会有特定的触发事件发生;(3) 意匠部品:意匠部品指的是有一定属性的bitmap图,通过变量可以控制,但是没有触发事件,只是在接受到讯息或画面迁移时可以发生改变。在变量说明书中,意匠部品一般使用阿拉伯数字来表示说明,如1,2等;(4) 固有意匠:指的是一般没有太多变化的bitmap图,如title之类的不变的部品,在变量说明书中,固有意匠一般
30、使用小写英文字母来表示,如:a,b等。(5) 案内:就是导航,日文汉字。(6) API:Application Programming Interface,应用程序编程接口,在本文中特指在本模块以下的接口程序。(7) Tone down:SW部品的一种状态,和普通相对应,是不可操作状态。(8) Event:导航仪中所有的事件都是以event的形式来发生。(9) Command:导航仪中所有的事件的处理都是用command来接收然后处理,event和command是导航系统中事件处理方式。第三章 需求分析3.1 任务概述3.1.1 项目任务概述本项目是AW汽车导航系统的界面描画,迁移和导航基本功
31、能的实现,其主要工作任务如下:(1) 根据日方给的迁移式样书,通过画面数据制作工具HMI TOOL 进行画面描画效果的设计与实现。(2) 实现画面本身的正确描画和画面间的正确迁移。(3) 处理用户发给界面的各种操作,实现各种功能并传送到底层模块。(4) 将底层模块的处理信息和反馈信息显示给用户。3.1.2 课题任务概述在这次毕设实习中我所做的题目为汽车导航系统POI电话检索的设计与实现,POI (point of interest ) 的意思是兴趣点,而实际所做的工作就是检索,POI的部分包括电话检索,邮编检索,住所检索,周边设施检索等,我所做的是电话检索。具体任务如下:(1) 根据日方给的迁
32、移式样书、意匠(即画面图片),通过画面数据制作工具HMI TOOL 进行电话号码检索画面、检索结果目录画面的数据制作。(2) 实现电话号码检索画面本身的正确描画和其他画面间的正确迁移。(3) 处理用户发给界面的各种操作,实现部分画面功能并将命令传送到底层模块。(4) 将底层模块的处理信息和反馈信息显示给用户。3.2 课题目的及可行性分析3.2.1 课题目的本课题的目的是完成导航系统中POI(point of interest)即检索模块中画面的描画和迁移,是导航系统的基本功能。3.2.2 可行性分析从技术的角度讲,虽然从来没有接触过导航系统,但是部门从事导航系统的开发已有十多年的历史,身边有很
33、多技术精湛、经验丰富的老员工给我以必要的指点,而且我所做的工作是导航系统中的基本功能实现技术可行。从经济的角度讲,日方会根据项目的工作量和产品的质量给出合理的回报,完全可以保证项目的开发成本和后期维护费用经济可行。从竞争的角度讲,国内和东软有同样导航开发技术的公司基本还不存在竞争可行。从操作的角度讲,导航仪的操作键盘与开发出的画面的对应关系非常明了,没有任何使用经验的用户也可以很快的掌握操作方法操作可行。至于市场可行性和社会可行性是奥迪公司在项目开发之前作过周密调查的,也就是说项目完全满足可行性,课题作为项目内必不可少的一部分,可行性自然满足。3.3 工具HMI TOOL简介3.3.1 HMI
34、Tool的目的在传统的BOOK开发过程,是一个特别耗费成本、人力的繁琐的开发过程。为了减少这个开发过程的工作量,达到降低成本的目的,开发了本工具。换句话说,本工具是BOOK各项目的基本开发工具,用于制作BOOK画面数据,定义各种BUTTON事件,是BOOK开发人员必须掌握并灵活运用的工具。3.3.2 工具中各数据的构成(1) Project 构成图3.1 Project 构成Libraryl 将编辑画面上制作的意匠按框单位登陆。l 登陆了的意匠按分类单位来管理。l Library中登陆的意匠通过再利用(继承Copy)能够使用。l 可以由Library的各要素打开Library画面。画面l 画面
35、的意匠按画面单位制作登陆。l 登陆的意匠按分类单位来管理。l 能够由画面的各要素打开编辑画面。文字列l 在Project内使用的文字列进行管理。l 登陆的文字列按分类单位进行管理。Bitmapl 在Project内所使用的Bitmap进行管理。l 登陆的Bitmap按分类单位进行管理。Palettel Project内使用的Palette进行管理。l 登陆的Palette按分类单位进行管理。定数l Project内使用的定数进行管理。l 登陆的定数按分类单位进行管理。Fontl Project内使用的Font进行管理。l 登陆的Font按分类单位进行管理。(2) 画面构成要素图3.2 画面构成
36、要素描画面 l 编辑画面上所配置的要素进行管理。表示面l 实际上显示的画面领域及多个画面的重合进行管理。Buttonl 作为Button的机能。l 条件进行管理。l 管理与多个框的关联。Eventl Button的Event进行管理。l Event処理的Source能够根据Editor进行编辑。变数l 以画面单位使用的变量进行管理。Test Patternl 保持编辑画面使用变量一览Dialog中设定的、变量的值。定数l 画面单位使用的定数进行管理。操作音声l 画面显示時输出的操作音声的ID、条件进行管理。框l 将多个要素进行Group管理的要素。l 具有矩形的坐标、没有描画出来的图形。l G
37、roup中的要素、其坐标以框的坐标为基准。l 能够记述显示条件,Group中的要素根据此条件分为显示非显示。l 能够进行移动、旋转、倍率的设定 。Layerl 将多个要素进行Group化的要素,没有坐标。l 能够记述显示条件,Group中的要素根据此条件分为显示非显示。线l 线是画面上显示的直线、能够设定显示颜色。矩形l 矩形是画面上显示的四边形。l 能选者填充或不填充。l 填充者,可进行填充内容(Palette、Bitmap或透过)的设定。Textl 将文字在画面上显示的要素、能设定表示文字列的属性,如Font Size、Palette。任意函数l 能将用户给定的函数进行登录。Draw要素l
38、 将多个描画用的要素进行了Group化的要素,具有矩形的坐标。l Group内的各要素可设定不同的颜色。l Draw要素中Group化了的要素不能定义( 框、Layer不能使用)。l 继承是以Draw要素单位进行。Poly linel 是画面上显示的Poly line。l Draw要素选择时机定义、编辑。Polygonl 画面上显示的Polygon、能指定Palette或Bitmap中。l Draw要素选择时可以定义、编辑。圆l 画面上显示的圆、能填充的有无。l Draw要素选择时可以定义、编辑。3.4 COMPILER工具简介和HMITOOL一样,COMPILER也是东软公司和日本AW公司合
39、作开发的,目的也是为更好的开发导航系统的用户界面部分,正向前一节所说的,HMI TOOL 将制作过程中工具生成的画面数据信息保存在XML文件中,然而,XML格式的文件并不能直接同C代码一起编译生成可执行文件,必须将XML文件中的数据信息取出,并将其转换成C代码,或存放在C格式的文件中,COMPILER便是起到了这个作用。此工具的使用很简单:第一步:打开要转化的工程的目录,选择输出到的目录。 图3.3 HMITOOL使用步骤1第二步:上图点击ok后,进入“变换内容定义”画面,选择要变换的内容。 图3.4 HMITOOL使用步骤2点击ok之后,开始变换,完成之后,转化结束。3.5 Framwork
40、 简介3.5.1 AW导航系统结构下图是系统结构图。 图3.5 导航系统结构3.5.2 代码与系统结构图的对应关系对应以上的系统结构,我们编写的代码包括三部分:变量初始化部分;迁移处理、功能处理部分;BUTTON事件处理部分。(1) 变量初始化部分在我们制作画面数据时,为了对画面描画状态进行控制,需要定义各种各样的变量。例如:为了控制一个部件A的显示状态:NORMAL和TOWN DOWN。我们要定义一个变量bTownDown。并设定该变量值为0时,显示NORMAL状态;该变量值为1时,显示TOWN DOWN状态。对于我们在HMI TOOL工具中定义的所有变量,在HMI TOOL的输出代码中都没
41、有定义。而是采用使用外部变量的方式。为了取得外部变量的地址,HMI TOOL针对每个变量定义了一个获取外部变量地址的函数。同时,由于HMI TOOL不知道外部变量是如何定义的,因此,所有的这些获取外部变量的函数都被定义为外部函数。这些外部函数的函数实体需要我们来定义。所有这些外部函数就构成了我们的xxxx_var.c文件。由于一旦画面被描画,HMI DRIVER就需要通过变量地址来取得变量的值,从而判断该如何描画该画面。如上面说到的部件A, 一旦需要描画,DRIVER首先需要判断是描画NORMAL状态还是描画TOWN DOWN状态。此时,必须引用变量bTownDown的值。从这点可以看出,我们
42、定义HMI TOOL中定义的变量时,必须保证一点:定义的变量不能是局部变量,并且变量的生命周期跟画面的生命周期相同。(2) 迁移处理、功能处理部分这部分是我们编写的用于控制画面迁移的代码,和对各种式样要求的功能进行实现的代码部分。迁移处理,必须通过Frame Work来实现。换句话说,frame work是具有三项功能。一、通过HMI DRIVER来控制画面的描画;二、登录画面;三、对登录的画面进行管理。为了管理登录的画面,在Frame Work或与FrameWork相关的模块中,定义了一个画面管理的堆栈。我们暂时理解为该堆栈在FrameWork中处理,以便于我们的理解。在该堆栈中,管理每个画
43、面的ID标识和画面相关信息。(3) BUTTON事件处理部分硬件接收到用户的操作后,需要通过FrameWork调用BUTTON处理函数来对用户的操作进行响应,并通过调用迁移处理来完成画面的迁移功能。3.5.3 画面编码的文件结构对应以上部分,我们编码时也分为三个部分:变量初始化部分;迁移处理、功能处理部分;BUTTON事件处理部分。对应的文件按如下方式划分。(1) 变量初始化部分该部分完成的工作为:编写HMI TOOL中对应每个变量定义的外部函数的函数体,文件名称为:xxx_var.c。(2) 迁移处理、功能处理部分该部分需要完成的文件包括XXX_in.h、XXX_frm.c;功能处理的部分包
44、括文件XXX_func.c。必要时需要生成XXX_com.h和XXX_com.c。完成的功能如下:l 完成本画面的登录工作。l 生成Frame Work能够识别的消息处理循环(具体的参见迁移处理部分)。l 调用各种API函数,完成画面的各种功能。(3) BUTTON事件处理部分该部分的功能主要完成画面的BUTTON处理函数的编写。现在,在编码中需要处理的仅仅为登录一个CMD命令,然后在Frame Work的消息循环中处理该CMD即可。为了减少文件XXX_frm.c的大小,一般将具体的处理做成单独的处理函数,并将它放在XXX_func.c中,在消息循环中调用处理函数即可。3.5.4 迁移处理部分
45、(Frame Work)(1) 画面登录函数的做成为了将一个画面登录到Frame Work的画面堆栈中,对每个画面必须编写一个start函数。由于在登录画面的同时,需要将为HMI TOOL中定义的变量申请内存空间并将该内存空间登录到Frame Work的堆栈中,因此,在编写该函数前,必须先定义一个结构体。(2) 定义变量设定函数和其他Frame Work要求的消息循环函数在Frame Work中,将一个消息循环的函数定义为一个统一结构的结构体。在这个结构体里定义所有的Frame Work需要的功能函数和消息处理函数,并传给Frame work的迁移句柄,这样整个画面就能够顺利的进入消息处理的循环。typedefstructF_HFSTARTstart;迁移开始函数F_HFEND end;迁移终了函数F_HFGETSCRNIDgetscrnid;画面显示情报取得函数F_HFVARSET varset;