System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及信息,更具体的说,是涉及一种服务编译方法、装置和电子设备。
技术介绍
1、在汽车软件中,对于采用simulink开发的算法模型而言,如果希望被外部调用时,一般的方式是将simulink模型生成静态/动态库。
2、如果外围使用业务较为负责,则需要额外编写算法调用逻辑和外部数据处理转换逻辑。对于算法模型发生变化时,由于算法暴露的接口是simulink模型的inport(输入函数)和outport(输出函数)形成的结构体,因此一般需要将外围处理代码和simulink模型代码一起编译,外围代码和算法核心代码的耦合性较强。另一种方式是在simulink中通过定义s-function来负责生成外围代码进行编译。
3、由于不同算法模型的输入和输出是不同的,因此需要人员依据算法的输入和输出信息,调整信号与服务之间相互转换的业务逻辑的封装。该工作在算法模型或者服务接口变动的时候会增加人员的负担。
技术实现思路
1、有鉴于此,本申请提供了一种服务编译方法、装置和电子设备,如下:
2、一种服务编译方法,包括:
3、接收服务请求;
4、若所述服务请求是获得动态库服务请求,基于所述服务请求获得目标算法模型;
5、生成所述目标算法模型对应的编译配置文件;
6、基于目标实现代码修改所述编译配置文件得到目标编译配置文件,所述目标实现代码是与目标算法模型的目标接口对应;
7、编译所述目标编译配置文件得到动态库文
8、上述的服务编译方法,可选的,所述生成所述目标算法模型对应的编译配置文件,包括:
9、解析所述目标算法模型的定义文件,得到所述目标算法模型中输入参数,所述输入参数包括输入参数;
10、按照预设结构化协议对于所述目标算法模型的输入参数进行结构化处理得到输出参数;
11、基于所述结构化输出参数以及所述目标算法模型,生成编译配置文件。
12、上述的服务编译方法,可选的,所述解析所述目标算法模型的定义文件,得到所述目标算法模型中输入参数,包括:
13、解析所述目标算法模型中数据类型定义文件,得到所述目标算法模型中输入参数,所述数据类型定义文件用于定义所述目标算法模型中至少两个参数的名称和数据类型。
14、上述的服务编译方法,可选的,所述基于目标实现代码修改所述编译配置文件得到目标编译配置文件,包括:
15、基于所述服务请求中携带的配置信息,生成目标接口对应的目标实现代码;
16、基于目标实现代码修改所述编译配置文件中目标接口对应的内容得到目标编译配置文件。
17、上述的服务编译方法,可选的,所述按照预设结构化协议对于所述目标算法模型的输入参数进行结构化处理得到输出参数,包括:
18、解析所述目标算法模型的代码文件,得到所述目标算法模型的输入参数;
19、依据预设服务封装规则,从所述目标算法模型的代码文件中解析获得结构化定义;
20、基于所述结构化定义对于所述输入参数进行结构化处理,得到输出参数。
21、上述的服务编译方法,可选的,还包括:
22、若所述服务请求是运行算法服务请求,基于所述服务请求在动态库文件库中筛选请求的目标算法模型对应的目标动态库文件;
23、若所述目标动态库文件存在,解析所述服务请求得到所述目标动态库文件的输入参数;
24、基于所述输入参数的类别,以及所述目标动态库文件对于所述输入参数执行运算;
25、若所述目标动态库文件不存在,中止该服务调用,生成目标动态库文件不存在的提示信息,并将所述提示信息反馈给目标客户端,所述目标客户端是发出所述服务请求的客户端。
26、上述的服务编译方法,可选的,所述基于所述输入参数的类别,以及所述目标动态库文件对于所述输入参数执行运算,包括:
27、分析所述输入参数,得到所述输入参数的类别,所述类别包括数据类别或者文件路径类别;
28、基于所述输入参数的类别是数据类别,对于所述输入参数进行结构化处理,得到目标输入参数;将所述目标输入参数赋值到所述目标动态库文件中对应对象,得到运算结果;
29、基于所述输入参数的类别是文件路径,调用所述文件路径对应的参数列表;
30、将所述参数列表中每个输入参数依次赋值到目标动态库文件中对应对象,得到运算结果。
31、上述的服务编译方法,可选的,所述对于所述输入参数进行结构化处理,得到目标输入参数,包括:
32、若所述输入参数是非目标结构化数据,获取预设结构化协议定义的目标结构体以及所述目标结构体的属性描述信息;
33、调用预设封装解析接口,基于目标结构体以及所述属性描述信息解析所述输入参数,得到第一结构化对象;
34、相应的,将所述目标输入参数赋值到所述目标动态库文件中对应对象,得到运算结果,包括:
35、访问所述目标动态库文件的属性,在所述目标动态库文件中查找与所述第一结构化对象的属性名相同的第二结构化对象;
36、将所述第一结构化对象的取值赋值到所述第二结构化对象中得到待运行库文件;
37、运行所述待运行库文件得到运算结果。
38、一种服务编译装置,包括:
39、接收模块,用于接收服务请求;
40、获得模块,用于若所述服务请求是获得动态库服务请求,基于所述服务请求获得目标算法模型;
41、生成模块,用于生成所述目标算法模型对应的编译配置文件;
42、修改模块,用于基于目标实现代码修改所述编译配置文件得到目标编译配置文件;
43、编译模块,用于编译所述目标编译配置文件得到动态库文件。
44、一种电子设备,包括:
45、存储器、处理器;
46、其中,存储器存储有处理程序;
47、所述处理器用于加载并执行所述存储器存储的所述处理程序,以实现如上述任一项所述的服务编译方法的各步骤。
48、综上所述,本申请提供的一种服务编译方法、装置和电子设备,包括:接收服务请求;若所述服务请求是获得动态库服务请求,基于所述服务请求获得目标算法模型;生成所述目标算法模型对应的编译配置文件;基于目标实现代码修改所述编译配置文件得到目标编译配置文件,所述目标实现代码是与目标算法模型的目标接口对应;编译所述目标编译配置文件得到动态库文件。本申请中,由于目标实现代码是与目标算法模型中目标接口对应,基于该目标实现代码自动对于编译配置文件进行修改得到目标编译配置文件,因此,在算法模型或者服务接口变动时,可以根据变动的情况生成的目标实现代码对于编译配置文件自动进行修改,无需人工进行调整信号与服务之间相互转换的业务逻辑,降低工作人员的负担。
本文档来自技高网...【技术保护点】
1.一种服务编译方法,其特征在于,包括:
2.根据权利要求1所述的服务编译方法,其特征在于,所述生成所述目标算法模型对应的编译配置文件,包括:
3.根据权利要求2所述的服务编译方法,其特征在于,所述解析所述目标算法模型的定义文件,得到所述目标算法模型中输入参数,包括:
4.根据权利要求2所述的服务编译方法,其特征在于,所述基于目标实现代码修改所述编译配置文件得到目标编译配置文件,包括:
5.根据权利要求2所述的服务编译方法,其特征在于,所述按照预设结构化协议对于所述目标算法模型的输入参数进行结构化处理得到输出参数,包括:
6.根据权利要求1所述的服务编译方法,其特征在于,还包括:
7.根据权利要求6所述的服务编译方法,其特征在于,所述基于所述输入参数的类别,以及所述目标动态库文件对于所述输入参数执行运算,包括:
8.根据权利要求7所述的服务编译方法,其特征在于,所述对于所述输入参数进行结构化处理,得到目标输入参数,包括:
9.一种服务编译装置,其特征在于,包括:
10.一种
...【技术特征摘要】
1.一种服务编译方法,其特征在于,包括:
2.根据权利要求1所述的服务编译方法,其特征在于,所述生成所述目标算法模型对应的编译配置文件,包括:
3.根据权利要求2所述的服务编译方法,其特征在于,所述解析所述目标算法模型的定义文件,得到所述目标算法模型中输入参数,包括:
4.根据权利要求2所述的服务编译方法,其特征在于,所述基于目标实现代码修改所述编译配置文件得到目标编译配置文件,包括:
5.根据权利要求2所述的服务编译方法,其特征在于,所述按照预设结构化协议对...
【专利技术属性】
技术研发人员:张柳,杨志亮,刘潇涵,
申请(专利权)人:北京经纬恒润科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。