一种基于XML的CAN总线业务流程处理方法技术

技术编号:38881105 阅读:13 留言:0更新日期:2023-09-22 14:11
本发明专利技术提供一种基于XML的CAN总线业务流程处理方法,包括:通过设置XML文件;分别定义与CAN数据收发信息、CAN消息内容填充和CAN消息数据搬运信息对应的结构体数组变量,以及CAN帧基本结构、CAN帧管理结构、CAN总线接收缓冲区与CAN总线发送缓冲区;进而对XML文件进行解析,并对CAN总线发送缓冲区进行数据填充;使用处理函数索引对第一结构体数组变量进行解析操作;最后发送CAN总线发送缓冲区中的数据至下一业务流程。上述方式能够将当前工况下的模拟过程所需数据存入CAN总线的缓冲区,使用过程中直接由CAN总线发送缓冲区发送数据,方便传输数据,大大降低了数据的修改困难程度;简化了操作,能够在进行不同的工况时均可以简便快捷地修改或传输数据。便快捷地修改或传输数据。便快捷地修改或传输数据。

【技术实现步骤摘要】
一种基于XML的CAN总线业务流程处理方法


[0001]本专利技术一般涉及计算机控制
,具体涉及一种基于XML的CAN总线业务流程处理方法。

技术介绍

[0002]工业设备工作前的准备过程中需要进行大量的数据交互,一般情况下数据交互方为响应

应答式。而每交互一次则需要主控平台发送若干报文,工业设备根据收到的报文进行对应的处理,同时按照规定协议对主控平台进行回复,这一过程通常为一次业务处理过程。
[0003]工业设备工作前的准备过程有若干业务进行处理。在工业设备与主控平台适配过程中,考虑到安全性以及成本等因素通常使用工业模拟设备代替实际设备进行验证,主控平台和工业模拟设备按照总线接口规定协议进行交互,工业模拟设备进行对应业务处理。
[0004]在工业模拟设备与主控平台进行大量的请求应答式数据交互过程中,CAN总线作为最常用的总线之一,工业模拟设备通常会将交互数据按CAN数据以常量形式存储于代码中,作为业务处理过程中的模拟数据。这种数据形式单一且修改困难,无法满足不同工况下的模拟过程。因此在模拟不同工况时或修改功能参数时需要对代码整体进行修改,操作十分不便。

技术实现思路

