发明内容
本发明的目的在于提供一种解决车载导航仪导航板与地图软件兼容的方法和系统,旨在解决现有的绝大多数公司车载导航仪的导航板与地图软件相互之间不具兼容性的问题。
本发明的技术方案如下:
一种使车载导航仪导航板与地图软件兼容的系统,其中,包括依次连接的车载导航仪、通用型DLL库和地图模块,所述车载导航仪中有导航板,所述通用型DLL库为车载导航仪与地图模块间无缝的连接提供支持。
所述的使车载导航仪导航板与地图软件兼容的系统,其中,通用型DLL库与地图模块设置在同一个的TF卡里。
所述的使车载导航仪导航板与地图软件兼容的系统,其中,还设置了一个引导模块,所述引导模块用于在车载导航仪的导航板在打开地图模块的同时把DLL加载到系统里。
一种使车载导航仪导航板与地图软件兼容的方法,其包括以下步骤:
步骤S1:启动车机UI程序;
步骤S2:车机UI程序会先打开引导程序;
步骤S3:引导程序打开地图软件的可执行文件;
步骤S4:地图软件检测车载导航仪的对应DLL;
步骤S5:引导程序动态加载所对应的DLL,并调用DLL中的标准公共接口函数。
所述的使车载导航仪导航板与地图软件兼容的方法,其中,通过引导程序启动地图软件的具体方法为:先把原车的地图软件的可执行文件名替换成另外一个名字,然后把引导程序的执行文件名改成与原地图软件可执行文件的文件名一致,当客户点击UI程序的导航按钮,车机UI程序就会先打开引导程序。
所述的使车载导航仪导航板与地图软件兼容的方法,其中,调用DLL中的标准公共接口函数具体包括:地图软件需要使用发声功能时,会调用对应的接口函数请求车载导航仪关闭DVD、MP3和电台停止发声。
所述的使车载导航仪导航板与地图软件兼容的方法,其中,车载导航仪通过DLL向地图软件传递Windows消息,地图软件收到消息后会控制前后台切换。
本发明的有益效果:本发明通过采用封装一组标准公共接口函数,来提供动态加载DLL库(Dynamic-linklibraries,动态链接库)的方法来实现不同地图软件与不同车载导航仪的导航板相互兼容的功能。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。
为了解决当前所存在的问题,本文提出一种采用封装一组标准公共接口函数,来提供动态加载动态链接库的方法。其通用型DLL原理为:通用型DLL库是封装了所有的车载导航仪平台所需要的所有的DLL,作为地图软件与车载导航仪之间通讯的桥梁,以实现不同地图软件与不同车载导航仪的导航板之间的通信。
参见图1,本发明提供的系统包括依次连接的车载导航仪、通用型DLL库和地图模块,所述车载导航仪中有导航板,所述通用型DLL库为车载导航仪与地图模块无缝的连接提供支持。通用型DLL库与地图模块设置在同一个存储器里面的,同时在存储器中还设置了一个引导模块,所述引导模块用于在车载导航仪的导航板在打开地图模块的同时把DLL加载到系统里。所述存储介质可以使TF卡或SD卡等等。
本发明所述的引导模块中设置有引导程序,通过引导程序启动地图软件的具体方法为:先把原车的地图软件的可执行文件名替换成另外一个名字,然后把引导程序的执行文件名改成与原地图软件可执行文件的文件名一致,当客户点击UI程序的导航按钮,车机UI程序就会先打开引导程序。引导程序会完成两个动作一个就是打开地图软件的可执行文件,另外一个就是加载通过地图软件获取到的车载导航仪的对应DLL,在地图软件和导航板之间建立连接。
参见图2,本发明提供的使车载导航仪导航板与地图软件兼容的方法包括以下步骤:
步骤S1:启动车机UI程序;
步骤S2:车机UI程序会先打开引导程序;
步骤S3:引导程序打开地图软件的可执行文件;
步骤S4:地图软件检测车载导航仪的对应DLL;
步骤S5:引导程序动态加载所对应的DLL,并调用DLL中的标准公共接口函数。
地图软件采用查询方式,来检测到车载导航仪的对应DLL,并通过引导程序动态加载所对应的DLL,进而调用DLL中的标准公共接口函数,来实现不同车载导航仪与不同的地图软件兼容的功能。比如地图软件需要使用发声功能时,会调用对应的接口函数请求车载导航仪关闭DVD、MP3等停止发声。
车载导航仪通过DLL向地图软件传递Windows消息,地图软件收到消息后会控制前后台切换。比如车载导航仪要求地图软件实现设置导航音量,请求关闭导航等功能。
共通接口说明,包括:初始化接口、逆初始化接口、获取创建窗口时需要使用的窗口类字符串的接口、获取创建窗口时需要使用的窗口名称的接口、导航向DLL设置导航窗口句柄接口、导航启动通知接口、导航将要结束通知接口、导航结束通知接口。
前后台切换协议接口说明,包括:Windows消息转发接口,导航程序接收到Windows消息时,会调用该接口将消息传递给DLL。某些机型使用Windows消息的方式控制导航程序的前后台切换,对于这些机型,导航程序与中控程序之间的前后台切换就需要在该接口中实现。
还包括请求切换至中控程序接口:导航程序主动请求切换至中控程序时,会调用该接口。例如用户点击导航程序的最小化按钮时。该接口需要将导航程序切换至后台,将中控程序切换至前台。
声音协议接口说明:导航开始发声接口,导航程序开始发声前会调用该接口。在接口内可以请求中控程序的MP3、DVD等停止发声。导航停止发声接口,导航程序发声完成后会调用该接口。在接口内可以请求中控程序的MP3、DVD等继续发声。
其中,还包括回调函数:一些机型的中控程序会要求导航程序切换静音与非静音状态,切换黑夜与白天模式,设置导航音量,请求关闭导航等,为了实现这些功能,导航提供回调函数,供DLL回调使用。导航向DLL设置回调函数接口:导航在调用HBS_Init接口后,调用此接口向DLL设置回调函数。
由于通用性DLL采用标准公共接口函数,并且可以任何车载导航仪公司和地图软件公司采纳公开标准公共接口函数。只要车载导航仪公司和地图软件采用了此标准接口函数来实现DLL。用户不需要考虑车载导航仪所使用哪家的地图软件,车载导航仪的导航版问题,购买任何一家地图软件和任何一家车载导航仪,都可以通过加载DLL解决兼容性问题。这样通用型DLL能够解决不同车载导航仪和地图软件之间兼容问题,可以保证导航程序在车载导航仪上正常运行。
本发明还提供的一键通服务为一个独立的应用程序,该应用程序以一个普通图标的形式停靠在车机屏幕上,这个图标的位置可以随意的放置,可以将手一直触摸在图标上,然后再屏幕上拖动来实现位置的移动。当用户点击一键通服务的图标时,首先会判断地图软件是否开启,如果未开启,则打开地图软件,然后控制手机拨打服务后台。
所述的一键通的图标是一张普通的位图,在WINDOWS中以对话框背景图的形式显示在车机显示屏上。在WINDOWS中只需将该对话框设置为TOPMOST便可以实现保持在屏幕最前端的目的。并且通过写注册表可以实现开机自启动的功能。
因为该图标开机后一直处于最顶层,所以用户可以随时点击该图标,无需打开地图软件就可以拨打服务后台进行导航,真正实现一键通导航。而且该图标具有悬浮特性和移动性,也比较小。所以在车机上的实用性也比较高。
本发明通过采用封装一组标准公共接口函数,来提供动态加载DLL库的方法来实现不同地图软件与不同车载导航仪相互兼容的功能。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。