一种车辆行驶记录仪管理数据的方法

文档序号:6626120阅读:229来源:国知局
专利名称:一种车辆行驶记录仪管理数据的方法
技术领域
本发明涉及一种管理数据的方法,尤其是一种在车辆行驶记录仪数据管理软件中管理数据的方法。
背景技术
车辆行驶记录仪(Vehicle Traveling Data Recorder;VDR)是一种能够对车辆行驶速度、时间、里程以及其他状态信息进行记录的电子设备。VDR系统的组成如图1所示。图中包含一个通常被安装在车辆上的上述VDR设备、一个读卡器、一系列与读卡器配套使用的卡(例如车间卡、驾驶员卡、公司卡)以及一台计算机(Computer)。
车辆行驶记录仪数据管理软件(Vehicle Traveling Data Recorder Data Management System,VDRDMS)是根据车辆行驶记录仪国家标准GB/T 19056-2003所开发的一个Windows环境下的应用软件,它运行在上述计算机内。VDRDMS通过串口(COM)或USB口与VDR设备进行通信交换数据,还可以通过USB口与驾驶员卡或公司卡进行通信交换数据,并且以友好的图形化界面向用户提供数据通信、数据显示(列表及图线)、数据检索、数据统计、数据打印及历史数据分析管理等各项功能。
现有的车辆行驶记录仪数据管理软件(VDRDAM)通常包含下列一系列构件■智能卡构件(Smart Card Component)负责与读卡器和智能卡通信的功能实体。
■VDR通信构件(VDR Communication Component)负责为不同的构件之间提供通信的功能实体。
■数据库构件(Database Component)存储VDR系统所有的历史纪录、车间活动以及驾驶员信息。
■用户界面构件(User Interface Component)终端用户与VDR系统进行交互的构件。
现有技术中存在的问题在于首先,上述构件之间由于存在众多的接口和连线,构成了一个复杂的网状连接,不利于后期的维护以及发现问题时的定位。其次,构件之间的依赖性强,进一步增大系统的复杂度。第三,VDR系统的可扩展性(Scalability)差。
西门子(中国)有限公司的一份专利申请文件中针对上述问题提出了解决方案,该方案引入了中介构件(Mediator Component),以该中介构件为中心连接其他构件,从而组成一个星型连接结构,成功地解决了上述问题。
不过,在现有的车辆行驶记录仪数据管理软件中和采用了中介构件的车辆行驶记录仪数据管理软件中,所有构件的对象都使用被动对象(Passive Object)。所谓被动对象,是指自己本身不具备线程控制的对象,它的操作是在主动对象内的线程的控制下执行。使用被动对象的上述VDR系统还存在着下列问题第一,系统响应速度慢。例如,如果终端用户想通过用户界面从VDR系统中读取过去360小时内的速度数据,由于360小时的数据约为20k字节,VDR系统读取20k字节的数据大概要花费2分钟。再例如,如果终端用户要通过卡从VDR系统中读取过去60小时内的速度数据,大概要花费20秒。在读取大量数据时,这样的响应速度无法满足终端用户的需求。
第二,系统存在单点锁定(Single-Point Blocking)。采用被动对象的VDR系统中,终端用户在一个时间段内只能进行一项操作。由于系统的响应速度慢,终端用户通常希望在等待系统响应操作的时间段内系统能够实现其它功能、进行其他操作。如果系统中所有的构件都是被动对象,则无法在等待一项操作结果的同时进行其他操作。
第三,如果VDR系统中的构件的状态发生变化,由于在VDRDAM软件系统中构件均应用被动对象,其他构件无法及时得到系统中的构件发生变化的信息。例如,将一个VDR设备刚刚换作另一个VDR设备后,如果此时终端用户通过用户界面点击一个按钮请求上载数据(上载是将数据从VDR设备中读取到PC中),则用户界面构件发出一个读取数据的命令,而用户界面构件并不知道原VDR设备已经换作新的VDR设备,因此仍然向原来的VDR设备进行读取数据操作。由于原来的VDR设备已经去掉,因此系统会通知用户界面构件该读取数据的操作无法进行。此时用户界面必须更新其状态,然后终端用户再一次进行刚才的操作,才能读取新的VDR设备中的数据。也就是说,在更换了VDR设备之后,每次都要点击两次才能从新的VDR设备中读取数据,信息更新不及时为用户的操作带来了不便。

