System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于嵌入式系统通讯,具体涉及一种基于多种接口的数据报文通用转发处理方法。
技术介绍
1、在嵌入式控制系统中,控制台通过以太网向指令转发单元发送控制命令和参数,指令转发单元通过不同的数据接口(以太网、串口、can总线、i/o开关量等),将接收到的控制命令和参数发送给终端设备。当指令转发单元端的工作流程发生更改时,通常需要修改指令转发单元端的代码,实现指令转发单元端新的工作流程。
2、修改指令转发单元端代码的做法虽然能使指令转发单元满足新的工作流程要求,但是该方法存在一定弊端。一方面,该方法导致指令转发单元端的程序代码改动量较大。若指令转发单元端的程序架构设计不够合理,当指令转发单元端设备的工作流程更改较大时,不仅导致指令转发单元端修改和维护程序工作量的增加,还会增大程序修改后出错的风险。另一方面,指令转发单元端代码的大量修改可能导致指令转发单元端代码软件架构的变更,不利于指令转发单元端软件代码的高质量重用,降低了软件开发效率和实现可靠性。
技术实现思路
1、(一)要解决的技术问题
2、本专利技术要解决的是:在嵌入式控制系统中,因指令转发单元端设计和工作流程变更带来的指令转发单元端程序代码改动量大且软件开发效率低下的技术问题。
3、(二)技术方案
4、为了解决上述技术问题,本专利技术提供了一种基于多种接口的数据报文通用转发处理方法,包括以下步骤:
5、s1:定义xml脚本语言的语法和命令,生成xml脚本语言接口规范;
6、其中,所述xml脚本语言接口规范是为了实现嵌入式控制系统中的指令转发单元的工作流程而设计的基于xml的可扩展标记语言,支持顺序结构、分支判断和循环结构;
7、其中,所述xml脚本语言遵循xml语言的语法规则,并按照指令转发单元自身的工作流程顺次编写;
8、其中,所述xml脚本语言接口规范中的语句是由一个xml元素来表达的,所有语句都必须有返回值,对于返回值没有意义的语句,返回void;该xml脚本语言接口规范中的语句可以嵌套成为组合语句,这样的语句的返回值为其内部最后一条语句的执行结果;每条语句的返回值类型是解释器执行过程中动态决议的,而不在执行前进行静态检查;
9、其中,所述指令转发单元内运行xml脚本文件的解释器,即xml脚本解释器;所述指令转发单元的每一步工作流程由一个block块语句实现,每个block块语句是由多条基本语句组成,xml脚本解释器将顺次解析并执行该block块语句中的每一条语句;block块中每条基本语句的语言元素包括赋值语句元素、数值运算元素、比较语句元素、逻辑运算元素、分支和循环语句元素、数据发送元素、数据接收元素以及自定义数据处理元素;
10、s2:读取xml配置文件的信息,基于xml脚本语言接口规范描述指令转发单元自身的工作流程,并将该工作流程保存在xml脚本文件中;xml配置文件包括xml参数配置文件、xml任务配置文件;
11、其中,嵌入式控制系统中的控制台通过以太网向指令转发单元发送控制命令和参数,指令转发单元通过不同的数据接口,将接收到的控制命令和参数发送给终端设备;终端设备将控制命令的执行结果通过不同的数据接口发送给指令转发单元,指令转发单元再将该执行结果通过以太网发送给控制台;
12、其中,所述指令转发单元自身的工作流程由xml脚本描述实现;指令转发单元自身的工作流程包括:参数和任务初始化、控制台控制命令和参数的接收处理以及与终端设备的通信处理;
13、s3:将完整的xml脚本文件装入xml脚本解释器中,指令转发单元启动对该脚本的解析处理流程。
14、优选地,所述block块语句中的赋值语句元素setvar用于定义并初始化一个任意类型的变量,该语句的返回值为bool类型,表示赋值是否执行成功;
15、所述block块语句中的获取数值元素getvar用于获取任意类型变量的数值;getvar元素返回一个已经定义变量的值,主要用于对已定义变量的引用;如果要引用的变量还没有定义,则返回无效类型;
16、所述block块语句中的数值运算元素calcula用于对定义的变量进行四则运算或者位运算,并将运算的结果存入原变量中;该语句的返回值为bool类型,表示运算是否执行成功;
17、所述block块语句中的比较语句元素testfield用于比较两个变量值或常量值的大小,并返回比较结果;如果比较结果一致返回true,比较结果不一致返回false;
18、所述block块语句中的逻辑运算元素用于对含有一个或多个返回值为布尔类型的子语句进行“逻辑与”或者“逻辑或”操作,并返回操作结果;
19、所述block块语句中的分支和循环语句元素用于实现分支语句和循环语句操作;
20、所述block块语句中的数据发送元素senddata用于实现基于多种通信接口的数据发送,该元素senddata可以定义发送数据的内容、数据报文名称、通信接口类型、发送次数和发送间隔,发送的数据包的内容可以通过field进行描述;senddata包含五个属性:addr表示发送的目的地址,name表示发送数据报文名称,type表示通信接口类型,times表示最多发送的次数,gap表示发送间隔;
21、所述block块语句中的数据接收元素recvdata用于实现接收终端设备发送的数据内容、数据报文名称、通信接口类型和超时时间,并保存接收的报文数据内容;recvdata包含四个属性:addr表示接收的源地址,name表示接收数据报文名称,type表示通信接口类型,timeout表示接收数据超时时间,其中,setarray表示设置数组名称;
22、所述block块语句中的自定义数据处理元素用于根据指令转发单元特殊的功能需求,定义该功能需求的专用函数,实现对该功能需求的特殊处理;自定义数据处理元素的属性值为每个专用函数的形参值;需要根据指令转发单元的不同通信协议,事先定义好基于每种通信协议的接收处理函数。
23、优选地,所述指令转发单元的“参数初始化”由指令转发单元读取相应的xml参数配置文件实现;在xml中定义专用函数readxmlfile作为“文件读取”元素,实现读取指定文件路径、文件类型和文件名称的功能;指令转发单元将参数按照类型分为不同的xml参数配置文件,每个xml参数配置文件中包含参数名称、参数标识、参数数据类型以及参数初始值;在xml中定义专用函数initpara作为“系统初始化”元素,实现指令转发单元的参数初始化。
24、优选地,所述指令转发单元的“任务初始化”由指令转发单元读取相应的xml任务配置文件实现;在xml中定义专用函数readxmlfile作为“文件读取”元素,实现读取指定文件路径、文件类型和文件名称的功能;指令转发单元将需要创建的任务按照类型分为不同的xml任务配置文件,每个xml任务配置文件中包含任务名本文档来自技高网...
【技术保护点】
1.一种基于多种接口的数据报文通用转发处理方法,其特征在于,包括以下步骤:
2.如权利要求1所述的方法,其特征在于,所述block块语句中的赋值语句元素setvar用于定义并初始化一个任意类型的变量,该语句的返回值为bool类型,表示赋值是否执行成功;
3.如权利要求2所述的方法,其特征在于,所述指令转发单元的“参数初始化”由指令转发单元读取相应的XML参数配置文件实现;在XML中定义专用函数ReadXMLFile作为“文件读取”元素,实现读取指定文件路径、文件类型和文件名称的功能;指令转发单元将参数按照类型分为不同的XML参数配置文件,每个XML参数配置文件中包含参数名称、参数标识、参数数据类型以及参数初始值;在XML中定义专用函数InitPara作为“系统初始化”元素,实现指令转发单元的参数初始化。
4.如权利要求3所述的方法,其特征在于,所述指令转发单元的“任务初始化”由指令转发单元读取相应的XML任务配置文件实现;在XML中定义专用函数ReadXMLFile作为“文件读取”元素,实现读取指定文件路径、文件类型和文件名称的功能;指令转发单
5.如权利要求4所述的方法,其特征在于,所述指令转发单元的“控制台控制命令和参数的接收处理”包括接收控制命令和参数、处理控制命令和参数以及发送控制命令和参数;利用以太网数据接收元素和以太网数据发送元素实现对控制命令和参数的接收和发送,在XML中定义专用函数DealNetData作为“控制命令和参数处理”元素,根据以太网协议的内容实现对控制命令和参数的处理。
6.如权利要求5所述的方法,其特征在于,所述指令转发单元的“与终端设备的通信处理”包括接收终端设备数据、向终端设备发送数据以及终端设备数据处理;在XML中定义不同接口类型的数据接收元素,每种接口类型的数据接收元素用专用函数实现,函数参数包括接收的数据内容、数据报文名称、通信接口类型和接收超时时间;在XML中定义不同接口类型的数据发送元素,每种接口类型的数据发送元素用专用函数实现,函数参数包括发送数据的内容、数据报文名称、通信接口类型、发送次数和发送间隔;在XML中定义各自的专用函数作为不同接口类型的终端设备数据处理元素,每种接口类型的报文按照该报文协议进行处理。
7.如权利要求6所述的方法,其特征在于,XML脚本文件中指令转发单元的工作流程如下:
8.如权利要求7所述的方法,其特征在于,步骤S2中,指令转发单元按照如下策略在工作流程中实现报文数据的重发操作和接收超时处理:
9.如权利要求8所述的方法,其特征在于,所述XML脚本解释器的内核实现对block块语句中每种语法元素的解释处理;针对每种语法元素,定义相应的函数分别实现赋值语句功能、数值运算功能、比较语句功能、逻辑运算功能、分支和循环语句功能、数据发送功能、数据接收功能和指令转发单元信息数据的专用处理,函数的参数为对应语法元素的属性;
10.一种基于如权利要求1至9中任一项所述方法实现的嵌入式系统通讯方法。
...【技术特征摘要】
1.一种基于多种接口的数据报文通用转发处理方法,其特征在于,包括以下步骤:
2.如权利要求1所述的方法,其特征在于,所述block块语句中的赋值语句元素setvar用于定义并初始化一个任意类型的变量,该语句的返回值为bool类型,表示赋值是否执行成功;
3.如权利要求2所述的方法,其特征在于,所述指令转发单元的“参数初始化”由指令转发单元读取相应的xml参数配置文件实现;在xml中定义专用函数readxmlfile作为“文件读取”元素,实现读取指定文件路径、文件类型和文件名称的功能;指令转发单元将参数按照类型分为不同的xml参数配置文件,每个xml参数配置文件中包含参数名称、参数标识、参数数据类型以及参数初始值;在xml中定义专用函数initpara作为“系统初始化”元素,实现指令转发单元的参数初始化。
4.如权利要求3所述的方法,其特征在于,所述指令转发单元的“任务初始化”由指令转发单元读取相应的xml任务配置文件实现;在xml中定义专用函数readxmlfile作为“文件读取”元素,实现读取指定文件路径、文件类型和文件名称的功能;指令转发单元将需要创建的任务按照类型分为不同的xml任务配置文件,每个xml任务配置文件中包含任务名称、标识、优先级、执行周期、堆栈大小、信号量名称、信号量标识、信号量类型及初始化参数、消息队列名称、消息队列标识、消息队列类型及初始化参数;在xml中定义专用函数createtask作为“创建任务”元素,实现指令转发单元的任务、信号量和消息队列的创建和初始化操作。
5.如权利要求4所述的方法,其特征在于,所述指令转发单元的“控制台控制命令和参数的接收处理”包括接收控制命令和参数、处理...
【专利技术属性】
技术研发人员:李飞虎,
申请(专利权)人:天津津航计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。