多接口发动机测控系统数据队列处理方法

文档序号:6247235阅读:142来源:国知局
多接口发动机测控系统数据队列处理方法
【专利摘要】本发明涉及汽车发动机性能测试领域,尤其涉及一种发动机测试数据的处理方法。一种多接口发动机测控系统数据队列处理方法,设置一数据队列用于暂存测试数据,该数据队列由数据接收模块接收测试数据,并通过数据发送模块将测试数据发送到应用模块,测试数据发送完成之后对数据进行删除操作;所述数据接收模块内设置有一临界区,数据接收模块实时接收发动机测控系统中所有数据接口的测试数据,测试数据由临界区中转后插入于数据队列中。本发明存储与删除合并使用一个线程进行操作,利用本发明的方法能满足多接口的发动机测试需求,能够正确统一的处理来自多个接口的测试数据,不但提高了数据发送的效率,还保证了数据发送的可靠性。
【专利说明】多接口发动机测控系统数据队列处理方法

【技术领域】
[0001]本发明涉及汽车发动机性能测试领域,尤其涉及一种发动机测试数据的处理方法。

【背景技术】
[0002]传统的汽车发动机测试系统多为单接口,数据量不大,进行汽车性能测试时需要单独对每一个数据接口进行分别测试,先进汽车测试时往往会要求测试许多接口的各项数据,因此现有的这种单接口顺序测试的方式效率很低,难以满足现在的汽车测试需要。如今汽车发动机测试也往往要求在多端口、高速度、高并发的条件下,这些条件对于发动机测控系统中测试数据的处理、存储等也有着更高的要求,因此需要一种新的对数据队列进行处理的测控方法。


【发明内容】

[0003]本发明所要解决的技术问题是提供一种多接口发动机测控系统数据队列处理方法,该方法通过一个设置了临界区的数据接收模块同时接收发动机测试中多个接口发送到数据队列的数据,来保证多接口条件下数据接收的正确性,相比传统方法,不但提高了数据发送的效率,还保证了数据发送的可靠性。
[0004]本发明是这样实现的:一种多接口发动机测控系统数据队列处理方法,设置一数据队列用于暂存测试数据,该数据队列由数据接收模块接收测试数据,并通过数据发送模块将测试数据发送到应用模块,测试数据发送完成之后对数据进行删除操作;所述数据接收模块内设置有一临界区,数据接收模块实时接收发动机测控系统中所有数据接口的测试数据,测试数据由临界区中转后插入于数据队列中。
[0005]所述数据队列为链表,从链表的头部开始按顺序读取测试数据,并进行发送和删除;新的测试数据插入在链表的尾部。
[0006]所述的应用模块包括选自于测试控制软件、数据采集软件界面、测试数据存储模块中的一种或任意多种。
[0007]每一个应用模块由一个独立线程进行数据发送。
[0008]所述数据队列中设置有测试控制指针、界面指针和存储删除指针,其中测试控制指针负责将数据发送到测试控制软件,界面指针负责将数据发送到数据采集软件界面,存储删除指针负责将数据发送到测试数据存储模块并删除数据;
首先,三个指针开始时均指向链表的头部节点;
然后,三个指针按顺序沿链表逐个节点移动进行测试数据的读取发送和删除,在指针移动过程中,保证所述存储删除指针始终在落后于测试控制指针和界面指针时才会进行发送和删除操作;
最后,三个指针均会指向队列的尾部节点,此时测试数据的处理任务完毕。
[0009]本发明多接口发动机测控系统数据队列处理方法通过一个设置了临界区的数据接收模块同时接收发动机测试中多个接口发送到数据队列的数据,来保证多接口条件下数据接收的正确性;数据发送模块则将数据根据发送任务分成三个线程,其中存储与删除合并使用一个线程进行操作,利用本发明的方法能满足多接口的发动机测试需求,能够正确统一的处理来自多个接口的测试数据,并根据各应用模块不同的处理性能制定发送策略,将测试数据分布式的发送到应用模块,相比传统方法,不但提高了数据发送的效率,还保证了数据发送的可靠性。

【专利附图】

【附图说明】
[0010]图1为本发明多接口发动机测控系统数据队列处理方法的应用场景示意图;
图2为本发明多接口发动机测控系统数据队列处理方法中的数据接收模块工作流程框图;
图3为本发明中的数据发送至测试控制软件、数据采集软件界面的流程框图;
图4为本发明中的数据发送至数据存储模块的的流程框图;
图5为本发明中的数据队列的数据发送流程示意图。

