CN117312158A - 诊断例程学习方法、装置、系统、电子设备及存储介质 - Google Patents

诊断例程学习方法、装置、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN117312158A
CN117312158A CN202311272928.0A CN202311272928A CN117312158A CN 117312158 A CN117312158 A CN 117312158A CN 202311272928 A CN202311272928 A CN 202311272928A CN 117312158 A CN117312158 A CN 117312158A
Authority
CN
China
Prior art keywords
routine
learning
diagnosis
diagnostic
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311272928.0A
Other languages
English (en)
Inventor
徐瑛
封雨
冯国雨
文曦
刘洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Changan Automobile Co Ltd
Original Assignee
Chongqing Changan Automobile Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing Changan Automobile Co Ltd filed Critical Chongqing Changan Automobile Co Ltd
Priority to CN202311272928.0A priority Critical patent/CN117312158A/zh
Publication of CN117312158A publication Critical patent/CN117312158A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供一种诊断例程学习方法、装置、系统、电子设备及存储介质,该方法通过预设例程接口获取例程学习诊断控制命令,将例程学习诊断控制命令发送至预设例程接口对应的多个诊断例程,触发诊断例程标识对应的诊断例程执行命令类型对应的预设命令,以对当前控制域的至少一个诊断例程进行诊断例程学习,通过对诊断命令服务化抽象为预设例程接口,能够实现软件平台与功能业务逻辑充分隔离,不需要每一个功能模块就在底层设置一个接口,即便由于车型不同、业务逻辑需求不同部署不同SWC模块,软件平台也不需要进行变更,适配性更佳。

Description

