毕业设计(论文)汽车导航系统POI电话检索的设计与实现_第1页
毕业设计(论文)汽车导航系统POI电话检索的设计与实现_第2页
毕业设计(论文)汽车导航系统POI电话检索的设计与实现_第3页
毕业设计(论文)汽车导航系统POI电话检索的设计与实现_第4页
毕业设计(论文)汽车导航系统POI电话检索的设计与实现_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、学号:学号:20040101032004010103 哈尔滨师范大学哈尔滨师范大学 学士学位论文学士学位论文 题题 目目 汽车导航系统汽车导航系统 poipoi 电话检索的设计电话检索的设计 与实现与实现 学学 生生 指导教师指导教师 副教授副教授 年年 级级 20042004 级级 专专 业业 计算机科学与技术计算机科学与技术 系系 别别 计算机科学与技术计算机科学与技术 学学 院院 计算机科学与信息工程计算机科学与信息工程 学学 士士 学学 位位 论论 文文 题题 目目 汽车导航系统汽车导航系统 poipoi 电话检索的设计电话检索的设计 与实现与实现 学学 生生 指导教师指导教师 副教授

2、副教授 年年 级级 20042004 级级 专专 业业 计算机科学与技术计算机科学与技术 系系 别别 计算机科学与技术计算机科学与技术 学学 院院 计算机科学与信息工程计算机科学与信息工程 哈尔滨师范大学 2008 年 5 月 摘要:摘要:伴随着人们生活水平的提高,汽车作为一种非常便利的交通工具,逐步进 入千家万户,为人们的生活带来了极大的方便。但是随着人们外出空间的不断扩大, 如何使人们能够在一个陌生的环境中找到自己的方位,并且能准确地定位自己的目的 地,成为人们关心的问题!汽车导航系统满足了人们的需求,解决了这个问题。 汽车导航的基本功能是一个车载的电子地图,但是它比普通电子地图的功能强大

3、 百倍。在汽车导航系统中,人们不但可以看到自己周边乃至全国的各个比例尺下的地 图,而且还能通过 gps 等信息准确地定位自己的方位,设定想要到达的目的地。在用 户设定目的地后,系统会根据用户的要求自动计算出一条最佳路径,提供给用户,以 作行驶参考。导航系统还能够完成设施检索、电话号码检索、住所检索等各种检索功 能。更让人兴奋的是能够在汽车内进行无线上网等功能。 关键词关键词:汽车导航 poi hmitool 目目录录 第一章第一章 前言前言 .1 1 11 应用背景.1 12 目的和意义.2 13 关于本文.2 第二章第二章 汽车导航系统知识简介汽车导航系统知识简介 .3 3 2.1 汽车导航

4、的基础知识.3 2.1.1 汽车导航系统的基本概念 .3 2.1.2 汽车导航系统的发展历史 .4 2.1.3 汽车导航系统的发展现状 .5 2.1.4 汽车导航系统的未来 .6 2.1.5 汽车导航系统的主要功能 .6 2.1.6 汽车导航系统的基本工作原理 .7 2.2 汽车导航系统的基本框架.8 2.3 关于 operation book.10 2.3.1 operation book 的作用 .10 2.3.2 operation book 的功能实现 .10 2.3.3 operation book 的制作 .11 2.4 专用词语 .11 第三章第三章 需求分析需求分析 .1313

5、 3.1 任务概述.13 3.1.1 项目任务概述 .13 3.1.2 课题任务概述 .13 3.2 课题目的及可行性分析.13 3.2.1 课题目的 .13 3.2.2 可行性分析 .13 3.3 工具 hmi tool 简介 .14 3.3.1 hmitool 的目的 .14 3.3.2 工具中各数据的构成 .14 3.4 compiler 工具简介 .18 3.5 framwork 简介 .20 3.5.1 aw 导航系统结构 .20 3.5.2 代码与系统结构图的对应关系 .20 3.5.3 画面编码的文件结构 .21 3.5.4 迁移处理部分(frame work) .22 第四章第

6、四章 概要设计概要设计 .2626 4.1 电话号码输入画面制作.26 4.2 电话号码检索结果目录画面制作.27 4.3 检索的数据结构.29 4.4 电话号码输入画面编码.30 4.5 电话号码检索结果目录画面编码.31 第五章第五章 系统实现系统实现 .3434 5.1 画面的数据制作.34 5.1.1 电话号码输入画面数据制作 .34 5.1.2 检索结果目录画面数据制作 .35 5.2 画面编码.37 5.2.1 电话号码输入画面编码 .37 5.2.2 检索结果目录画面编码 .39 第六章第六章 测测 试试 .4242 6.1 实现过程中出现的问题及解决方法.42 6.2 运行结果

7、.42 结结 论论 .5252 参考参考文文献献 .5353 abstraabstractct .5454 第一章 前言 1 11 1 应用背景应用背景 当今世界汽车的保有量逐年增加,给道路交通带来了严重的堵塞和拥挤,成为 社会环境的一大公害,也造成了巨大的经济损失。修建道路,加大流通能力,虽然 是解决交通拥挤的重要途径,但一些交通发达的国家都已清醒地意识到,仅仅靠扩 建公路来解决交通拥堵问题是很有限的,必须谋求一种高科技手段的解决办法 汽车电子导航系统。 汽车电子导航系统不仅能够解决交通堵塞问题,更是汽车时代数码生活的新象 征。现在,驾驶装有导航系统汽车的人们再也不必为工作或者旅游要去一个陌

