System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,尤其涉及一种报文转发方法及装置。
技术介绍
1、目前,现代汽车普遍采用多个电子控制单元(electronic control unit,ecu)进行数据交换和通信,为了实现不同ecu之间的通信,可以通过一些特定的方式在不同ecu之间进行数据交换。
2、目前,一般采用中间件或消息队列将报文进行转发,发送方将需要转发的报文封装成消息,并发送到消息队列中,中间件或消息队列会接收到发送方发送的消息,并将消息存储在消息队列中,接收方会从消息队列中拉取消息。然而,在消息发送和接收过程中,需要将报文进行序列化和反序列化,即将报文转换成消息的格式,并在接收端将消息转换回原始报文格式。这个过程涉及到报文的编码和解码,可能会占用一定的计算资源和时间,进而导致报文转发的效率较低。
3、因此,如何提升报文转发效率,成为本领域亟需解决的问题。
技术实现思路
1、本申请提供了一种报文转发方法及装置,目的在于提升报文转发效率。
2、为了实现上述目的,本申请提供了以下技术方案:
3、一种报文转发方法,应用于下位机,包括:
4、当接收到总线发送的待转发报文时,获取指令集合中的转发指令,以及预先存储在结构体中的预设报文的报文id;
5、当所述待转发报文的报文id与所述预设报文的报文id一致时,判断所述转发指令所包含的转发标志位是否为预设数值;
6、若所述转发指令所包含的所述转发标志位为所述预设数值,则判断所述转发指令所
7、若所述转发指令所包含的所述修改标志位为所述预设数值,则对所述待转发报文进行修改,得到修改后的待转发报文;
8、调用发送函数将所述修改后的待转发报文进行转发。
9、可选的,所述当接收到总线发送的待转发报文时,获取指令集合中的转发指令,以及预先存储在结构体中的预设报文的报文id,包括:
10、当接收到总线发送的待转发报文时,触发读取中断;
11、当所述读取中断触发后,从所述读取中断对应的通道中,选取出预先存储在结构体中的预设报文的报文id。
12、可选的,所述对所述待转发报文进行修改,得到修改后的待转发报文,包括:
13、获取所述转发指令中所包含的修改字段;
14、根据所述修改字段对所述待转发报文进行修改,得到修改后的待转发报文。
15、可选的,所述当接收到总线发送的待转发报文时,获取指令集合中的转发指令,以及预先存储在结构体中的预设报文的报文id之前,还包括:
16、当接收到上位机发送的转发指令时,触发写入中断;
17、当所述写入中断触发后,获取所述写入中断对应的通道中的指令集合;
18、判断所述指令集合中是否存在历史转发指令;
19、若所述指令集合中存在所述历史转发指令,则将所述历史转发指令的指令id与所述转发指令的指令id进行比对;
20、若所述历史转发指令的指令id与所述转发指令的指令id一致,则判断所述转发指令所包含转发标志位是否为预设数值;
21、若所述转发指令所包含所述转发标志位为所述预设数值,则判断所述转发指令所包含的修改标志位是否为所述预设数值;
22、若所述转发指令所包含的所述修改标志位为所述预设数值,则根据所述转发指令对所述历史转发指令进行更新,得到更新后的转发指令;
23、将所述更新后的转发指令存储至所述指令集合中。
24、可选的,所述判断所述指令集合中是否存在历史转发指令之后,还包括:
25、若所述指令集合中不存在所述历史转发指令,将所述转发指令存储至所述指令集合中。
26、一种报文转发方法,应用于上位机,包括:
27、当接收到配置信息时,根据所述配置信息中的报文创建数据结构;
28、将所述数据结构映射至结构体中;
29、根据所述配置信息对所述结构体进行赋值,得到转发指令,并将所述转发指令发送至下位机。
30、可选的,所述根据配置信息对所述结构体进行赋值,得到转发指令,包括:
31、获取所述配置信息中的报文id、源通道、目标通道、转发信息以及修改信息;
32、根据所述报文id、所述源通道和所述目标通道对所述结构体进行赋值,得到赋值后的结构体;
33、当所述转发信息指示对报文进行转发时,将所述赋值后的结构体中的转发标志位设置为预设数值,得到设置后的结构体;
34、当所述修改信息指示对所述报文进行修改时,将所述设置后的结构体中的修改标志位设置为所述预设数值,得到转发指令。
35、一种报文转发装置,应用于下位机,包括:
36、获取单元,用于当接收到总线发送的待转发报文时,获取指令集合中的转发指令,以及预先存储在结构体中的预设报文的报文id;
37、第一判断单元,用于当所述待转发报文的报文id与所述预设报文的报文id一致时,判断所述转发指令所包含的转发标志位是否为预设数值;
38、第二判断单元,用于若所述转发指令所包含的所述转发标志位为所述预设数值,则判断所述转发指令所包含的修改标志位是否为所述预设数值;
39、修改单元,用于若所述转发指令所包含的所述修改标志位为所述预设数值,则对所述待转发报文进行修改,得到修改后的待转发报文;
40、转发单元,用于调用发送函数将所述修改后的待转发报文进行转发。
41、可选的,所述获取单元具体用于:
42、当接收到总线发送的待转发报文时,触发读取中断;
43、当所述读取中断触发后,从所述读取中断对应的通道中,选取出预先存储在结构体中的预设报文的报文id。
44、一种报文转发装置,应用于上位机,包括:
45、创建单元,用于当接收到配置信息时,根据所述配置信息中的报文创建数据结构;
46、映射单元,用于将所述数据结构映射至结构体中;
47、赋值单元,用于根据所述配置信息对所述结构体进行赋值,得到转发指令,并将所述转发指令发送至下位机。
48、本申请提供的技术方案,当接收到总线发送的待转发报文时,获取指令集合中的转发指令,以及预先存储在结构体中的预设报文的报文id;当待转发报文的报文id与预设报文的报文id一致时,判断转发指令所包含的转发标志位是否为预设数值;若转发指令所包含的转发标志位为预设数值,则判断转发指令所包含的修改标志位是否为预设数值;若转发指令所包含的修改标志位为预设数值,则对待转发报文进行修改;调用发送函数将修改后的待转发报文进行转发。当接收到待转发报文时,根据转发规则对待转发报文进行修改后转发或者直接转发,而不需要对待转发报文进行序列化和反序列化后进行转发流程,因此,提升了报文转发效率。
本文档来自技高网...【技术保护点】
1.一种报文转发方法,其特征在于,应用于下位机,包括:
2.根据权利要求1所述的方法,其特征在于,所述当接收到总线发送的待转发报文时,获取指令集合中的转发指令,以及预先存储在结构体中的预设报文的报文ID,包括:
3.根据权利要求1所述的方法,其特征在于,所述对所述待转发报文进行修改,得到修改后的待转发报文,包括:
4.根据权利要求1所述的方法,其特征在于,所述当接收到总线发送的待转发报文时,获取指令集合中的转发指令,以及预先存储在结构体中的预设报文的报文ID之前,还包括:
5.根据权利要求4所述的方法,其特征在于,所述判断所述指令集合中是否存在历史转发指令之后,还包括:
6.一种报文转发方法,其特征在于,应用于上位机,包括:
7.根据权利要求6所述的方法,其特征在于,所述根据配置信息对所述结构体进行赋值,得到转发指令,包括:
8.一种报文转发装置,其特征在于,应用于下位机,包括:
9.根据权利要求8所述的装置,其特征在于,所述获取单元具体用于:
10.一种报文转发装置,其特
...【技术特征摘要】
1.一种报文转发方法,其特征在于,应用于下位机,包括:
2.根据权利要求1所述的方法,其特征在于,所述当接收到总线发送的待转发报文时,获取指令集合中的转发指令,以及预先存储在结构体中的预设报文的报文id,包括:
3.根据权利要求1所述的方法,其特征在于,所述对所述待转发报文进行修改,得到修改后的待转发报文,包括:
4.根据权利要求1所述的方法,其特征在于,所述当接收到总线发送的待转发报文时,获取指令集合中的转发指令,以及预先存储在结构体中的预设报文的报文id之前,还包括:...
【专利技术属性】
技术研发人员:普水仙,曹海成,
申请(专利权)人:北京经纬恒润科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。