诊断例程学习方法、装置、系统、电子设备及存储介质
技术领域
本申请涉及车辆技术领域,具体涉及一种诊断例程学习方法、装置、系统、电子设备及存储介质。
背景技术
当前软件架构下,例程诊断学习逻辑,一般是通过代码在底层实现,诊断仪按照UDS(Unified Diagnostic Services,统一诊断服务)协议,发送对应例程学习诊断控制命令,学习模块解析对应的诊断命令,实现对应系统定义的学习逻辑完成例程学习流程。
在上述方案中,所有学习逻辑基于复杂驱动层实现,不利于平台化及软硬分离的整体软件架构。底层需要为每一个诊断例程配置一个对应的接口,以将底层接收到的相关命令传输到对应的学习模块,使得底层内部的接口众多,适配性不佳。
发明内容
鉴于以上所述现有技术的缺点,本发明提供一种诊断例程学习方法、装置、系统、电子设备及存储介质,以解决上述所有学习逻辑基于复杂驱动层实现,不利于平台化及软硬分离的整体软件架构,底层需要为每一个诊断例程配置一个对应的接口,以将底层接收到的相关命令传输到对应的学习模块,使得底层内部的接口众多,适配性不佳的技术问题。
本发明提供的一种诊断例程学习方法,所述诊断例程学习方法包括:通过预设例程接口获取例程学习诊断控制命令,所述例程学习诊断控制命令包括诊断例程标识和命令类型,所述预设例程接口用于接收针对当前控制域全部的诊断例程的例程学习诊断控制命令,所述诊断例程标识用于区分不同的诊断例程;将所述例程学习诊断控制命令发送至所述预设例程接口对应的多个诊断例程,触发所述诊断例程标识对应的所述诊断例程执行所述命令类型对应的预设命令,以对所述当前控制域的至少一个诊断例程进行诊断例程学习。
于本发明一实施例中,通过预设例程接口获取例程学习诊断控制命令,包括:通过所述预设例程接口接收初始诊断命令,所述初始诊断命令包括目标例程标识和初始诊断类型;将所述目标例程标识与多个预设例程标识匹配,得到目标例程标识,将所述目标例程标识作为所述诊断例程标识,并统计接收到具有所述目标例程标识的初始诊断命令的命令出现次数,以通过所述命令出现次数区分不同的初始诊断命令;根据所述初始诊断类型确定所述命令类型;基于所述诊断例程标识、所述命令出现次数和所述命令类型生成所述例程学习诊断控制命令。
于本发明一实施例中,触发所述诊断例程标识对应的所述诊断例程执行所述命令类型对应的预设命令,包括:当前控制域的每一诊断例程监听所述例程学习诊断控制命令;若所述诊断例程的预设例程标识为所述诊断例程标识,触发所述诊断例程执行所述命令类型对应的预设命令,所述诊断例程的数量为一个或多个。
于本发明一实施例中,触发所述诊断例程执行所述命令类型对应的预设命令,包括以下任意之一:若所述命令类型为开始例程,触发所述诊断例程执行学习动作,以及在学习过程中将所述诊断例程的学习状态值写入学习状态,若存在至少两个学习状态值,将生成时间最晚的学习状态值写入所述学习状态;若所述命令类型为获取例程结果,获取所述诊断例程的当前的学习状态值,并将所述当前的学习状态值写入所述学习状态;若所述命令类型为停止例程,触发所述诊断例程停止执行学习动作。
于本发明一实施例中,将所述例程学习诊断控制命令发送至所述预设例程接口对应的多个诊断例程之后,所述方法还包括:若一诊断例程标识对应的所述诊断例程接收到多个例程学习诊断控制命令,根据预设命令优先级规则确定每一个例程学习诊断控制命令的当前优先级;如果所述诊断例程尚未执行学习动作,控制所述诊断例程执行当前优先级最高的一个例程学习诊断控制命令;如果所述诊断例程正在执行学习动作,根据预设命令优先级规则确定每一个例程学习诊断控制命令的当前优先级,将当前优先级最高的一个例程学习诊断控制命令作为第一学习诊断控制命令,将所述诊断例程正在执行学习动作的例程学习诊断控制命令作为第二学习诊断控制命令,根据预设命令优先级规则确定第二学习诊断控制命令的本地优先级,若最高的当前优先级大于所述本地优先级,控制所述诊断例程执行所述第一学习诊断控制命令对应的学习动作,若最高的当前优先级小于或等于所述本地优先级,控制所述诊断例程执行所述第二学习诊断控制命令对应的学习动作。
于本发明一实施例中,所述诊断例程包括座椅调节位置学习例程、方向盘调节位置学习例程、旋转机构位置学习例程中至少之一。
本发明实施例还提供了一种诊断例程学习装置,所述诊断例程学习装置包括:预设例程接口,用于获取例程学习诊断控制命令,所述例程学习诊断控制命令包括诊断例程标识和命令类型,所述预设例程接口用于接收针对当前控制域全部的诊断例程的例程学习诊断控制命令,所述诊断例程标识用于区分不同的诊断例程;发送模块,用于将所述例程学习诊断控制命令发送至所述预设例程接口对应的多个诊断例程,触发所述诊断例程标识对应的所述诊断例程执行所述命令类型对应的预设命令,以对所述当前控制域的至少一个诊断例程进行诊断例程学习。
本发明实施例还提供了一种诊断例程学习系统,所述诊断例程学习系统包括:诊断例程学习装置,用于通过预设例程接口获取例程学习诊断控制命令,所述例程学习诊断控制命令包括诊断例程标识和命令类型,所述预设例程接口用于接收针对当前控制域全部的诊断例程的例程学习诊断控制命令,所述诊断例程标识用于区分不同的诊断例程,以及将所述例程学习诊断控制命令发送至所述预设例程接口对应的多个诊断例程,其中每一控制域设置一个所述预设例程接口;一个或多个控制域,每一控制域中设置有一个或多个诊断例程,诊断例程对所在控制域对应设置的所述预设例程接口发送的例程学习诊断控制命令进行监听,若所述诊断例程的预设例程标识为所述诊断例程标识,触发所述诊断例程执行所述命令类型对应的预设命令,以进行诊断例程学习。
本发明实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述任一项实施例提供的方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行上述任一项实施例提供的方法。
本发明的有益效果:本发明提供了一种诊断例程学习方法、装置、系统、电子设备及存储介质,该方法通过预设例程接口获取例程学习诊断控制命令,将例程学习诊断控制命令发送至预设例程接口对应的多个诊断例程,触发诊断例程标识对应的诊断例程执行命令类型对应的预设命令,以对当前控制域的至少一个诊断例程进行诊断例程学习,通过对诊断命令服务化抽象为预设例程接口,能够实现软件平台与功能业务逻辑充分隔离,不需要每一个功能模块就在底层设置一个接口,即便由于车型不同、业务逻辑需求不同部署不同SWC模块,软件平台也不需要进行变更,适配性更佳。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请的一示例性实施例示出的诊断例程学习方法的流程图;
图2是本申请的一示例性实施例示出的诊断例程学习方法的一种具体的示意图;
图3是本申请的一示例性实施例示出的诊断例程学习方法的另一种具体的示意图;
图4是本申请的一示例性实施例示出的诊断例程学习装置的框图;
图5是本申请的一示例性实施例示出的一种诊断例程学习系统的框图;
图6示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下将参照附图和优选实施例来说明本发明的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
请参阅图1,图1是本申请的一示例性实施例示出的诊断例程学习方法的流程图。如图1所示,在一示例性的实施例中,诊断例程学习方法至少包括步骤S110至步骤S120,详细介绍如下:
步骤S110,通过预设例程接口获取例程学习诊断控制命令。
其中,例程学习诊断控制命令包括诊断例程标识和命令类型,预设例程接口用于接收针对当前控制域全部的诊断例程的例程学习诊断控制命令,诊断例程标识用于区分不同的诊断例程。
诊断例程包括但不限于座椅调节位置学习例程、方向盘调节位置学习例程、旋转机构位置学习例程中至少之一。
预设例程接口设置于底层软件平台与功能业务逻辑之间,通过对诊断命令服务化抽象为预设例程接口,能够实现软件平台与功能业务逻辑充分隔离,不需要每一个功能模块就在底层设置一个接口,即便由于车型不同、业务逻辑需求不同部署不同SWC(SoftwareComponent)模块,软件平台也不需要进行变更。此外,通过该预设例程接口的部署,可以将软件架构逻辑上移。
对于一个控制域可以设置一个预设例程接口,如动力域、底盘域、车身域等均分别设置有一个预设例程接口,每一个之间的预设例程接口不同,相关的例程学习诊断控制命令以及学习状态值等数据不通讯。
对于一个预设例程接口,可以用于接收关于其所在的当前控制域的全部的诊断例程的例程学习诊断控制命令,统一接收,统一发送给到该当前控制域的全部的诊断例程。
在一实施例中,预设例程接口的接口设计如表1所示:
表1
如表1所示,服务名可以设置为Basc_Routine,服务描述可以配置为Routine学习例程基础服务,接口名包括RR_RoutineInfo和Ntf_RoutineInfo,其中RR_RoutineInfo的接口描述为设置Routine学习结果数据,其对应的接口参数包括RoutineIndex、RoutineDataInit、RoutineDataLen、RoutineData[]以及RtnCd_General,Ntf_RoutineInfo的接口描述为通知数据,其接口参数为通知数据。
请参见表2,表2为表1中接口参数的示意:
表2
如表2所示,参数定义为RoutineInfo,参数定义描述为Routine数据信息,其类型为Struct,包括有成员0、1、2、3、4,其中,0对应的值定义为RoutineIndex,其值定义描述为Routine索引,数据类型为uint16,描述为底层进行分配一个索引,1对应的值定义为RoutineDataLen,其值定义描述为数据长度,数据类型为uint16,2对应的值定义为RoutineData[],其值定义描述为有效数据,数据类型为uint8,描述为64字节长度数组,3对应的值定义为RoutineCtrl,其值定义描述为例程控制命令,数据类型为uint16,描述为0x0000:NoRoutine//无例程、0x0001:StartRoutine//开始例程、0x0002:StopRoutine//停止例程、0x0003:RoutineError//诊断例程错误、0x0003:RequestRoutineResult//获取例程结果,4对应的值定义为RoutineCounter,其值定义描述为计数,数据类型为uint16。
例程学习诊断控制命令可以是底层中接收到的诊断仪按照UDS协议发送的初始诊断命令等,底层接收到该初始诊断命令后,会传输给到对应的控制域的预设例程接口。该初始诊断命令也可以是远程诊断指令或底层通过其他方式所得到的诊断命令。
通过诊断例程标识可以确定该例程学习诊断控制命令是发送给哪一个功能模块的诊断例程,一个诊断例程标识可以对应该功能模块中的一个或多个诊断例程。
在一实施例中,例程学习诊断控制命令中还可以包括其他本领域技术人员所设定的信息,并非仅限定为诊断例程标识和命令类型。
在一实施例中,通过预设例程接口获取例程学习诊断控制命令,包括:通过预设例程接口接收初始诊断命令,初始诊断命令包括目标例程标识和初始诊断类型;将目标例程标识与多个预设例程标识匹配,得到目标例程标识,将目标例程标识作为诊断例程标识;根据初始诊断类型确定命令类型;基于诊断例程标识和命令类型生成例程学习诊断控制命令。如上述实施例提到的,该初始诊断命令可以是通过诊断仪发送的,也可以是通过远程诊断接口接收的云端下发的,还可以通过本领域技术人员所知晓的其他方式实现。其中,目标例程标识与预设例程标识可以是相同的,也即预先配置有一个不同功能模块的诊断例程与预设例程标识的映射关系表,云端或诊断仪在发送初始诊断命令时,根据所要下达的命令对象,从表格中选择对应的预设例程标识作为目标例程标识,预设例程接口接收到初始诊断命令时,则可以基于该目标例程标识作为诊断例程标识,广播给预设例程接口所在当前控制域的全部的诊断例程。目标例程标识与预设例程标识也可以是不同的,云端或诊断仪在发送初始诊断命令时,根据所要下达的命令对象,按照原有的功能模块-原有例程标识的映射表选择一个原有例程标识作为目标例程标识,预设例程接口接收到初始诊断命令后,通过对预先设定的原有例程标识与预设例程标识之间的映射表进行查找,得到目标例程标识,则可以基于该目标例程标识作为诊断例程标识,广播给预设例程接口所在当前控制域的全部的诊断例程。
在另一个实施例中,有可能一次会下发针对某一功能模块的多个命令,为区分不同的例程学习诊断控制命令,可以设置一个计数项,也即基于命令出现次数来进行区分。此时,通过预设例程接口获取例程学习诊断控制命令,包括:通过预设例程接口接收初始诊断命令,初始诊断命令包括目标例程标识和初始诊断类型;将目标例程标识与多个预设例程标识匹配,得到目标例程标识,将目标例程标识作为诊断例程标识,并统计接收到具有目标例程标识的初始诊断命令的命令出现次数,以通过命令出现次数区分不同的初始诊断命令;根据初始诊断类型确定命令类型;基于诊断例程标识、命令出现次数和命令类型生成例程学习诊断控制命令。
例如,预设例程接口获取到初始诊断命令后,可以基于上述表1和表3中的预设例程接口的接口设计规则对该初始诊断命令进行封装,得到例程学习诊断控制命令。此时,命令出现次数即为RoutineCounter(计数)、诊断例程标识即为RoutineIndex(Routine索引),命令类型即为RoutineCtrl(例程控制命令),一种示例中,该命令类型包括无例程、开始例程、停止例程、获取例程结果等。
在一实施例中,在通过预设例程接口获取例程学习诊断控制命令之前,该方法还包括:底层根据模块功能的需要,预先维护用于表征预设例程标识与诊断例程之间映射关系的控制器模块的RoutineDID总表。例如,可以将RoutineDID存储于Block的索引表RoutineIndex列表。以通过查询该RoutineDID总表找到当前需要学习的诊断例程对应的诊断例程标识
通过上述方式,能够实现软件平台与功能业务逻辑充分隔离,不需要每一个功能模块就在底层设置一个接口,即便由于车型不同、业务逻辑需求不同部署不同SWC(Software Component)模块,软件平台也不需要进行变更。此外,通过该预设例程接口的部署,可以将软件架构逻辑上移。
步骤S120,将例程学习诊断控制命令发送至预设例程接口对应的多个诊断例程,触发诊断例程标识对应的诊断例程执行命令类型对应的预设命令,以对当前控制域的至少一个诊断例程进行诊断例程学习。
如上述实施例提到的,该当前控制域中全部的诊断例程均在监听该预设例程接口的报文,因此可以实现将例程学习诊断控制命令发送至预设例程接口对应的多个诊断例程。若某一个诊断例程预先配置的预设例程标识就是诊断例程标识,则该诊断例程就是诊断例程标识对应的诊断例程,会触发该诊断例程执行命令类型对应的预设命令。
在一实施例中,触发诊断例程标识对应的诊断例程执行命令类型对应的预设命令,包括:当前控制域的每一诊断例程监听例程学习诊断控制命令;若诊断例程的预设例程标识为诊断例程标识,触发诊断例程执行命令类型对应的预设命令,诊断例程的数量为一个或多个。由于一个功能模块可以对应有一个或多个诊断例程,则可以根据诊断例程标识对应的诊断例程的数量来确定执行命令类型对应的预设命令的诊断例程的数量,比如,针对座椅位置学习可能会有多个座椅的诊断例程,则可以设置一个预设例程标识以表征全部的座椅的诊断例程,针对每一座椅的诊断例程还分别设置有对应的一个预设例程标识,此时就可以根据接收到的例程学习诊断控制命令中的诊断例程标识来决定是对所有的座椅对应的诊断例程进行诊断例程学习,还是对某一个座椅对应的诊断例程进行诊断例程学习。
在一实施例中,触发诊断例程执行命令类型对应的预设命令,包括以下任意之一:
若命令类型为开始例程,触发诊断例程执行学习动作,以及在学习过程中将诊断例程的学习状态值写入学习状态,若存在至少两个学习状态值,将生成时间最晚的学习状态值写入学习状态;
若命令类型为获取例程结果,获取诊断例程的当前的学习状态值,并将当前的学习状态值写入学习状态;
若命令类型为停止例程,触发诊断例程停止执行学习动作。
例如,当诊断例程对应的应用学习服务监听诊断例程执行命令中的诊断例程标识为自身的预设例程标识时,且命令类型为开始例程,则开始执行学习动作,同时还将触发RoutineCounter发生变化,也即预设例程接口中对于该诊断例程标识的诊断例程执行命令的计数值加1。还会将学习状态值写入学习状态中,学习状态定义可以由每个子系统按需自行定义,在此不作限定。
又例如,当诊断例程对应的应用学习服务监听诊断例程执行命令中的诊断例程标识为自身的预设例程标识时,且命令类型为获取例程结果,则可以再执行一次诊断例程的学习状态值的获取,并写入学习状态,进而知晓该诊断例程的当前学习状态。习逻辑过程中学习状态发生变化立即写入新的状态,包括手动学习,软开关学习等学习方式;后来者优先原则写入学习状态,也即,同一时段接收到多个学习状态值,且均未执行写入操作,则直接写入时间上最近接收的学习状态值,或者写入学习状态值的时间戳为最近的。当诊断例程的数量为多个时,且当前是多个诊断例程均执行诊断例程学习,则有任何一个诊断例程的学习结果为没有学习成功,则停止其他尚未完成学习动作的诊断例程的学习动作,并返回不成功的原因。所有诊断例程均学习成功,则返回学习完成。当诊断例程的数量为1个时,若存在多个子例程,任何一个子例程学习不成功,则返回不成功的原因。
又例如,当诊断例程对应的应用学习服务监听诊断例程执行命令中的诊断例程标识为自身的预设例程标识时,且命令类型为停止例程,则会停止该诊断例程的诊断例程学习。
在一实施例中,将例程学习诊断控制命令发送至预设例程接口对应的多个诊断例程之后,该方法还包括:若一诊断例程标识对应的诊断例程接收到多个例程学习诊断控制命令,根据预设命令优先级规则确定每一个例程学习诊断控制命令的当前优先级;如果诊断例程尚未执行学习动作,控制诊断例程执行当前优先级最高的一个例程学习诊断控制命令;如果诊断例程正在执行学习动作,根据预设命令优先级规则确定每一个例程学习诊断控制命令的当前优先级,将当前优先级最高的一个例程学习诊断控制命令作为第一学习诊断控制命令,将诊断例程正在执行学习动作的例程学习诊断控制命令作为第二学习诊断控制命令,根据预设命令优先级规则确定第二学习诊断控制命令的本地优先级,若最高的当前优先级大于本地优先级,控制诊断例程执行第一学习诊断控制命令对应的学习动作,若最高的当前优先级小于或等于本地优先级,控制诊断例程执行第二学习诊断控制命令对应的学习动作。
预设命令优先级规则可以是针对同一个功能模块的多个诊断例程所对应的预设例程标识分别设置预设优先级,仍然一座椅调节为例,对每一个座椅的诊断例程对应的预设例程标识分别设置预设优先级2,对全部座椅的所有的诊断例程对应的1个预设例程标识设置预设优先级1,预设优先级1大于预设优先级2,则若座椅调节功能模块既监听到诊断全部座椅调节的诊断例程的例程学习诊断控制命令a,又监听到针对某一个座椅A的诊断例程的例程学习诊断控制命令b,则例程学习诊断控制命令a的优先级高于例程学习诊断控制命令b,则执行例程学习诊断控制命令a。若当前正在执行例程学习诊断控制命令a的学习动作,则继续该学习动作,若当前正在执行例程学习诊断控制命令b(第二学习诊断控制命令)的学习动作,则停止例程学习诊断控制命令b的学习动作,执行例程学习诊断控制命令a(第一学习诊断控制命令)的学习动作。
针对当前软件架构下,例程诊断学习逻辑,代码在底层实现,诊断仪按照UDS协议,发送对应例程学习诊断控制命令,学习模块解析对应的诊断命令,实现对应系统定义的学习逻辑完成例程学习流程,该方案的局限性是,所有学习逻辑复杂驱动层实现,不利于平台化及软硬分离的整体软件架构。针对上述问题,本发明实施例提供的诊断例程学习方法,通过将诊断接口按照服务接口设定的规则抽象,将诊断命令同硬件层类似抽象,对于不同系统模块的例程学习,比如,座位调节位置学习,方向盘调节位置学习,旋转机构位置学习,将诊断命令抽象,应用层可根据需求,实现不同系统例程学习的逻辑处理。通过本发明实施例提供的方法能够:1)诊断命令服务化抽象,软件平台与功能业务逻辑充分隔离;2)搭载不同车型,根据不同业务逻辑需求,部署不同SWC模块,软件平台不变更;3)软件架构逻辑上移。
结合表1和表2提供的预设例程接口设计,请参见图2,图2是本申请的一示例性实施例示出的诊断例程学习方法的一种具体的示意图,如图2所示,底层根据模块功能的需要,维护控制器模块的RoutineDID总表(RoutineDID存储于Block的索引表RoutineIndex列表);底层通过Basc_Routine服务发送通知Ntf_RoutineInfo,应用学习服务监听控制命令:0x01:StartRoutine//开始例程,同时RoutineCounter发生变化,开始执行学习动作;同时立即将学习状态值通过Set_RoutineInfo写入学习状态,学习状态定义每个子系统按需自行定义;底层模块通过Basc_Routine服务发送通知Ntf_RoutineInfo,应用学习服务监听控制命令03:RequestRoutineResult,应用将学习状态值通过Set_RoutineInfo写入学习状态;学习逻辑过程中学习状态发生变化立即写入新的状态,包括手动学习,软开关学习等学习方式;后来者优先原则写入学习状态;Basc_Routine域内不通讯。图2所示的诊断例程具有两个子例程XX学习服务和XX诊断学习服务,例程接口抽象即为预设例程接口,CDD_EE为暂存模块,用于存储学习状态、反馈的不成功原因等,AutoSar CP诊断接口为现有技术中的接口,将CDD_EE中的学习状态、反馈的不成功原因转存到CDD_DEM,以及将测试用例等存储到CDD_EE。
结合表1和表2提供的预设例程接口设计,请参见图3,图3是本申请的一示例性实施例示出的诊断例程学习方法的另一种具体的示意图,如图3所示,以座椅位置学习为例,预设例程标识RoutineDID预先存储于DID存储基础服务中,Routine学习例程基础服务用于分发通过预设例程接口获取的例程学习诊断控制命令,若诊断例程标识为座椅诊断学习服务的诊断例程的预设例程标识,则触发座椅诊断学习服务进行诊断例程学习,将学习结果通过座椅调节服务传输给到Routine学习例程基础服务和DID存储基础服务中,以供Routine学习例程基础服务和DID存储基础服务进行存储。座椅学习服务的数量可以是一个或多个,以一个为例座椅学习服务1基于本领域技术人员所知晓的方式进行学习,座椅诊断学习服务也基于接收到的命令进行学习,两者将相关的指令下发给到座椅调节服务,以进行相关的座椅调节控制,进而将学习结果(控制结果)传输给到Routine学习例程基础服务和DID存储基础服务。
针对RoutineDID命令(例程学习诊断控制命令)控制策略的一种示例如下:
一、针对不同RoutineDID命令处理策略:
1)针对座椅系统RoutineDID命令控制指令01:StartRoutine有效时,RoutineDID命令RoutineDID命令2,RoutineDID命令3,RoutineDID命令4的任何命令丢弃,也即当存在例程学习诊断控制命令时,该诊断例程中新增的其他与RoutineDID命令控制指令01:StartRoutine命令相同的命令均不再响应,以保证命令执行的准确性和完整性;
2)RoutineDID命令1,RoutineDID命令2,RoutineDID命令3,RoutineDID命令4中任何命令有效,不响应RoutineDID命令1控制指令,也即诊断例程中原本执行有其他命令,则监听到的例程学习诊断控制命令不执行,以保证命令执行的准确性和完整性。
二、控制命令处理策略:
1)控制命令StartRoutine有效,对应控制指令数据有效,控制对应座椅对象完成学习;
2)控制命令StopRoutine有效,停止座椅诊断例程学习;
3)控制命令RequestRoutineResult有效,反馈对应学习状态;
三、同一RoutineDID,控制命令StartRoutine有效,不同的控制数据处理策略:
1)RoutineDID命令控制指令有效,独立控制某个座椅学习,有任何一个轴没成功,返回不成功的原因;座椅所有轴学习成功,返回学习完成;0xBF:自学习全部座椅时;控制所有座椅学习,有任何一个座椅没成功,立即停止座椅学习并返回不成功的原因;所有座椅学习成功,返回学习完成;
2)RoutineDID命令控制指令无效;RoutineDID命令控制指令有效,独立控制某个轴学习,学习没成功,返回不成功的原因;控制学习主驾所有轴指令有效,控制所有轴学习,有任何一个轴没成功,立即停止所有轴学习并返回不成功的原因;所有轴学习成功,返回学习完成。
可见,上述实施例提供的诊断例程学习方法应用在车辆位置控制过程中,通过诊断命令实现位置学习,实现位置记忆调节功能。基于SOA服务化软件架构,可直接应用于座椅位置记忆调节中,位置行程学习,实现座椅位置记忆调节功能的软件设计方法。
请参见图4,图4是本申请的一示例性实施例示出的诊断例程学习装置的框图。如图4所示,该示例性的诊断例程学习装置400包括:预设例程接口401,用于获取例程学习诊断控制命令,例程学习诊断控制命令包括诊断例程标识和命令类型,预设例程接口用于接收针对当前控制域全部的诊断例程的例程学习诊断控制命令,诊断例程标识用于区分不同的诊断例程;发送模块402,用于将例程学习诊断控制命令发送至预设例程接口对应的多个诊断例程,触发诊断例程标识对应的诊断例程执行命令类型对应的预设命令,以对当前控制域的至少一个诊断例程进行诊断例程学习。
在另一示例性的实施例中,预设例程接口被配置为:通过预设例程接口接收初始诊断命令,初始诊断命令包括目标例程标识和初始诊断类型;将目标例程标识与多个预设例程标识匹配,得到目标例程标识,将目标例程标识作为诊断例程标识,并统计接收到具有目标例程标识的初始诊断命令的命令出现次数,以通过命令出现次数区分不同的初始诊断命令;根据初始诊断类型确定命令类型;基于诊断例程标识、命令出现次数和命令类型生成例程学习诊断控制命令。
在另一示例性的实施例中,发送模块被配置为:若命令类型为开始例程,触发诊断例程执行学习动作,以及在学习过程中将诊断例程的学习状态值写入学习状态,若存在至少两个学习状态值,将生成时间最晚的学习状态值写入学习状态;若命令类型为获取例程结果,获取诊断例程的当前的学习状态值,并将当前的学习状态值写入学习状态若命令类型为停止例程,触发诊断例程停止执行学习动作。
在另一示例性的实施例中,该装置还包括学习装置控制模块,被配置为:将例程学习诊断控制命令发送至预设例程接口对应的多个诊断例程之后,若一诊断例程标识对应的诊断例程接收到多个例程学习诊断控制命令,根据预设命令优先级规则确定每一个例程学习诊断控制命令的当前优先级;如果诊断例程尚未执行学习动作,控制诊断例程执行当前优先级最高的一个例程学习诊断控制命令;如果诊断例程正在执行学习动作,根据预设命令优先级规则确定每一个例程学习诊断控制命令的当前优先级,将当前优先级最高的一个例程学习诊断控制命令作为第一学习诊断控制命令,将诊断例程正在执行学习动作的例程学习诊断控制命令作为第二学习诊断控制命令,根据预设命令优先级规则确定第二学习诊断控制命令的本地优先级,若最高的当前优先级大于本地优先级,控制诊断例程执行第一学习诊断控制命令对应的学习动作,若最高的当前优先级小于或等于本地优先级,控制诊断例程执行第二学习诊断控制命令对应的学习动作。
需要说明的是,上述实施例所提供的诊断例程学习装置与上述实施例所提供的诊断例程学习方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的诊断例程学习装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
请参见图5,图5是本申请的一示例性实施例示出的一种诊断例程学习系统的框图。如图5所示,该系统包括图4所示出的诊断例程学习装置400,用于通过预设例程接口获取例程学习诊断控制命令,例程学习诊断控制命令包括诊断例程标识和命令类型,预设例程接口用于接收针对当前控制域全部的诊断例程的例程学习诊断控制命令,诊断例程标识用于区分不同的诊断例程,以及将例程学习诊断控制命令发送至预设例程接口对应的多个诊断例程。其中每一控制域设置一个预设例程接口;一个或多个控制域501,每一控制域中设置有一个或多个诊断例程502,诊断例程对所在控制域对应设置的预设例程接口发送的例程学习诊断控制命令进行监听,若诊断例程的预设例程标识为诊断例程标识,触发诊断例程执行命令类型对应的预设命令,以进行诊断例程学习。
在一实施例中,该系统还包括存储模块,用于存储用于表征预设例程标识与诊断例程之间映射关系的控制器模块的RoutineDID总表、学习状态,以及若返回学习失败后的返回的不成功的原因。
需要说明的是,上述实施例所提供的诊断例程学习系统与上述实施例所提供的诊断例程学习方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的诊断例程学习系统在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的诊断例程学习方法。
图6示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图6示出的电子设备的计算机系统600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(Central Processing Unit,CP U)601,其可以根据存储在只读存储器(Read-Only Memory,ROM)602中的程序或者从储存部分608加载到随机访问存储器(Random Access Memory,RAM)603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RA M 603中,还存储有系统操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(Input/Output,I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分607;包括硬盘等的储存部分608;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入储存部分608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-RO M)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机的处理器执行时,使计算机执行如前所述的方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的方法。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (10)