8、生的 地方而感到苦恼,也不用担心面对高速发展的交通网不知怎样前往目的地,这就大 大节约了时间,提高了效率,因此越来越受到人们的欢迎,逐渐走入人们的生活。 现代汽车导航系统得到普及和推广是伴随着美国 gps(global positioning system,即全球定位系统)系统的发展而出现的,是一种可以实现汽车即时定位、 路径诱导、路径计算等功能的车载定位系统。20 世纪 90 年代,美国将导航系统的 研究从传统的惯性导航领域推进到了现代的卫星导航领域。gps 系统是由空间卫星、 地面监控和用户接收等三大部分组成。空间卫星由 24 颗卫星组成一个分布网络,分 别分布在 6 条离地面 2 万公里

9、、倾斜角为 55的地球准同步轨道上,连同设在美国 本土的地面监测中心和采用伪随机编码测控技术的 gps 接收机,可以提供全球范围 从地面到 9000 公里高空之间任何载体的高精度三维位置、三维速度和系统时间。该 系统于 1993 年全部建成,随之对民间开放使用。 就目前的发展情况看,车辆导航技术最发达的地方是美国、日本和欧洲等地区, 其导航技术的现状代表了本领域研究和应用的发展方向,尤其是日本导航技术的发 展更是处于领先地位。在日本的一些豪华轿车上,导航系统已不再是选装,而成为 了标准设备。例如丰田公司的 windom,日产公司的 cina,本田公司的 legend。此 外,还有一些进口轿车,

10、如奔驰公司的 s 级轿车,宝马公司 i 的新 7 系列和 5 系列 轿车都装备有这种电子导航系统。三菱汽车公司更是大胆赌注,作为标准设备,把 导航系统装在了中级轿车 galant 上。由于汽车导航系统扩展到更多的车型,因此在 车内装饰设计中,在仪表板上预先留出一块 15 厘米左右的视频显示屏幕的位置,已 成为常规。美国福特公司的 gps 系统只有汽车收音机大小,它与收音机,电话集装 在一起。显示屏位于中央,为司机指示方向并提供声音指示。 gps 汽车导航系统的研制和应用在我国起步较晚,还处于初级阶段,目前主要 是应用在专用汽车上,如银行运钞车,公安巡逻车等。近几年,我国自行开发的汽 车卫星导向

11、仪已正式推向市场。它可将汽车的任何动态位置随时准确无误地显示在 仪器的电子地图上。该导向仪的电子地图自动跟踪显示汽车当前位置及周边情况。 这种导向仪已内存我国各大城市道路的电子交通图及全国高精度的公路网及其沿线 村镇以上级别的地名。司机可随时在导向以上查询周边半径 300 公里地区的地理信 息,为汽车提供安全顺畅的行车路线。此外,驾驶员亦可将行走的路线随时输入导 向仪,以确保按原路返回。该仪器只有一本普通书大小,重 600 克,采用汽车点烟 器电源供电,使用十分方便。 目前,越来越多的汽车行业厂商开始投入导航系统的推广。可以预见,随着更 多汽车企业的介入,导航产品市场将逐渐成熟。汽车导航已经进

12、入了一个蓬勃发展 的时代。未来的导航系统将集娱乐、通信和导航于一体,更注重个性化、个人化、 小型化。预计不久的将来,导航系统将成为现代化汽车的标准配置,让更多的用户 都享受高科技带来的乐趣。 1 12 2 目的和意义目的和意义 此次毕业设计的目的是为了将在学校所学的知识运用到实践当中,锻炼自己动手 能力,和学习能力,由于我是在公司完成毕设,所以也有熟悉业务工作的目的。 1 13 3 关于本文关于本文 此次毕业设计所选择的大题目是公司给定的,因为所在部门是汽车导航,所以公 司给的大的题目是汽车导航系统 poi 部分的设计与实现 ,poi 部分是完成检索功能, 包括设施检索、电话检索、住所检索、五

13、十音检索等,我的论文所要研究的就是电话 检索的部分。 第二章 汽车导航系统知识简介 2.12.1 汽车导航的基础知识汽车导航的基础知识 2.1.12.1.1 汽车导航系统的基本概念汽车导航系统的基本概念 因为对汽车导航不熟悉,很多人一听到“汽车导航” ,想到的就是 gps 全球定位。 其实这种知识是不全面的。 当人们为了工作或旅行要开车去从来没有去过的地方时,会犹豫不知该怎么走 才好。这时汽车司机常常会一边打开地图,一边观察周围一些能够成为目标的建筑 物和信号器具上的标志,确定自己的位置。然后,从这些信息中得知到目的地为止 的大概的距离和方位,在地图上确认到达目的地为止的路径。汽车导航系统就是