发明内容本发明的主要目的在于提供一种车辆行驶记录仪管理数据的方法,能够提高该VDR系统的系统响应速度,同时在等待系统响应操作的时间段内系统能够进行其他操作,并且当系统中的构件的状态发生变化时,其他构件能够及时得知系统中的该构件发生变化。
为达到上述目的,本发明的技术方案具体是这样实现的一种车辆行驶记录仪管理数据的方法,首先,在车辆行驶记录仪数据管理软件中设置一个中介构件,利用上述中介构件将智能卡构件、车辆行驶记录仪通信构件、数据库构件、用户界面构件进行连接,上述任何一个构件通过上述中介构件与上述其它构件进行通信;其次,将上述中介构件、上述智能卡构件、上述车辆行驶记录仪通信构件、上述数据库构件、上述用户界面构件的属性设置为主动属性。根据本发明的一个方面,为上述每一个构件设置一个进程、一组状态变量、一个消息队列,上述每一个构件的进程对该构件的状态变量进行维护,上述任何一个构件的任何一个状态变量发生变化时,该构件发一个消息通知上述中介构件,该消息被放到上述中介构件的消息队列中,上述中介构件再发消息通知与上述构件有关的其它构件。
根据本发明的另一个方面,为上述车辆行驶记录仪通信构件设置一组缓冲区,用于存储来自车辆行驶记录仪设备的数据。对于任何其他存在速度问题的构件,也需要一组缓冲区。典型的情况下,如果上述用户界面构件位于远程,为该用户界面构件设置一组缓冲区,用于存储上述用户界面构件所要求的数据。
根据本发明的再一个方面,除上述中介构件以外,上述其它构件的进程响应来自该构件消息队列中的消息,该构件消息队列中的消息来自上述中介构件或者来自该构件本身。来自上述中介构件的消息比来自上述构件本身的消息具有高优先级。
根据本发明的又一个方面,在车辆行驶记录仪通信构件与车辆行驶记录仪设备之间,或者在上述智能卡构件与读卡器之间定义一个通信协议。
根据本发明的另一个方面,在通信协议中设置至少一个切片命令,上述切片命令包括一个数据开始标识和一个数据长度标识。上述切片命令为车辆行驶记录仪上载速度命令。或者,在上述通信协议中至少一个命令的数据块中增加一个头,该头中包含包括一个数据开始标识和一个数据长度标识。上述通信协议中的命令为车辆行驶记录仪上载速度命令。
根据本发明的再一个方面,数据开始标识和数据长度标识分别为2个字节。
由上述方案可以看出,本发明的关键在于将车辆行驶记录仪数据管理软件的中介构件、智能卡构件、车辆行驶记录仪通信构件、数据库构件、用户界面构件的属性都设置为主动属性。
可见,本发明所提供的车辆行驶记录仪管理数据的方法具有以下的优点和特点(1)本发明在车辆行驶记录仪数据管理系统中将中介构件、智能卡构件、车辆行驶记录仪通信构件、数据库构件、用户界面构件的属性都设置为主动属性,系统能够主动地读取数据,因此提高了系统的响应速度。
(2)本发明将上述构件的属性设置为主动对象,由于主动对象的方法的调用和执行是分离的,主动对象有自己独立的执行线程,主动对象的方法的调用由其他线程发起,但是方法在自己的线程中执行,因此主动对象方法的调用是非阻塞的,避免了单点锁定的问题。
(3)本发明为具有主动对象的构件设置了消息队列,一个构件的状态发生变化,该构件会通知其他中介构件,中介构件再通知相关的构件,因此其他构件能够及时得知系统中的该构件发生变化。并且由于所有具有主动对象的构件都拥有自己独立的进程,所有其他构件能够在得知该构件发生变化的消息后及时更新各自的状态,且将这种显示给最终用户。


图1是车辆行驶记录仪系统结构示意图。
图2是本发明中车辆行驶记录仪管理数据的方法示意图。
具体实施方式
车辆行驶记录仪数据管理软件VDRDMS是一个Windows环境下的应用软件,根据汽车行驶记录仪国家标准GB/T 19056-2003所开发。本发明的实施例是建立在图2所示的车辆行驶记录仪管理数据的方法示意图基础上。
图2中的外部系统为车辆行驶记录仪VDR、读卡器以及各种卡,如车间卡、驾驶员卡、公司卡等。VDRDMS通过串口(COM RS232端口)或USB口与VDR通信构件进行通信、交换数据,还可以通过USB口与智能卡构件如驾驶员卡或公司卡进行通信、交换数据,并且以友好的图形化界面向用户提供数据通信、数据显示(列表及图线)、数据检索、数据统计、数据打印及历史数据分析管理等各项功能。VDR通信构件和智能卡构件为与设备相关的软件构件。由于本发明在VDRDMS中引入了中介构件,其他构件如VDR通信构件、智能卡构件、数据库构件、用户界面构件都通过中介构件进行通信,因此中介构件起到控制逻辑构件的作用。用户通过用户接口界面在PC机上进行操作。
下面通过实施例对本发明进行说明,但这些实施例决不是限制本发明的范围。
本发明是将活动对象模式应用到车辆行驶记录仪软件系统中。所谓主动对象(Active Object)是相对于被动对象而言,被动对象的方法的调用和执行都是在同一个线程中,被动对象方法的调用是同步的、阻塞的,一般的对象都属于被动对象;主动对象的方法的调用和执行是分离的,主动对象有自己独立的执行线程,主动对象的方法的调用是由其他线程发起的,但是方法是在自己的线程中执行的,主动对象方法的调用是异步的,非阻塞的。
首先论述本发明的第一个实施例将原有的VDR设备换成另一台VDR设备并从新VDR设备中向PC机中上载数据。
根据本发明的车辆行驶记录仪管理数据的方法,在车辆行驶记录仪数据管理软件中设置一个中介构件,上述车辆行驶记录仪数据管理软件中的智能卡构件、车辆行驶记录仪通信构件、数据库构件、用户界面构件分别通过上述中介构件与上述其它构件进行连接。构件有许多属性,例如可移动性、可靠性、可扩展性,根据本发明,将上述中介构件和上述其它构件的属性设置为主动属性。
对于上述车辆行驶记录仪通信构件(VDR通信构件),主动属性的设置包括一个进程、一组状态变量、一组缓冲区、一个消息队列。消息队列意味着构件之间的相互联系是通过消息传递进行。VDR通信构件的进程对其本身的状态变量进行维护,当它的任何一个状态变量发生变化时,VDR通信构件发一个消息通知中介构件,该消息被放到中介构件的消息队列中,中介构件再发一个消息通知用户界面构件。
例如,当原有的VDR设备断开时,VDR通信构件的进程探测到这一变化,于是将VDR通信构件相应的状态更新为“断开”,或者,当接入另一台VDR设备时,VDR通信构件的进程也会探测到这一变化,于是将VDR通信构件相应的状态更新为“连接”。VDR通信构件发送一个消息通知中介构件VDR通信构件的状态为“断开”或者“连接”,该消息被放到中介构件的消息队列中。根据用户需求,由中介构件决定通知哪些相关的构件。此处,与VDR通信构件相关的构件为用户界面构件,因此中介构件发送一个消息通知用户界面构件,该消息被放到用户界面构件的消息队列中。用户界面构件的进程接收到中介构件发来的消息,就更新其自身的状态,体现为将原来可以点击的按钮变为不可点击(VDR通信构件相应的状态更新为“断开”时)或者将原来不可点击的按钮变为可以点击(VDR通信构件相应的状态更新为“连接”时)。
将VDR设备与PC机通过串口相连后,由于VDR通信构件的属性被设置为主动属性,因此即使没有终端用户的指令,也会从VDR设备主动向PC机上载数据。被上载的数据首先存储在VDR通信构件为数据所设置的缓冲区内,当中介构件请求该数据时(例如终端用户请求察看该数据时),VDR通信构件将数据交给中介构件,中介构件再将数据交给相应的用户界面构件。在VDR通信构件缓冲区内的数据则继续保存,相当于在本地对传给中介构件的数据保留了一份备份。当通过用户界面读取数据时,如果在VDR通信构件的缓冲区内没有当前需要的数据,则VDR通信构件向VDR设备读取数据,并将其存储在其缓冲区内,再通过中介构件将数据结果返回给用户界面;如果在VDR通信构件的缓冲区内有当前需要的数据,则VDR通信构件就可以迅速的将缓冲区内的数据通过中介构件返回给用户界面,而无需再次向VDR设备读取该数据,能够大大节省读取数据的时间。
如果VDR通信构件的状态发生变化(例如“断开”或者“连接”),则VDR通信构件缓冲区内的数据被清空。
VDR通信构件的进程要对其自身消息队列中的消息进行响应。该消息即可能来自中介构件(称为外部消息),也可能来自VDR通信构件本身(称为内部消息)。例如,中介构件可以通过一条消息请求读取360小时内的速度数据,VDR通信构件也可以通过一条消息请求读取所有的登录信息(Logging Session)数据。对于来自VDR通信构件本身的消息,其优先级要低于来自中介构件的消息。
本发明的第二个实施例是从VDR设备中向PC机中上载速度数据的过程中花费的时间。假设VDR通信构件正在上载速度数据,这时VDR通信构件收到从中介构件来的消息。上面已经提及,来自中介构件的消息比来自VDR通信构件本身的消息优先级高,因此应该优先执行来自中介构件的消息。
在VDR通信构件与VDR设备之间存在通信协议,这种通信协议与VDR各构件之间的通信协议格式类似,但不完全相同。VDR通信构件与VDR设备之间原有的通信协议中存在一条上载速度命令。根据本发明,在原有的通信协议中增加一个切片的上载速度命令。由于将该上载速度命令设置为切片命令,该切片命令包括一个数据开始标识和一个数据长度标识。或者,在上述通信协议中原有的上载速度命令的数据块中增加一个头,该头中包含包括一个数据开始标识和一个数据长度标识。数据开始标识和数据长度标识分别为2个字节。
由于在上载速度命令中增加一个上载数据开始标识和一个上载数据长度标识,这能够使得VDR通信构件每次上载的数据量较小。假设用P1表示上载数据开始的高位字节,P2表示上载数据开始的低位字节,L1表示上载数据长度的高位字节,L2表示上载数据长度的低位字节。对于一个来自中介构件的外部消息,如果任何上载的数据都不在本地(PC机)的缓冲区中,进程响应消息的时间为Pi;对于该外部消息,如果所有上载的数据都在本地(PC机)的缓冲区中,进程响应消息的时间为Ci,可知Ci<<Pi。
根据上面定义可知,首先,最好的情况是,如果所有上载的数据都在本地(PC机)的缓冲区中(例如都在VDR通信构件的缓冲区中),进程响应外部消息的时间为Ci。
其次,如果VDR通信构件为空闲(例如VDR通信构件进程刚刚响应完一个外部消息,正在检查是否有新的消息),此时VDR通信构件收到一个来自中介构件的外部消息,则在所有数据都不在本地缓冲区的情况下,进程响应外部消息的时间为Pi。
再次,如果VDR通信构件首先收到一个来自其自身的内部消息,那么VDR通信构件的进程要响应该消息,即从VDR设备中上载数据到VDR通信构件的缓冲区中。如果在响应该内部消息的过程中又收到一个来自中介构件的外部消息,尽管来自中介构件的消息比来自VDR通信构件本身的消息优先级高,但由于来自响应VDR通信构件本身的消息是一个原子操作,这种操作在执行过程中不可中断,因此必须等到VDR通信构件的进程对该消息响应完毕后才能响应来自中介构件的消息。假设从VDR通信构件收到该中介构件消息开始到VDR通信构件进程响应该消息的时间间隔为BT。在最坏的情况下,在所有数据都不在本地缓冲区的情况下,对于该外部消息最大的响应时间是BT+Pi。
一般来说,在将VDR设备与PC机进行连接之后,由于VDR通信构件会不断主动的将数据上载到本地PC机中并存储在本地缓冲区,随着越来越多的数据被上载到本地PC机并存储在本地缓冲区中,系统对于消息的响应时间会越来越短。也就是说,在将VDR设备与PC机进行连接以后的初期有时进程的响应时间为BT+Pi,但随着连接时间越长,进程的响应时间为BT+Pi的次数越来越少,而为Ci的次数越来越多,等到全部VDR设备的数据上载完毕,进程的响应时间都为Ci。
由于将数据分片上载,因此VDR通信构件响应一个内部消息的时间不长,即BT的值很小,因此,即使在上载过程中收到来自中介构件的消息,只需等待很短的时间就可以对来自中介构件的消息进行响应,因此大大节省了等待时间。
以上通过实施例对本发明进行了描述,本领域的普通技术人员可以在不脱离本发明精神下作出一些变动,但这些变动均在所附的权利要求的范围内。
权利要求
1.一种车辆行驶记录仪管理数据的方法,其特征在于首先,在车辆行驶记录仪数据管理软件中设置一个中介构件,利用上述中介构件将智能卡构件、车辆行驶记录仪通信构件、数据库构件、用户界面构件进行连接,上述任何一个构件通过上述中介构件与上述其它构件进行通信;其次,将上述中介构件、上述智能卡构件、上述车辆行驶记录仪通信构件、上述数据库构件、上述用户界面构件的属性设置为主动属性。
2.根据权利要求1所述的车辆行驶记录仪管理数据的方法,其特征在于为上述每一个构件设置一个进程、一组状态变量、一个消息队列,上述每一个构件的进程对该构件的状态变量进行维护,上述任何一个构件的任何一个状态变量发生变化时,该构件发一个消息通知上述中介构件,该消息被放到上述中介构件的消息队列中,上述中介构件再发消息通知与上述构件有关的其它构件。
3.根据权利要求2所述的车辆行驶记录仪管理数据的方法,其特征在于为上述车辆行驶记录仪通信构件设置一组缓冲区,用于存储来自车辆行驶记录仪设备的数据。
4.根据权利要求2所述的车辆行驶记录仪管理数据的方法,其特征在于如果上述用户界面构件位于远程,为该用户界面构件设置一组缓冲区,用于存储上述用户界面构件所要求的数据。
5.根据权利要求2至4任一所述的车辆行驶记录仪管理数据的方法,其特征在于除上述中介构件以外,上述其它构件的进程响应来自该构件消息队列中的消息,该构件消息队列中的消息来自上述中介构件或者来自该构件本身。
6.根据权利要求5所述的车辆行驶记录仪管理数据的方法,其特征在于来自上述中介构件的消息比来自上述构件本身的消息具有高优先级。
7.根据权利要求1所述的车辆行驶记录仪管理数据的方法,其特征在于在上述车辆行驶记录仪通信构件与车辆行驶记录仪设备之间,或者在上述智能卡构件与读卡器之间定义一个通信协议。
8.根据权利要求7所述的车辆行驶记录仪管理数据的方法,其特征在于在上述通信协议中设置至少一个切片命令,上述切片命令包括一个数据开始标识和一个数据长度标识。
9.根据权利要求8所述的车辆行驶记录仪管理数据的方法,其特征在于上述切片命令为车辆行驶记录仪上载速度命令。
10.根据权利要求7所述的车辆行驶记录仪管理数据的方法,其特征在于在上述通信协议中至少一个命令的数据块中增加一个头,该头中包含包括一个数据开始标识和一个数据长度标识。
11.根据权利要求10所述的车辆行驶记录仪管理数据的方法,其特征在于上述通信协议中的命令为车辆行驶记录仪上载速度命令。
12.根据权利要求8或10所述的车辆行驶记录仪管理数据的方法,其特征在于上述数据开始标识和数据长度标识分别为2个字节。
全文摘要
本发明提出一种车辆行驶记录仪管理数据的方法,首先,在车辆行驶记录仪数据管理软件中设置一个中介构件,利用上述中介构件将智能卡构件、车辆行驶记录仪通信构件、数据库构件、用户界面构件进行连接,任何一个构件通过中介构件与其它构件进行通信;其次,将中介构件和所有其它构件的属性设置为主动属性。每一个构件主动属性的设置包括一个进程、一组状态变量、一个消息队列,一组缓冲区。本发明还在上载数据命令中增加上载数据开始标识和上载数据长度标识。采用本发明的方法,提高了VDR系统的响应速度,能够避免单点锁定的问题,并且能够在一个构件的状态发生变化时及时通知其它构件。
文档编号G06F13/42GK1889082SQ20051008021
公开日2007年1月3日 申请日期2005年6月30日 优先权日2005年6月30日
发明者唐宝 申请人:西门子(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1