1.一种诊断例程学习方法,其特征在于,所述诊断例程学习方法包括:
通过预设例程接口获取例程学习诊断控制命令,所述例程学习诊断控制命令包括诊断例程标识和命令类型,所述预设例程接口用于接收针对当前控制域全部的诊断例程的例程学习诊断控制命令,所述诊断例程标识用于区分不同的诊断例程;
将所述例程学习诊断控制命令发送至所述预设例程接口对应的多个诊断例程,触发所述诊断例程标识对应的所述诊断例程执行所述命令类型对应的预设命令,以对所述当前控制域的至少一个诊断例程进行诊断例程学习。
2.如权利要求1所述的诊断例程学习方法,其特征在于,通过预设例程接口获取例程学习诊断控制命令,包括:
通过所述预设例程接口接收初始诊断命令,所述初始诊断命令包括目标例程标识和初始诊断类型;
将所述目标例程标识与多个预设例程标识匹配,得到目标例程标识,将所述目标例程标识作为所述诊断例程标识,并统计接收到具有所述目标例程标识的初始诊断命令的命令出现次数,以通过所述命令出现次数区分不同的初始诊断命令;
根据所述初始诊断类型确定所述命令类型;
基于所述诊断例程标识、所述命令出现次数和所述命令类型生成所述例程学习诊断控制命令。
3.如权利要求1或2任一项所述的诊断例程学习方法,其特征在于,触发所述诊断例程标识对应的所述诊断例程执行所述命令类型对应的预设命令,包括:
当前控制域的每一诊断例程监听所述例程学习诊断控制命令;
若所述诊断例程的预设例程标识为所述诊断例程标识,触发所述诊断例程执行所述命令类型对应的预设命令,所述诊断例程的数量为一个或多个。
4.如权利要求3所述的诊断例程学习方法,其特征在于,触发所述诊断例程执行所述命令类型对应的预设命令,包括以下任意之一:
若所述命令类型为开始例程,触发所述诊断例程执行学习动作,以及在学习过程中将所述诊断例程的学习状态值写入学习状态,若存在至少两个学习状态值,将生成时间最晚的学习状态值写入所述学习状态;
若所述命令类型为获取例程结果,获取所述诊断例程的当前的学习状态值,并将所述当前的学习状态值写入所述学习状态;
若所述命令类型为停止例程,触发所述诊断例程停止执行学习动作。
5.如权利要求1或2任一项所述的诊断例程学习方法,其特征在于,将所述例程学习诊断控制命令发送至所述预设例程接口对应的多个诊断例程之后,所述方法还包括:
若一诊断例程标识对应的所述诊断例程接收到多个例程学习诊断控制命令,根据预设命令优先级规则确定每一个例程学习诊断控制命令的当前优先级;如果所述诊断例程尚未执行学习动作,控制所述诊断例程执行当前优先级最高的一个例程学习诊断控制命令;
如果所述诊断例程正在执行学习动作,根据预设命令优先级规则确定每一个例程学习诊断控制命令的当前优先级,将当前优先级最高的一个例程学习诊断控制命令作为第一学习诊断控制命令,将所述诊断例程正在执行学习动作的例程学习诊断控制命令作为第二学习诊断控制命令,根据预设命令优先级规则确定第二学习诊断控制命令的本地优先级,若最高的当前优先级大于所述本地优先级,控制所述诊断例程执行所述第一学习诊断控制命令对应的学习动作,若最高的当前优先级小于或等于所述本地优先级,控制所述诊断例程执行所述第二学习诊断控制命令对应的学习动作。
6.如权利要求1或2任一项所述的诊断例程学习方法,其特征在于,所述诊断例程包括座椅调节位置学习例程、方向盘调节位置学习例程、旋转机构位置学习例程中至少之一。
7.一种诊断例程学习装置,其特征在于,所述诊断例程学习装置包括:
预设例程接口,用于获取例程学习诊断控制命令,所述例程学习诊断控制命令包括诊断例程标识和命令类型,所述预设例程接口用于接收针对当前控制域全部的诊断例程的例程学习诊断控制命令,所述诊断例程标识用于区分不同的诊断例程;
发送模块,用于将所述例程学习诊断控制命令发送至所述预设例程接口对应的多个诊断例程,触发所述诊断例程标识对应的所述诊断例程执行所述命令类型对应的预设命令,以对所述当前控制域的至少一个诊断例程进行诊断例程学习。
8.一种诊断例程学习系统,其特征在于,所述诊断例程学习系统包括:
诊断例程学习装置,用于通过预设例程接口获取例程学习诊断控制命令,所述例程学习诊断控制命令包括诊断例程标识和命令类型,所述预设例程接口用于接收针对当前控制域全部的诊断例程的例程学习诊断控制命令,所述诊断例程标识用于区分不同的诊断例程,以及将所述例程学习诊断控制命令发送至所述预设例程接口对应的多个诊断例程,其中每一控制域设置一个所述预设例程接口;
一个或多个控制域,每一控制域中设置有一个或多个诊断例程,诊断例程对所在控制域对应设置的所述预设例程接口发送的例程学习诊断控制命令进行监听,若所述诊断例程的预设例程标识为所述诊断例程标识,触发所述诊断例程执行所述命令类型对应的预设命令,以进行诊断例程学习。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行权利要求1至6中任一项所述的方法。
CN202311272928.0A 2023-09-28 2023-09-28 诊断例程学习方法、装置、系统、电子设备及存储介质 Pending CN117312158A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311272928.0A CN117312158A (zh) 2023-09-28 2023-09-28 诊断例程学习方法、装置、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311272928.0A CN117312158A (zh) 2023-09-28 2023-09-28 诊断例程学习方法、装置、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117312158A true CN117312158A (zh) 2023-12-29