14、由 “知道自己位置的”定位功能, “引导到目的地为止”的路径引导功能,再加上把这 样的情报通知给驾驶员的代替地图的显示器和语音输出设备构成。现在汽车导航的 特征是“电子地图”和“gps 定位功能” 。电子地图就是将各个地区的地图以特殊格 式存入 dvd(vcd)或硬盘中,在需要的时候有导航仪读取。gps 定位功能是美国国防 部的 navstar(navigation system with time and ranging )卫星导航系统,可以 在全地球上测定绝对位置(精度,纬度,高度) 。通过推测算法、地图匹配以及来计 算出自车位置。 电波电波 beaconbeacon antennaant

15、enna fmfm 多重多重 displaydisplay 光光 beaconbeacon n n a a v v i i autennaautenna vicsreceivervicsreceiver gpsgps antennaantenna cd-rom/dvdcd-rom/dvd pcmciapcmcia 图 2.1 汽车导航的产品形态 2.1.22.1.2 汽车导航系统的发展历史汽车导航系统的发展历史 现在汽车导航的特征之一 的“电子地图”和“定位功能”正式投产是 1987 年 的丰田皇冠系列,那时推测航法已经作为定位技术被使用了。这是把通过地磁气传 感器得到的方位和通过车速传感器得

16、到的距离,按照向量积分算出车辆的行驶轨迹, 求得从出发地的相对位置。 1989 年生产的日产车(公爵)第一次采用了地图匹配技术。这是把 通过推测航法算出来的车辆的行驶轨迹和存放在 cd-rom 里的道路形状相比较,找出 自车的行驶道路,确定自车位置的技术。 1990 年的马自达第一次采用了 gps 定位技术。由于 gps 可以确 定在全球范围内的绝对位置,这样使自车定位的精确度大大提高了。 1991 年丰田里第一次安装了自动计算到目的地为止的经路的路径引导功 能,通过他产生了汽车导航的 2 个基本功能。这时,作为定位技术采用的有推测航 tft 液晶 法,地图匹配,还有用 gps 补正绝对位置的

17、混合航法,现代汽车导航系统的基本功 能已经实现,并且精确度也有了很大的提高。 1992 年的丰田上采用了通过声音进行路径引导的方法,使导航使用起 来更加容易。 至此,汽车导航系统的导航功能已基本成熟。 1995 年到 2000 年,车辆内的信息化的急剧的推进,汽车导航实现了动态的交 通信息接收并向小型化的方向进行发展,推出了基于掌上电脑的导航仪产品。 2.1.32.1.3 汽车导航系统的发展现状汽车导航系统的发展现状 目前,索尼日本推出的一款名为“xyz”的汽车导航系统刚刚在日本市场投放, 就受到了众多汽车爱好者的极大关注。 “xyz ”的汽车导航系统通常被安装于汽车驾驶座前方的仪表盘控制区,

18、主体部分 是一个设计小巧的显示器,其最为奇特之处就在于这块显示器的图像输出上: “xyz”可以输出类似于三维游戏画面的立体影像,不仅告诉驾驶者现在所处的位置 及周围环境,还可以显示接下来的街道,拐角或交叉路口的交通状况等,因为是三 维成像,如同“极品飞车”的游戏画面一样,能够给驾驶者带来身临其境的真实感 觉。 它的可移动式硬盘存储器拥有 30 gb 的强大存储量,除了可以保存大量的 3d 电子地图外,还能余下空间使驾驶者保存自己喜欢的各种音频和视频文件。可以将 存储器从汽车上卸载下来,连接到电脑或因特网下载电子地图或影音文件等。设计 者还别出心裁地为“xyz”配备了一个触摸屏,可以直接用手指点

19、击,进行播放、进 退及建立播放列表等操作。 目前,在国内也有许多公司在这个方面开展研究.比如, 国内第一款便携式、多 用途卫星定位自导航产品“城际通”,已由北京城际在线网络科技有限公司研 发成功并已通过部级专家鉴定.它采用了一种综合了卫星定位技术(gps)、地理信息 技术(gis)、嵌入式系统、互联网技术的便携式、多用途卫星定位自导航信息终端。 国内也有许多公司在汽车导航方面有很高的技术水平.而且在国内的许多汽车上面没 有加载汽车导航系统,同时在汽车私人购买量迅速增加的过程中发展迅速,这就为汽 车导航产品留下了巨大的市场空间。 近年来,全国许多地方如北京、厦门、深圳、成都等地都在研制汽车卫星定

20、位 系统,并且已有六七个产品投放市场,但这些产品大都局限于汽车的跟踪定位和防 盗,真正可以广泛运用于大众的汽车卫星导航系统并不成熟。直到最近,被业界关 注的“卫星导航仪”出现在人们视野的时候,把一度涌动的全球卫星定位系统 (gps)产品开发潮推向了前端。 2.1.42.1.4 汽车导航系统的未来汽车导航系统的未来 在日本汽车导航技术在汽车制造业中的普及率较高,并且各公司的产品之间竞争十 分激烈,相关技术发展也较快。欧美国家以及日本的汽车导航市场也已经初步形成。 汽车导航系统并不是单纯地向目的地的诱导,而是考虑了进行安全行使机能的一部 分以及与高速道路的收费系统连接等各种用途。在将来的市场中,汽

21、车导航系统将 向着多媒体和人工智能的方向发展。. 国外汽车导航的发展告诉我们,汽车导航技术在应用领域有着广阔的前景。是 未来汽车制造业发展的必经阶段。我们有必要将这一先进技术带入中国的汽车工业, 为民族汽车工业的腾飞打好基础。 2.1.52.1.5 汽车导航系统的主要功能汽车导航系统的主要功能 (1) 定位功能 汽车电子导航系统,必须在地图画面上表示出对车辆正确的测定位置。位置的 测定方法有:自行定位法, gps 全球卫星定位法, 复式定位法, 地图匹配法。 (2) 电子地图显示功能 电子地图上显示的内容包括,地图背景,自车位置,引导路线,mark(标记点), usermark(用户自定义标记

22、点),比例尺,地图方位,到达时间,残余距离,走行轨 迹等。 (3) 导航功能 用户在电子地图上指定目的地后,给出目的地和当前车辆位置的连线,并给出 合适的到达目的地的最佳路径,以醒目的颜色显示,并根据汽车新位置不断修正以 上显示;用户还可以根据自己得喜好选择各种路线条件,如推荐,距离优先,一般 道优先,道幅优先等。 (4) 查询功能 可以通过住址、设施名称、电话号码等进行检索地图中各单元的信息。以便设 定为目的地或经由地或进行其他操作,还可以查看引导道路情况及标记点周边情况 等。 (5) 多媒体功能 随着导航技术的日益成熟化,导航仪上的功能也日益多元化。不仅仅起到导航 的功能,更增加了电视、d

23、vd/cd、mp3、fm 等多媒体功能,让用户在开车的时候能 充分享受到导航系统带来的驾驶乐趣。 2.1.62.1.6 汽车导航系统的基本工作原理汽车导航系统的基本工作原理 (1)定位 算出车辆的现在位置的定位方式有自立航法和电波航法。自立航法是通过安装 在车辆上的方位传感器和距离传感器求得行驶轨迹,求得车辆的相对位置。电波航 法里,gps 被实用化,接受由人造卫星发出的电波,求得车辆的绝对位置。还有, 在各自的航法中通过比较地图的道路形状数据和车辆行驶轨迹的形状,提高现在地 的推定位置的方法就是地图匹配。 车辆厂家纯正导航是从自立航法出发,加上 gps、地图匹配提高了精度。同时, 市场导航是

24、从 gps 出发,加上地图匹配提高了精度,但是如果只使用 gps 的话,由 于存在电波的遮蔽地方,所以不能时常保持其精度。因此自立航法和地图匹配、gps 同时使用,维持精度的类型逐渐变为一般化。这样,自立航法和 gps 同时使用的航 法叫做混合航法。 图 2.2 复合定位法 定位功能是由减低电波航法 gps 和方位传感器、距离传感器拥有的误差,算出 经纬度、方位、行驶轨迹的混合航法和对照通过混合航法得到的行驶轨迹和道路数 据,算出现在位置的地图匹配构成。 (2)路径案内 案内是日文汉字,就是引导的意思。在最开始时,路径案内功能只是对被设定 的目的地用箭头显示方向这一单一功能。然后是开发了自动算

25、出案内路径的自动路 径探索功能和基于被输入进去的路径案内到目的地为止的案内功能,现在发展到了 把这两个功能组合起来的案内功能上。 另外,这个案内的内容不仅仅是在地图上的方向显示,还出现了显示所分歧的 交叉点的详细情报的交叉点扩大图和方向名称显示,用声音通知分歧的交叉点的声 音案内,进一步出现了显示在 hud(head up display)里的案内等,面向更加详细案 内的改良和更加容易理解的显示方法的研究也展开的非常火热。 (3)路径案内主要的功能 自动路径检索功能:指的是根据所给的目的地和检索备件,加上地图 cd-rom 中 保存的数据(静态情报) 、还有从外部得到的动态情报(如 vics

26、信息) ,自动算出推 荐给驱动器的路径的功能。检索条件有是否把收费道路作为优先、是否设定通过点 等。静态情报有道路网络、道路单一方向通行或交叉点通行规则、道路宽度、道路 种类、收费道路、道路结构、状况等。动态情报有封闭交叉斜路(ramp)等通行规 则情报、表示道路拥挤程度的阻塞情报。 路径指导显示(route guidance):是指导使驾驶员安全、快速的且放心的到 达设定目的地。路径指导显示方法中有表示路径概要的路径全体图或路径模式图、 为减少看画面而进行的声音案内、表示用声音不能表达好的分岔交叉点详细情报的 交叉点扩大图、高速行驶时简单明快的案内的方面名称显示等。 2.22.2 汽车导航系

27、统的基本框架汽车导航系统的基本框架 导航系统基本框架如下,由于 aw 部门只涉及 ui 层和功能层,故只对这两层做 简要介绍。 (1)hmi(human 迁移开始函数 f_hfend end;迁移终了函数 f_hfgetscrnidgetscrnid;画面显示情报取得函数 f_hfvarset varset;变量设定函数 f_hfdisp disp;画面显示更新函数 f_hfevtoev evtoev;eventevent 转换函数 f_hfevtocmd evtocmd1;各画面的 eventcommand 转换 f_hfevtocmd evtocmd2;共通的 eventcommand 转

28、换函数 f_hfcmdproc cmdproc1;各画面的 command 处理函数函数 f_hfcmdproc cmdproc2;共通的 command 处理函数函数 dword attr;画面属性 dword time;定期显示更新时间 s_hmifrmfunc; 每个画面都需要定义一个类型为以上类型的全局变量,并将我们为该画面定义的 各种函数的指针付值给该全局变量。以下是按每个画面分别需要定义的各种函数,其 中,(必)表示该函数必须被调用,其他的可以省略。省略的函数,将其变量设定为 null 即可。(标)frame work 标准函数,后面的即为标准函数的名称。 迁移开始函数(必)(标)

29、( hmifrm_std_procstart) 迁移终了函数(必)(标)( hmifrm_std_end) 画面显示情报取得函数(必) 变量值设定函数 画面显示更新函数(必)(标)( hmifrm_std_display) eventevent 转换函数 eventcommand 转换函数 command 处理函数 画面属性 下面主要介绍一下各种函数在一个画面的各个阶段的调用顺序。 (3)画面的各种函数的调用顺序 一个画面可能被描画的唯一时机 排除不能被描画的画面外(即一个画面的描画函数被设成了 null) ,一个画面要想 被描画出来,则它必须处于当前描画的 frame work 堆栈的顶部。

30、 登录画面 每个画面要想描画出来,第一项工作是将该画面登录到 frame work 中。即:第一 个会调用到的函数为 xxx_start 函数。 描画时,各个函数的调用顺序 不管一个画面是刚登录到 frame work 中,还是已经在 frame work 中,描画时, 第一个调用的函数是变量设定函数,然后是描画函数。这样,一个画面即可描画出来。 换句话说,在我们编写的函数中,每次必须被调用的函数是变量设定函数和描画 函数。而从我们做 aw 的导航项目以来,很少编写画面描画函数。这样,就剩下变量设 定函数是每次描画画面都必须调用的函数。如果我们在这个函数中编写的代码过多或 执行这个函数需要的时

31、间长,都会直接影响画面的描画效率,从而影响系统使用者的 第一印象。为了确保系统的效率,如果一个变量的值不是经常变化或仅仅在固定时刻 变化,则这个变量的赋值不要在变量设定函数中完成,而采取其他的调用时机不多的 函数中进行。 迁移终了函数的调用时机 在两种情况下需要调用一个画面的迁移终了函数。一种是画面从 frame work 中退 出,另一种是一个画面在 frame work 的堆栈中的位置从栈顶变成非栈顶时,系统会调 用该画面的迁移终了函数。 eventevent 转换函数 该函数完成 event 到 event 的转化。比如其他的模块发送过来一个 event a。而在 我们编写画面函数中没有

32、处理该 event。同时,在我们的画面中处理了 event b,且系 统要求对这两个 event 的处理是一样的。这时候,我们就需要编写该函数,并在该函 数中处理 event a。处理的具体内容,就是向本画面发送 event b 即可。这样,借用 b 的消息流程和现有代码,完成 a 的处理即可。 而在我们做 aw 导航的项目以来,还没有遇到过这样的情况,因此,我们一般不用 编写该函数,设定为 null 即可。 eventcommand 转换函数 这就涉及到我们对画面 event 的具体处理过程。在画面中,我们处理的一般为 cmd,很 少直接处理 event 消息。这样就要求我们将 event

33、转换为 cmd。因此,在该函数中接收 到一个 event 时,我们向本画面发送一个 cmd 就可以了。这样做没有别的特殊的原因, 仅仅是 aw 的要求。 当系统中有没有正在处理的 cmd 时,系统将自动调用该函数,并将未处理的 cmd 发送过来。所以,我们一旦发送 cmd 后,都需要在 command 处理函数中,处理该 cmd。 迁移开始函数(procstart 函数) 该函数的调用时机非常固定。在一个画面成为 framework 处理栈的栈顶画面时, 系统自动调用一次该函数,其他时机不会调用。 详细说,当调用一个 start 函数将一个画面放入堆栈时,立即成为该堆栈的栈顶 画面,然后马上调

34、用迁移开始函数。当一个画面已经在堆栈中,如果不是栈顶画面, 当他突然变成栈顶画面时,调用的第一个函数就是迁移开始函数。 另外,当迁移开始函数返回失败时,系统不会启动该画面的描画流程,而直接调 用该画面的 end 函数,将该画面推出堆栈。 其它变量或函数的使用时机 由于其他变量或函数的使用时机不影响到我们的编码或设计工作,因此我们 不用追究。 第四章 概要设计 4.14.1 电话号码输入画面制作电话号码输入画面制作 下面是电话号码检索输入画面的式样。 *1(詳細) *1 戻 a b 完了 c 電話番号 1 修正d市外局番入力下 2 市外局番入力下 图 4.1 电话号码输入画面式样 表 4.1 各

35、部分定义 号码 名称关联性表示消去 tone down 走行状态长压 a 返回无时常无无无无 b 数字输入键无时常无无有无 c 完了无时常无有无无 d 修正无时常无有有无 1 标题无时常无无无无 2 电话号码输 入区 无时常无无无无 根据给定的式样和各部分的制作要求,有以下一些任务需要完成。 将电话号码输入显示部分和修改 button 做成 lib,需要设定变量用来记录输入部 分的文字,另外需要将文字显示部分做成 list 要素,该 list 要素由 13 个位图 (bitmap)组成,用来显示输入的文字,通过 index 要素控制描画哪个要素,index 要 素由参照变量和 offset 变

36、量组成,因此要定义 13 个变量作为文字显示的 offset 变量, 同时还要定义一个变量作为 list 要素的参照变量,需要定义一个变量来作为输入层和 其他文字显示层的显示条件和修正 button 的 tonedown 状态的条件。 将十个数字输入键做成一个 lib,由于在车的走行过程中十个数字键要处于 tonedown 状态,所以要定义 10 个变量。 将返回 button,完了 button 也分别制作成 lib。 在画面制作的时候,要继承前面所说的两个 lib,而且要定义一个变量用来记录画 面输入文字的个数,同时控制完了 button 的 tonedown 状态的条件。 4.24.2

37、电话号码检索结果目录画面制作电话号码检索结果目录画面制作 下面是电话号码检索结果目录画面的式样. *1(詳細) * 1 前 次 戻 a b 電話番号 1 2 c d e f 3 gh 4 图 4.2 电话号码检索结果目录画面式样 表 4.2 各部分定义 号码 名称关联性表示消去 tone down 走行状态长压 a 返回无时常无无无无 b 目录(电话 号码) 无时常无有有无 c 向前翻一条无时常无有有无 d 向前翻一页无时常无有有无 e 向后翻一页无时常无有有无 f 向后翻一条无时常无有有无 g 文字右移有 文字 左端 有有有无 h 文字左移有 文字 右端 有有有无 1 标题无时常无无无无 2

38、 索引对象电 话号码 无 号码 输入 状态 有无有无 3 目录位置表 示 无时常无无无无 4 地点标志无时常无无无无 根据给定的式样书和各部分制作要求,有以下一些任务需要完成。 将电话号码显示部分制作成 lib,同时需要定义两个变量,一个用于显示取得的电 话号码,一个用于电话号码显示的条件。 将上下滚动 button 制作成 lib,同时定义四个变量用来控制四个 button 的 tonedown 状态的条件。 将上下滚动监视条部分制作成 lib,定义一个变量用来控制位置指示器的位置。 将一条目录显示部分制作成 lib,定义 8 个变量,用来控制目录的 tonedown 状态, 纪录目录个数,

39、表示目录的名称,记录文本的偏移量,作为名称显示状态标志,作为 名称标志显示的标志,记录名称标志的类型,作为选择标志,定义 3 个变量分别表示 空白行条数,检索标志和输入标志来控制 button 输入,定义一个描画函数描画名称标 志,由于名称标志有时需要用 list 要素来表示,所以要定义两个变量分别作为 list 要素的参照变量,和 offset 变量。 继承 5 个上面的目录 lib,做成一个具有 5 条记录的 lib,定义一个变量用来改变 纪录的宽度。 将文本框左右滚动的一个控制 button 制作成 lib,定义一个变量用来控制显示左 箭头,右箭头,还是 tonedown 状态,定义三个

40、变量分别表示空白条个数,当前目录号 和总的目录数,他们共同控制 button 的显示。 继承 5 个上面的文本框左右滚动的控制 button 的 lib,做成一个具有 5 个控制 button 的 lib. 将返回 button 制作成 lib。 在画面制作的时候目录画面为了实现滚动时平滑滚动的效果,即看起来并不是文 字突然跳动到另外一行而是整个 list 部分在向上滚动(就像放电影是连续播放的而不 是仅仅像 gif 图片一样跳变的) ,因此画面要做成 front 层和 list 层,这样就需要定 义一个变量决定显示哪个画面。在画面中还需定义一个变量用于 list 要素的参照变量, 定义 12

41、 个变量作为 offset 变量,定义 12 个变量用来控制 list 要素中每个文字的显 示。 下面是 list 页面的式样。 * * 1 1 a b 图 4.3 电话号码检索结果目录画面式样 将画面中 a 部分制作成 lib,该 lib 中的每一条主要继承于上面的一条目录所作成 的 lib. 将画面中的 b 部分制作成 lib,该 lib 中的每个 button 主要继承于文本框左右滚 动的一个控制 button 所作成的 lib. 4.34.3 检索的数据结构检索的数据结构 一提到 poi(检索)也许就会想到数据库以及和数据库相关的一些工具,查询语句, 然而在汽车导航系统中你根本找不到类

42、似的东西,因为汽车导航中用的是地图光盘, 地图盘里存储着相应的数据,而且他们的存储格式并不像我们所想象的那样按顺序存 储一些地点信息,地图光盘中的数据是以特定的格式存储的(kiwi 格式),数据有自己 的结构,poi 的功能是检索以及管理检索结果数据,poi 调用 cd 模块读取地图光盘中 的数据,然后找到相应的数据读取出来之后再存储为相应的格式,poi 调用 cd 模块查 找和读取数据的过程实际上就是检索的过程,存储的格式就是经过 poi 处理后的数据, 格式是依照各检索类的不同而不同,最后的得到的地点信息就是 s_pointinfo 的格式, s_pointinfo 中的数据主要用于画面的

43、显示以及地图打开时的参考,地图的打开主要会 参考 s_pointinfo 中的坐标、比例尺等信息。 我们在编码的时候真正用到的 poi 也只是各相应的检索接口函数,用到的地点信 息也就是 s_pointinfo 格式的。 其中地点(point)纪录的是经度和纬度信息,面积纪录的是经度、纬度的最小值 和最大值。poiinf 中记录连接类型,指针,poihandle 中记录指向数据的指针,poi 句 柄,检索类型。 4.44.4 电话号码输入画面编码电话号码输入画面编码 在画面编码的时候有些文件的编写已经成为定式,在功能实现的时候是必须要编 写的,否则不能实现其功能,如 start 函数,pros

44、tart 函数等,直接涉及到画面的迁 移问题,没有他们就不能实现迁移,这些都是 frame work 中所规定的函数,不过在不 同的画面中这些函数的真正实现是不同的,除此之外的 button 响应函数也是必须编写 的,它可以调用一些其他函数来实现一定的功能,下面先以表格的方式介绍一下各函 数的调用关系,具体的实现在系统实现的时候详细介绍。 表 4.3 事件处理 名称调用函数 button_rettrnsret_cbk button_back phonenosearch_deleteword library_keybinputchange_changevarset button_zero- ni

45、ne library_keybinputchange_inputvarset phonenosearch_addword button_finishphonenosearch_stasearch 表 4.4 画面相关函数 处理函数所需调用函数 画面启动函数 ind09_start( s_htrk htrk,s_search data *stsearchdata ) ind09_library_mallocsize ind09_library_init hmifrm_start 开始函数 ind09_procsta rt hmifrm_proc_stdstart 结束函数 ind09_end 画

46、面表示情报 取得函数 ind09_getscrn id 变数设定函数 ind09_varset 描画函数 hmifrm_std_display 事件-事件转 换 画面事件-命 令变换 ind09_evtocmd 共通的事件- 命令变换 trpcom_std_ev tocmd 画面的命令处 理函数 ind09_cmdproc 共通的画面处 理函数 trpcom_std_cm dproc 空间分配函数 dword ind09_library _mallocsize( ) library_keybinputchange_mallocsize library_keybdigitkey_mallocsi

47、ze 初始化函数 int ind09_library _init( void* para, void* malloc_addres s ) library_keybinputchange_init library_keybdigitkey_init 4.54.5 电话号码检索结果目录画面编码电话号码检索结果目录画面编码 该部分主要实现目录的滚动效果,所以在函数的调用关系中主要调用目录共通的 处理函数。 表 4.5 事件处理 名称调用函数 listbtn1-5 listcommon_selectitemproc pointinfo = phonenosearch_crepointinfo hsc

48、rlbtn1-5library_list5hscrlbtn_hscrlproc backtrnsret_cbk listuplistcommon_lineupproc listdownlistcommon_linedownproc pageuplistcommon_pageupproc pagedownlistcommon_pagedownproc 表 4.6 画面相关函数 处理函数所需调用函数 画面启动函数 int ind10_start( s_htrk htrk, ind09_t* psttelsrc, s_searchdata* pstsearchdata ) hmifrm_std_st

49、art ind10_library_mallocsize ind10_library_init listcommon_makehandle 开始函数 ind10_procsta rt listcommon_settransferfunc listcommon_stasearch_now listcommon_getlistnum listcommon_getnowheadno hmifrm_list_procstart 结束函数 ind10_end listcommon_freehandle me_free hmifrm_scrl_free hmifrm_std_end 画面表示情报 取得函数

50、 ind10_getscrn id listcommon_getsearchstatus listcommon_setdisprq 变数设定函数 ind10_varset ind10list_var set library_listscrlbtna_varset library_listscrlbara_varset library_list5hscrlbtn_varset library_list5item1markfront_varset library_listnamedsp_varset listcommon_getschhandle library_list5item1marklis

51、t_varset library_list5hscrlbtndesign_varset 描画函数 hmifrm_std_display 事件-事件转 换 画面事件-命 令变换 ind10_evtocmd 共通的事件- 命令变换 trpcom_std_ev tocmd 画面的命令处 理函数 ind10_cmdproclistcommon_getschhandle 共通的画面处 理函数 trpcom_std_cm dproc 空间分配函数 ind10_library _mallocsize() library_listvscrlbtna_mallocsize library_listvscrlba

52、ra_mallocsize library_list5hscrlbtn_mallocsize library_list5hscrlbtndesign_mallocsiz e library_list5item1markfront_mallocsiz e library_list5item1marklist_mallocsize 初始化函数 ind10_library _init( s_htrk htrk, h_listcommon hlistcommonda ta, ind10lib_t pstlibhandle void* pmalloc_addre ss ) malloc_addres s

53、 ) library_listvscrlbtna_adrset library_listvscrlbtna_init library_listvscrlbara_adrset library_listvscrlbara_init library_list5hscrlbtn_adrset library_list5hscrlbtn_init library_list5hscrlbtndesign_adrset library_list5hscrlbtndesign_init library_list5item1markfront_adrset library_list5item1markfron

54、t_init library_list5item1marklist_adrset library_list5item1marklist_init 第五章 系统实现 5.15.1 画面画面的数据制作的数据制作 5.1.15.1.1 电话号码输入画面数据制作电话号码输入画面数据制作 在 hmi tool 中制作的画面都有两个层次。list 画面分为 front 层和 list 层,其 他画面分为 front 层和 back 层(电话号码输入画面) ,因为电话号码输入画面只用到 了 front 层而 back 层没有用到,所以这里不需介绍。下面是电话号码输入画面的图片。 图 5.1 电话号码输入画面

55、 整个画面的制作过程如下: 首先新定义一个画面,这里命名为 ind09front,之后在画面中插入一个框,在框 中定义两个 box,一个用于整个画面的底色,另一个用来制作上面的一条深蓝色的部分。 在填充 box 的时候要注意 bitmap 的选择,自身大小要与所给式样中所需制作的大小一 致,由于在真正做项目的时候所作的画面要严格按要求制作,即使只差一个 dot 都不 可以,否则在画面对比的时候将出现抖动,所以要从现在做起,制作的每个画面都要 认真去做,严格按照要求去做。 在画面中加入 title 部分,即电话号码字样的部分,tittle 的制作主要是由 bitmap 组成,值得注意的是 bit

56、map 要放入 frame 中,这样便于管理,而且坐标中所 设定的 bitmap 的大小要和所用的 bitmap 图片的大小一致,同时也要注意 a 设定,否 则在编码运行的时候图片会不能显示,或者是显示的是很乱的东西,分不清究竟是什 么图片。 在库中找到电话号码输入部分的 lib,将其继承过来添加到画面之中,所继承的 lib 的名称为 keybinputchange,其中数字输入部分由两部分组成:一是现在所看到的 数字,另一是程序运行时所要显示的文字。这样的不同显示功能由 layer 控制他们的 显示时机。现在所看到的图中的每个数字都由一个条件控制层 layer 和 list 要素组成, 该

57、list 要素由 13 个位图(bitmap)组成,用来显示输入的文字,通过 index 要素控 制描画哪个要素,index 要素由参照变量和 offset 变量组成,参照变量用来控制显示 哪个要素,offset 变量用来控制显示哪个数字。 将返回和完了键分别加入画面中。 将十个数字输入键加入画面中,数字输入键是继承于 keybdigitkey,这些 button 是作为电话号码输入部分的按键用的,虽然这部分是继承过来的,但也要注意各个 button 的位置和大小,因为画面制作中的每个 button 的位置和大小都要完全和式样中 的一致,即使是只差一 dot 都不可以,在制作的时候还要注意各个

58、 button 间的余白问 题,就是相临的 button 间不能重叠,各个 button 的反映区也要和其显示区大小一致, 否则点击反映区以外也会出现反应,或者你已经点击该 button 的边缘可是并没有出现 相应的反应。 5.1.25.1.2 检索结果目录画面检索结果目录画面数据制作数据制作 下面是 ind10 画面的界面,当检索到复数(大于一条)条信息时将迁移到此画面, 当检索到一条信息时直接迁移到地图画面。 图 5.2 ind10_front 画面 画面的大体制作过程和电话号码输入画面的制作过程大体一致。 tittle 该部分和电话号码输入画面的一样,这里不再多说。 电话号码显示部分,该

59、部分由两部分组成:文字显示部分和现在所看到的数字部 分,文字显示部分继承于 menulist_listnamedsp,主要由 layer 控制层和 text 组成, text 的显示由变量控制。现在所看到的数字部分的组成和电话号码输入画面的一样, 这里不在多说。 上下滚动控制部分,该部分主要控制 list 的滚动,上下滚动一条或者一页。该部 分主要继承于 menulist-listvscrlbtna。 滚动视觉效果显示部分,该部分主要继承于 menulist-listvscrlbara,该部分的 制作和其他的 button 有一些不同,它由两部分组成:底部长条的部分和上面黄色的椭 圆,其中黄色

60、的椭圆由一个 bitmap 组成,将它放到了一个 frame 框中, 这样放到框 中主要是制作的要求,便于继承,这个 frame 的移动属性设定为移动,并为其定义一 个变量来控制它的移动。 左右滚动控制部分,该部分主要继承于 menulist-list5hscrlbtn,只有在显示文 字过长时才能起到作用。 记录显示部分,该部分主要继承于 menulist-list5item1markfornt。 list 画面,在页面滚动的时候主要显示该画面的内容,它能显示是因为在制作的 时候将电话号码检索结果画面中的表示框中设定了一个透过层,根据显示控制条件分 别显示 list 层和 front 层的内容

温馨提示

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

评论

0/150

提交评论