【具体实施方式】
[0011]下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明表述的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
[0012]实施例1
如图1、2所示,一种多接口发动机测控系统数据队列处理方法,设置一数据队列用于暂存测试数据,该数据队列由数据接收模块接收测试数据,并通过数据发送模块将测试数据发送到应用模块,测试数据发送完成之后对数据进行删除操作;所述数据接收模块内设置有一临界区,数据接收模块实时接收发动机测控系统中所有数据接口的测试数据,测试数据由临界区中转后插入于数据队列中;数据接收模块用于从不同的端口获取测试数据,因为发动机测控系统中有多个数据接口,这些数据接口同时将数据插入数据队列的末段会产生数据之间的相互迭代覆盖,因此本方法中采取临界区的方式使同一时刻只能有一个接口进行数据插入的操作,此时其他接口的数据处于等待的状态,无法进行数据插入操作。通过这种方法,在保证了数据接收效率的同时,也确保了数据接收的正确性,防止各数据接口之间的数据覆盖造成部分数据的丢失。
[0013]在发动机测控系统中数据队列主要进行数据的插入以及删除操作,不涉及数据的检索、查询等操作,鉴于链表在执行数据插入、删除操作时的较好的性能,在本方法中所述数据队列为链表,从链表的头部开始按顺序读取测试数据,并进行发送和删除;新的测试数据插入在链表的尾部。
[0014]本发明可以进一步描述为,所述数据队列中设置有测试控制指针p_l、界面指针p_2和存储删除指针p_3 ;对应的计数值为测试控制指针计数值count_l,界面指针计数值count_2,存储删除指针计数值count_3 ;
首先,三个指针开始时均指向链表的头部节点; 然后,为了保证测试控制的实时性,发动机的测试控制软件对于数据的延时有较高的要求,因此这一部分的发送过程对应的测试控制指针需要保证较高的效率;此外,数据采集软件的界面所显示的数据对应的界面指针也需要有一定的实时性,而数据存储模块并没有对数据的实时性有较高要求;因此,在数据发送的过程中,为了保证效率,三个不同部分的发送任务由三个独立的线程完成。向测试控制软件以及数据采集软件界面发送数据的线程所进行的操作相似,在确认数据队列中有数据之后,就从队列头部开始读取数据并发送,并一直进行到队列末段。因为存储删除指针所需要消耗的时间是相对较长的,所以发送到测试数据存储模块的线程则要确保数据已经发到了测试控制软件、数据采集软件界面之后才进行数据的存储以及之后的数据删除操作。通过这种方法,满足了测试控制软件、数据采集软件界面对于实时性相对较高的要求,在实际运行中,始终确保了三个指针按顺序沿链表逐个节点移动进行测试数据的读取发送和删除,在指针移动过程中,保证所述存储删除指针始终在落后于测试控制指针和界面指针时才会进行发送和删除操作;
最后,三个指针均会指向队列的尾部节点,此时测试数据的处理任务完毕。
[0015]在本发明中,所述的应用模块包括选自于测试控制软件、数据采集软件界面、测试数据存储模块中的一种或任意多种,利用数据发送模块向发动机测控系统中的测试控制软件、数据采集软件界面以及测试数据存储模块三部分进行数据的发送,数据发送完成之后则进行删除;在数据发送的过程中,为了保证效率,三个不同部分的发送任务由三个独立的线程完成,每一个应用模块由一个独立线程进行数据发送。
[0016]一种多接口发动机测控系统数据队列维护方法是利用链表作为数据队列来进行数据的插入、发送以及删除操作。数据接收时,数据队列会收到来自多个接口的数据,因此采用了临界区来使各接口之间的互斥,以此保证数据接收的准确性,防止各数据接口之间的数据覆盖造成部分数据的丢失,同时效率也得到保证。在数据发送时,需要向三个部分进行数据发送,因此由三个独立的线程单独的完成各部分的发送任务,在确认数据发送完成之后进行数据的删除。
[0017]在本方法在实际应用时支持多达32个测试模块,即32个数据接口同时进行数据的接收操作。接收数据之后,数据队列向三个应用模块分别发送数据,确认发送完成之后删除已发送的数据;各数据接口在获得数据之后都需要将数据发送至数据队列作统一的数据处理。首先,这些接口都需要将获取的数据封装到链表中的结点的形式,并逐一进入临界区完成数据结点插入链表的操作;一次只能有一个接口的数据结点进入临界区进行插入链表的操作,以此保证数据接收的正确性。
[0018]如附图3所示,为数据队列维护方法中数据发送模块中的数据发送至测试控制软件、数据采集软件界面的两个单独的线程的软件流程图。这两个线程都是在开始时判断队列中是否有数据,若有数据,则将对应的指针,即测试控制指针P_1或界面指针p_2指向该节点数据,读取并发送之后向链表中后一结点后移一位,相应的计数加1,并重复以上的操作直至读取完队列中所有数据后到达队列的末段。
[0019]如附图4所示,为数据队列维护方法中数据发送模块中的数据发送至数据存储模块的线程的软件流程图,因为数据存储模块相比于其他两部分的数据发送是最慢的,因此为了不影响其他两个线程的效率,同时确保数据的正确发送,将数据删除的任务也在这一部分完成,在发送数据之前需要判断count_3是否小于count_l及count_2,以此来保证删除数据之前三部分都已经收到该数据。
[0020]如附图5所示,为数据队列维护方法中数据发送策略示意图。图中三个线程分别拥有指向队列中数据的指针p_l、p_2、p_3,如图a,它们开始时均指向队列的头节点。之后p_l、p_2向后移动进行数据的读取发送,而为了确保数据已经由p_l指针进行读取、p_2指针进行发送至相应模块,如图b所示,负责将数据发送至存储模块并进行数据删除的p_3指针会一直在指针P_1、P_2的后方;如图c所示,当p_3指针与p_l或p_2指针处于同一位置时,P_3指针会暂时等待,不会进行数据的存储和删除操作;最后,如图d所示,三个指针均会指向队列的末段,此时数据的发送任务完毕。通过这一数据发送策略,能够在保证数据发送效率,满足测试控制软件对于实时性的较高的要求的同时,确保了数据能够正确的发送至测试控制软件、数据采集软件界面以及测试数据存储模块这三部分。
【权利要求】
1.一种多接口发动机测控系统数据队列处理方法,其特征是:设置一数据队列用于暂存测试数据,该数据队列由数据接收模块接收测试数据,并通过数据发送模块将测试数据发送到应用模块,测试数据发送完成之后对数据进行删除操作;所述数据接收模块内设置有一临界区,数据接收模块实时接收发动机测控系统中所有数据接口的测试数据,测试数据由临界区中转后插入于数据队列中。
2.如权利要求1所述的多接口发动机测控系统数据队列处理方法,其特征是:所述数据队列为链表,从链表的头部开始按顺序读取测试数据,并进行发送和删除;新的测试数据插入在链表的尾部。
3.如权利要求1或2所述的多接口发动机测控系统数据队列处理方法,其特征是:所述的应用模块包括选自于测试控制软件、数据采集软件界面、测试数据存储模块中的一种或任意多种。
4.如权利要求3所述的多接口发动机测控系统数据队列处理方法,其特征是:每一个应用模块由一个独立线程进行数据发送。
5.如权利要求3所述的多接口发动机测控系统数据队列处理方法,其特征是:所述数据队列中设置有测试控制指针、界面指针和存储删除指针,其中测试控制指针负责将数据发送到测试控制软件,界面指针负责将数据发送到数据采集软件界面,存储删除指针负责将数据发送到测试数据存储模块并删除数据; 首先,三个指针开始时均指向链表的头部节点; 然后,三个指针按顺序沿链表逐个节点移动进行测试数据的读取发送和删除,在指针移动过程中,保证所述存储删除指针始终在落后于测试控制指针和界面指针时才会进行发送和删除操作; 最后,三个指针均会指向队列的尾部节点,此时测试数据的处理任务完毕。
【文档编号】G01M15/00GK104458261SQ201410619902
【公开日】2015年3月25日 申请日期:2014年11月6日 优先权日:2014年11月6日
【发明者】汪飙, 邱宁生, 易建军, 冯昊哲, 陈云清, 桂亚炜, 耿旭, 王陆娇, 万雄伟 申请人:上海汽车集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1