[0005]鉴于现有技术中的上述缺陷或不足,期望提供一种基于XML的CAN总线业务流程处理方法。
[0006]第一方面,本专利技术提供一种基于XML的CAN总线业务流程处理方法,包括:
[0007]设置XML文件,包括:设置所述XML文件下CAN数据收发信息、CAN消息内容填充与CAN消息数据搬运信息的标签数据;
[0008]分别定义与所述CAN数据收发信息、CAN消息内容填充和CAN消息数据搬运信息对应的结构体数组变量,分别得到第一结构体数组变量、第二结构体数组变量和第三结构体数组变量;
[0009]分别定义CAN帧基本结构、CAN帧管理结构、CAN总线接收缓冲区与CAN总线发送缓冲区;
[0010]获取所述XML文件的句柄;
[0011]将所述XML文件转化为XML节点树;
[0012]对所述XML节点树进行解析,得到更新XML节点树;
[0013]获取CAN消息内容填充与CAN消息数据搬运信息的标签数据;
[0014]将所述第二结构体数组变量中的数据填充至所述CAN总线发送缓冲区;
[0015]CAN总线接收所述CAN总线发送缓冲区中的数据;
[0016]根据所述第二结构体数组变量下的数据对所述第一结构体数组变量进行拷贝操
作;
[0017]根据所述第三结构体数组变量下的处理函数索引对所述第一结构体数组变量进行解析操作;
[0018]启动定时器,经历设定时间后发送所述CAN总线发送缓冲区中的数据至下一业务流程。
[0019]根据本专利技术提供的技术方案,所述CAN数据收发信息标签数据中记录第一长度信息,所述第一长度信息包括:CAN数据收发信息编号ID、第一发送消息字节数量、第一发送消息CAN帧数量、第一接收消息字节数量、第一接收消息CAN帧数量、第一处理标志、基础函数的序号、第一超时时间;
[0020]所述CAN消息内容填充标签数据中记录第二长度信息,所述第二长度信息包括:CAN消息内容填充编号ID、CAN总线中每帧的索引号、CAN总线每帧中每个字节的索引号、需要填充的数据内容;
[0021]所述CAN消息数据搬运信息标签数据中记录第三长度信息,所述第三长度信息包括:CAN消息数据搬运信息编号ID、搬运数据源索引号、搬运数据源子索引、搬运目索引号、搬运目子索引、搬运字节数。
[0022]根据本专利技术提供的技术方案,所述第一结构体数组变量表示CAN数据收发信息处理表,所述第一结构体数组变量的元素个数大于所述第一长度信息,所述第一结构体数组变量的元素内容为所述CAN数据收发信息类型的结构体;
[0023]所述第二结构体数组变量表示CAN发送消息初始数据表,所述第二结构体数组变量的元素个数大于所述第二长度信息,所述第二结构体数组变量的元素内容为所述CAN消息内容填充类型的结构体;
[0024]所述第三结构体数组变量表示CAN数据收发信息处理表,所述第三结构体数组变量的元素个数大于所述第三长度信息,所述第三结构体数组变量的元素内容为所述CAN消息数据搬运信息类型的结构体;所述第三结构体数组变量ID条目下设置有第二超时时间;
[0025]每个记录表中均包含有所述第三结构体数组变量中条目的数量。
[0026]根据本专利技术提供的技术方案,所述设定时间设定为小于所述第二超时时间。
[0027]根据本专利技术提供的技术方案,所述CAN帧基本结构包括:CAN总线ID、数据长度、第一数组;
[0028]所述CAN帧管理结构包括:所述CAN帧基本结构、CAN总线中当前帧数量;
[0029]所述CAN总线接收缓冲区与所述CAN总线发送缓冲区的索引均按照ID标号排列;所述CAN总线接收缓冲区与所述CAN总线发送缓冲区中的元素均为所述CAN帧管理结构;所述CAN总线接收缓冲区与所述CAN总线发送缓冲区的初始值设置为空。
[0030]根据本专利技术提供的技术方案,对所述XML节点树进行解析,得到更新XML节点树的步骤包括:
[0031]使用XML元素寻找函数寻找所述CAN数据收发信息中包含的元素;所述CAN数据收发信息的当前节点与顶节点均选择所述XML节点树,所述XML元素寻找函数的搜索方式设置为只查看同级节点;
[0032]将所述CAN数据收发信息中包含的元素以XML节点结构格式保存为第一节点树;
[0033]将所述第一节点树设置为所述CAN数据收发信息的顶层节点;
[0034]获取所述第一节点树的二级节点与三级节点;
[0035]对所述二级节点与三级节点进行更新,得到所述更新XML节点树。
[0036]根据本专利技术提供的技术方案,对所述二级节点与三级节点进行更新的步骤包括:
[0037]使用所述XML元素寻找函数遍历所述第一节点树的所有初始节点;所述XML元素寻找函数的当前节点与顶节点均选择第一节点树,所述XML元素寻找函数的搜索方式设置为只查看同级节点,所述二级节点的属性与名称均设置为无;
[0038]判断:当所述初始节点不为空时,使用元素属性获取函数将所述CAN数据收发信息中的第一长度信息获取至所述初始节点的内存变量中,并进行下一步;否则报错并退出程序;
[0039]使用所述XML元素寻找函数获取所述第一节点树的三级节点,所述三级节点的当前节点选择为所述初始节点,顶层节点选择为第一节点树,所述三级节点的属性与名称均设置为无;
[0040]将所述三级节点作为所述初始节点;
[0041]将所述初始节点重新代入所述XML节点树,得到所述更新XML节点树。
[0042]根据本专利技术提供的技术方案,CAN总线接收所述CAN总线发送缓冲区中的数据的步骤包括:
[0043]获取C本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于XML的CAN总线业务流程处理方法,其特征在于,包括:设置XML文件,包括:设置所述XML文件下CAN数据收发信息、CAN消息内容填充与CAN消息数据搬运信息的标签数据;分别定义与所述CAN数据收发信息、CAN消息内容填充和CAN消息数据搬运信息对应的结构体数组变量,分别得到第一结构体数组变量、第二结构体数组变量和第三结构体数组变量;分别定义CAN帧基本结构、CAN帧管理结构、CAN总线接收缓冲区与CAN总线发送缓冲区;获取所述XML文件的句柄;将所述XML文件转化为XML节点树;对所述XML节点树进行解析,得到更新XML节点树;获取CAN消息内容填充与CAN消息数据搬运信息的标签数据;将所述第二结构体数组变量中的数据填充至所述CAN总线发送缓冲区;CAN总线接收所述CAN总线发送缓冲区中的数据;根据所述第二结构体数组变量下的数据对所述第一结构体数组变量进行拷贝操作;根据所述第三结构体数组变量下的处理函数索引对所述第一结构体数组变量进行解析操作;启动定时器,经历设定时间后发送所述CAN总线发送缓冲区中的数据至下一业务流程。2.根据权利要求1所述的一种基于XML的CAN总线业务流程处理方法,其特征在于,所述CAN数据收发信息标签数据中记录第一长度信息,所述第一长度信息包括:CAN数据收发信息编号ID、第一发送消息字节数量、第一发送消息CAN帧数量、第一接收消息字节数量、第一接收消息CAN帧数量、第一处理标志、基础函数的序号、第一超时时间;所述CAN消息内容填充标签数据中记录第二长度信息,所述第二长度信息包括:CAN消息内容填充编号ID、CAN总线中每帧的索引号、CAN总线每帧中每个字节的索引号、需要填充的数据内容;所述CAN消息数据搬运信息标签数据中记录第三长度信息,所述第三长度信息包括:CAN消息数据搬运信息编号ID、搬运数据源索引号、搬运数据源子索引、搬运目索引号、搬运目子索引、搬运字节数。3.根据权利要求2所述的一种基于XML的CAN总线业务流程处理方法,其特征在于,所述第一结构体数组变量表示CAN数据收发信息处理表,所述第一结构体数组变量的元素个数大于所述第一长度信息,所述第一结构体数组变量的元素内容为所述CAN数据收发信息类型的结构体;所述第二结构体数组变量表示CAN发送消息初始数据表,所述第二结构体数组变量的元素个数大于所述第二长度信息,所述第二结构体数组变量的元素内容为所述CAN消息内容填充类型的结构体;所述第三结构体数组变量表示CAN数据收发信息处理表,所述第三结构体数组变量的元素个数大于所述第三长度信息,所述第三结构体数组变量的元素内容为所述CAN消息数据搬运信息类型的结构体;所述第三结构体数组变量ID条目下设置有第二超时时间;每个记录表中均包含有所述第三结构体数组变量中条目的数量。4.根据权利要求3所述的一种基于XML的CAN总线业务流程处理方法,其特征在于,所述
设定时间设定为小于所述第二超时时间。5.根据权利要求3所述的一种基于XML的CAN总线业务流程处理方法,其特征在于,所述CAN帧基本结构包括:CAN总线ID、数据长度、第一数组;所述CAN帧管理结构包括:所述CAN帧基本结构、CAN总线中当前帧数量;所述CAN总线...

【专利技术属性】
技术研发人员:王雨龙
申请(专利权)人:天津津航计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1