Family

ID=89249448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311272928.0A Pending CN117312158A (zh) 2023-09-28 2023-09-28 诊断例程学习方法、装置、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117312158A (zh)

Similar Documents

Publication Publication Date Title
CN110597229A (zh) 一种车辆诊断互斥方法、装置、车辆和存储介质
CN114546445A (zh) 一种基于微服务架构的整车ota控制器升级系统及方法
CN115857985A (zh) 一种座舱升级系统、运行方法及存储介质
CN117312158A (zh) 诊断例程学习方法、装置、系统、电子设备及存储介质
CN113050960A (zh) Ota升级方法、装置、车载终端及存储介质
CN115877819A (zh) 整车远程诊断管理方法、装置、设备及介质
CN115696266A (zh) 一种车载控制器升级方法、装置、设备及存储介质
CN116048587A (zh) 车辆远程自动升级方法、装置、服务器、设备及介质
CN115022297A (zh) 车端控制器的远程调试方法、装置、系统和车辆
CN114328229A (zh) 一种空中下载技术测试系统
JP2022538080A (ja) 車両の車載バス上のコンピュータと対話する方法
US20240126535A1 (en) Vehicle and software update system
US20240176612A1 (en) Vehicle, software update method, and non-transitory storage medium
US20240118885A1 (en) User equipment, software update system, control method, and non-transitory storage medium
US20240118882A1 (en) Server and software distribution system
US20240012634A1 (en) Control system, control device, control program update method, and non-transitory storage medium
US20240143311A1 (en) Mobile terminal and software update system
CN114185297B (zh) 车载软件升级的控制方法及设备
CN115793611A (zh) 诊断接口数据传输控制方法、装置、设备、介质及车辆
CN115224685B (zh) 配电管理方法、装置、车辆及存储介质
WO2023223819A1 (ja) 情報処理方法、通信システムおよび情報処理プログラム
CN116028082A (zh) 车载客户端的更新方法及装置、电子设备、可读存储介质
WO2023223825A1 (ja) 車載装置、情報処理方法および情報処理プログラム
CN116302001A (zh) 服务注册管理方法、装置、设备及存储介质
CN118068752A (zh) 车载ota系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination