论文摘要
随着国民经济的快速增长和中国汽车工业的迅猛发展,消费者对车载导航产品的需求也与日俱增,这极大地促进了车载导航产品的发展。未来几年中国汽车电子产业将继续保持快速发展的趋势,其中涉及到汽车行驶安全的车身电子产品和具备导航、通讯功能的车载电子产品将是中国汽车电子产品市场的主要发展方向,本文主要就是设计和实现车载导航系统中的通讯录系统。总结国内品牌的车载导航系统产品都存在以下一些问题:1.能够保存的数据量小,查找数据速度慢;2.产品功能比较单一,许多产品仅支持GPS导航和收音机等功能,并不支持与手机通讯连接等功能;3.许多系统的操作速度缓慢;4.系统开发调试困难。本文主要针对以上这些问题,设计和实现了车载导航中的通讯录系统。通过使用多线程、消息机制以及嵌入式数据库Sqlite和LOG信息输出等技术和手段解决了上述问题。本文首先从论文背景着手分析了国内外车载导航系统的现状及发展并介绍了本文的主要研究内容。在详细阐述该系统设计框架后,对系统的各个模块的设计进行了详细的讲解。本文中基于Windows CE6.0系统的软件设计是系统设计的重点,系统软件设计主要阐述了多线程应用、消息机制、嵌入式数据库Sqlite应用、vCard数据的解析以及LOG信息输出的设计和实现。Windows CE是有优先级的多任务操作系统,它允许多重功能、进程在相同时间的系统中运行,支持最大的32位同步进程。一个进程包括一个或多个进程,每个线程代表进程的一个独立部分,而一个线程将被指定为一个进程的基本线程。多线程应用部分主要对WinCE环境下的多线程机制的实现、原理与应用进行了研究。消息机制中主要研究了状态机,即事件—对—状态图,以及消息循环机制的实现。事件—对—状态图的显著优点是便于对一些全局变量进行一致性审查。另外,还可以在事件—对—状态图之外给这种变量必要的归纳性的解释文字,以利于对这种变量语义的全局性理解。事件—对—状态图将封装在各对象中的事件处理函数按照状态进行了规范化的表达。对于Sqlite数据库的研究着重于其在应用过程中的实现。Sqlite数据库支持ACID事务,不仅保证了数据的完整性,同事也提高运行速度。它提供了对SQL92的大多数功能的支持:支持多表查询和索引、事务、视图、触发器,以及支持嵌套SQL。由于是嵌入式系统,对数据库的容量有很高的要求。而Sqlite是专门为嵌入式系统开发的数据库。本身并不需要网络配置,只要能够提供基本的文件操作,就能使用Sqlite。并且Sqlite的配置十分简单,基本不暂用内存。本文从数据库的5个基本操作来说明如何使用Sqlite实现数据库。从手机下载的电话本数据以vCard格式传输,Address Book接收到数据之后先进行暂存,等全部传输完以后再通过循环提取每个BEGIN:VCARD和END:VCARD之间的数据,组成电话本记录存入sqLite数据库。对vCard的研究着重于2点:PBAP通信的层次结构以及对vCard信息解析的实现。关于LOG输出的研究重点是如何定义LOG信息的优先级别和输出LOG内容的格式,方便调试时的错误定位。然后通过集成测试对系统的功能以及性能进行了测试验证,并且通过Xchart对测试结果的数据进行了分析,验证了系统的正确性和稳定性。最后,就系统的研究内容作了总结并且就系统的不足之处提出了后续的研究方向。