CN106339249A - 动态配置编程方法 - Google Patents

动态配置编程方法 Download PDF

Info

Publication number
CN106339249A
CN106339249A CN201610712344.4A CN201610712344A CN106339249A CN 106339249 A CN106339249 A CN 106339249A CN 201610712344 A CN201610712344 A CN 201610712344A CN 106339249 A CN106339249 A CN 106339249A
Authority
CN
China
Prior art keywords
data
function
user
script
data processing
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.)
Granted
Application number
CN201610712344.4A
Other languages
English (en)
Other versions
CN106339249B (zh
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.)
Shanghai Chuangjing Information Technology Co ltd
Original Assignee
Upper Seabird Scape Computer System 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 Upper Seabird Scape Computer System Co Ltd filed Critical Upper Seabird Scape Computer System Co Ltd
Priority to CN201610712344.4A priority Critical patent/CN106339249B/zh
Publication of CN106339249A publication Critical patent/CN106339249A/zh
Application granted granted Critical
Publication of CN106339249B publication Critical patent/CN106339249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种动态配置编程方法,包括以下步骤:步骤一:动态的配置数据格式和解析;步骤二:将配置的数据格式转换成某种脚本语言;步骤三:在接收到的数据之后,按照用户配置的数据结构进行解析,在解析之后的数据上轻松的实现数据处理;步骤四:将处理后的数据按照解析方法再进行打包,传输出去。本发明降低了通信协议等变更时,再次进行软件的开发的工作量。

Description

动态配置编程方法
技术领域
本发明涉及一种配置编程方法,具体地,涉及一种动态配置编程方法。
背景技术
在大型仿真系统中,一般需要通过故障注入的方式来测试系统的健壮性。根据通信协议来模拟的数据包,在数据格式上存在并不存在很大的差异性。在通信协议做出变动时,模拟的数据包也需要同步进行调整,导致一般的故障注入工具在实现时,难以做到通用性。一般故障注入软件需要根据通信协议重新开发通信功能模块,并根据不同的协议生成不同的版本号,以便于区分。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种动态配置编程方法,其降低了通信协议等变更时,再次进行软件的开发的工作量。
根据本发明的一个方面,提供一种动态配置编程方法,其特征在于,包括以下步骤:
步骤一:动态的配置数据格式和解析;
步骤二:将配置的数据格式转换成某种脚本语言;
步骤三:在接收到的数据之后,按照用户配置的数据结构进行解析,在解析之后的数据上轻松的实现数据处理;
步骤四:将处理后的数据按照解析方法再进行打包,传输出去。
优选地,所述步骤一包括如下步骤:
步骤一十一:数据包格式定义;数据包由数据变量组成;
步骤一十二:解包方法和组包方法定义;
步骤一十三:用户根据其通信协议,配置其数据格式,以及验证配置的数据格式;
步骤一十四:将用户数据配置信息保存为xml文件,包含数据的基本定义信息,便于更新其定义的数据配置结构。
优选地,所述步骤二包括如下步骤:
步骤二十一:使用C语言定义基本数据格式;
步骤二十二:根据用户输入的数据结构信息,创建接口函数C文件;
步骤二十三:定义通用的函数指针,处理数据包的解析和组合;并提供外部访问接口;
步骤二十四:创建解包和组包函数文件,包含数据包的解析方法和组合方法;用户自定义的解析和组包函数也进行相应的调用处理;确保按照自定义数据结构处理相关数据包;
步骤二十五:根据配置生成代码文件后,通过编译器进行编译生成dll并进行验证;如编译发生错误,则用户根据反馈信息进行相关的配置修改;
步骤二十六:在配置无误后,自动将解包和组包的方法设置到对应的函数接口,保证通信时的正常调用。
优选地,所述步骤三包括如下步骤:
步骤三十一:数据处理脚本定义;
数据处理的脚本根据用户所采用的编程语言进行编写;允许简单的条件分支和四则运算以及三角函数运算;软件提供函数名称接口,用户根据需要在数据处理的函数接口中编写自己的脚本逻辑;
步骤三十二:根据用户定义的数据结构,修改需要进行数据处理的参数;相关参数的定义是由用户在步骤一中创建,并生成的结构体定义文件,用于在数据处理时使用;
步骤三十三:根据定义的结构体函数,由用户进行相关数据包内的数据处理,并提供修改脚本,支持创建多个脚本;结构体文件中记录有用户定义的数据结构,用户可直接对其中的参数进行修改;在脚本修改完毕后,通过编译器即时编译链接生成DLL文件;期间如果软件会显示脚本编译是否出错;如果出错,则会将错误信息写到输出窗口中,并提示用户修改代码,直到生成正确的DLL文件;
步骤三十四:使用程序调用函数将所有的脚本文件对应的DLL加载到程序内存中;调用函数获取每一个DLL中的数据处理函数的地址;如果函数执行失败,则提示异常信息;
步骤三十五:在软件运行时,操作切换当前的数据处理脚本;在下一次数据收到后,使用新的脚本进行数据处理。
优选地,所述步骤四包括如下步骤:
步骤四十一:定义通用数据的组包函数;
步骤四十二:特殊数据变量的组包函数调用其设定的dll中的函数进行处理;
步骤四十三:获取当前数据结构中的信息,根据通信协议进行组包操作;
步骤四十四:将组织好的数据包进行发送,完成数据处理操作。
优选地,所述数据变量分为结构体和普通数据变量。
与现有技术相比,本发明具有如下的有益效果:(1)本发明实现了通信协议的动态可配置,参数的解析和组包方法的自定义;(2)本发明实现了数据处理的即时修改,可在运行期间修改数据结构的参数;(3)本发明实现了数据处理脚本的动态切换,可在运行时在不同的脚本间进行切换,达到不同的数据处理目的和组合方式;(4)动态配置编程方法大大降低了通信协议等变更时,再次进行软件的开发的工作量;(5)动态配置编程方法以动态加载dll的方式,实现了通信协议的灵活配置,数据处理参数和方式的可变更性。(6)动态配置编程方法基于数据结构处理,改变了以往处理数据流的通信方式。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明动态配置编程方法的流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
如图1所示,本发明动态配置编程方法包括以下步骤:
步骤一:动态的配置数据格式和解析;
步骤二:将配置的数据格式转换成某种脚本语言;
步骤三:在接收到的数据之后,按照用户配置的数据结构进行解析,在解析之后的数据上轻松的实现数据处理;
步骤四:将处理后的数据按照解析方法再进行打包,传输出去。
其中,步骤一包括如下步骤:
步骤一十一:数据包格式定义;数据包由数据变量组成。数据变量分为结构体和普通数据变量。用户通过自定义数据变量来实现通信协议数据包的定义。
变量配置信息主要包含变量名、注释、类型、结构体名称、偏移量、字节数、数据类型配置等。将普通数据类型划分为通用数据、CRC校验数据、自定义数据三类。数据区分大端数据和小端数据。通用数据主要是基础的数据,区分为有符号和无符号,配置时可能还有系数的配置。CRC数据主要是各类校验数据,分CRC、CRC校验和、CRC校验和取低八位、自定义CRC校验类型等。
步骤一十二:解包方法和组包方法定义;
解包和组包方法有默认解析和组合方法,也可以通过dll自定义解包函数和组包函数,在软件运行时,动态加载相关函数进行处理。
步骤一十三:用户根据其通信协议,配置其数据格式,以及验证配置的数据格式。
步骤一十四:将用户数据配置信息保存为xml文件,包含数据的基本定义信息,便于更新其定义的数据配置结构。
其中,步骤二包括如下步骤:
步骤二十一:使用C语言定义基本数据格式;
步骤二十二:根据用户输入的数据结构信息,创建接口函数C文件;
步骤二十三:定义通用的函数指针,处理数据包的解析和组合。并提供外部访问接口;
步骤二十四:创建解包和组包函数文件,包含数据包的解析方法和组合方法;用户自定义的解析和组包函数也进行相应的调用处理;确保按照自定义数据结构处理相关数据包;
步骤二十五:根据配置生成代码文件后,通过编译器进行编译生成dll并进行验证;如编译发生错误,则用户根据反馈信息进行相关的配置修改;
步骤二十六:在配置无误后,自动将解包和组包的方法设置到对应的函数接口,保证通信时的正常调用。
其中,步骤三包括如下步骤:
步骤三十一:数据处理脚本定义;
数据处理的脚本根据用户所采用的编程语言进行编写。允许简单的条件分支和四则运算以及三角函数运算。软件提供函数名称接口,用户根据需要在数据处理的函数接口中编写自己的脚本逻辑。
步骤三十二:根据用户定义的数据结构,修改需要进行数据处理的参数;相关参数的定义是由用户在步骤一中创建,并生成的结构体定义文件,用于在数据处理时使用。
步骤三十三:根据定义的结构体函数,由用户进行相关数据包内的数据处理,并提供修改脚本,支持创建多个脚本。结构体文件中记录有用户定义的数据结构,用户可直接对其中的参数进行修改。在脚本修改完毕后,通过编译器即时编译链接生成DLL文件。期间如果软件会显示脚本编译是否出错。如果出错,则会将错误信息写到输出窗口中,并提示用户修改代码,直到生成正确的DLL文件。
步骤三十四:使用程序调用函数将所有的脚本文件对应的DLL加载到程序内存中。调用函数获取每一个DLL中的数据处理函数的地址。如果函数执行失败,则提示异常信息。
步骤三十五:在软件运行时,也可以操作切换当前的数据处理脚本。在下一次数据收到后,使用新的脚本进行数据处理。
其中,步骤四包括如下步骤:
步骤四十一:定义通用数据的组包函数。
步骤四十二:特殊数据变量的组包函数调用其设定的dll中的函数进行处理。
步骤四十三:获取当前数据结构中的信息,根据通信协议进行组包操作。
步骤四十四:将组织好的数据包进行发送,完成数据处理操作。
本发明通过可配置的方式来实现故障注入的脚本。首先,允许动态的配置数据格式和解析方法。其次,将配置的数据格式转换成某种脚本语言。再次,在接收到的数据之后,按照用户配置的数据结构进行解析,在解析之后的数据上轻松的实现数据处理。最后,将处理后的数据按照用户定义的组包方法,传输出去。通过动态配置编程技术来实现故障注入系统的通信部分的处理,使得协议变更时,仅需要变更通信协议配置文件,重新定义数据包的格式,对数据包的各个字段设置其常规的解析方法,对于特殊定义或需要特殊解析的函数,可以通过导入组包和解包方法。在软件运行时,动态加载通信协议配置文件和组包解包方法,从而实现了通信协议变更,但通信模块的不需要关心实际的通信数据包的格式,仅关注于数据的收发,从而实现了通信的透明传输。动态配置编程技术并不局限于仿真系统的使用,在所有基于通信协议的模块,均可通过该方式来实现数据包格式的定义。它不仅有利于通信模块的扩展,也有利于延长软件的使用周期,也有利于快速完成系统故障注入的仿真等。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (6)

1.一种动态配置编程方法,其特征在于,包括以下步骤:
步骤一:动态的配置数据格式和解析;
步骤二:将配置的数据格式转换成某种脚本语言;
步骤三:在接收到的数据之后,按照用户配置的数据结构进行解析,在解析之后的数据上轻松的实现数据处理;
步骤四:将处理后的数据按照解析方法再进行打包,传输出去。
2.根据权利要求1所述的动态配置编程方法,其特征在于,所述步骤一包括如下步骤:
步骤一十一:数据包格式定义;数据包由数据变量组成;
步骤一十二:解包方法和组包方法定义;
步骤一十三:用户根据其通信协议,配置其数据格式,以及验证配置的数据格式;
步骤一十四:将用户数据配置信息保存为xml文件,包含数据的基本定义信息,便于更新其定义的数据配置结构。
3.根据权利要求1所述的动态配置编程方法,其特征在于,所述步骤二包括如下步骤:
步骤二十一:使用C语言定义基本数据格式;
步骤二十二:根据用户输入的数据结构信息,创建接口函数C文件;
步骤二十三:定义通用的函数指针,处理数据包的解析和组合;并提供外部访问接口;
步骤二十四:创建解包和组包函数文件,包含数据包的解析方法和组合方法;用户自定义的解析和组包函数也进行相应的调用处理;确保按照自定义数据结构处理相关数据包;
步骤二十五:根据配置生成代码文件后,通过编译器进行编译生成dll并进行验证;如编译发生错误,则用户根据反馈信息进行相关的配置修改;
步骤二十六:在配置无误后,自动将解包和组包的方法设置到对应的函数接口,保证通信时的正常调用。
4.根据权利要求1所述的动态配置编程方法,其特征在于,所述步骤三包括如下步骤:
步骤三十一:数据处理脚本定义;
数据处理的脚本根据用户所采用的编程语言进行编写;允许简单的条件分支和四则运算以及三角函数运算;软件提供函数名称接口,用户根据需要在数据处理的函数接口中编写自己的脚本逻辑;
步骤三十二:根据用户定义的数据结构,修改需要进行数据处理的参数;相关参数的定义是由用户在步骤一中创建,并生成的结构体定义文件,用于在数据处理时使用;
步骤三十三:根据定义的结构体函数,由用户进行相关数据包内的数据处理,并提供修改脚本,支持创建多个脚本;结构体文件中记录有用户定义的数据结构,用户可直接对其中的参数进行修改;在脚本修改完毕后,通过编译器即时编译链接生成DLL文件;期间如果软件会显示脚本编译是否出错;如果出错,则会将错误信息写到输出窗口中,并提示用户修改代码,直到生成正确的DLL文件;
步骤三十四:使用程序调用函数将所有的脚本文件对应的DLL加载到程序内存中;调用函数获取每一个DLL中的数据处理函数的地址;如果函数执行失败,则提示异常信息;
步骤三十五:在软件运行时,操作切换当前的数据处理脚本;在下一次数据收到后,使用新的脚本进行数据处理。
5.根据权利要求1所述的动态配置编程方法,其特征在于,所述步骤四包括如下步骤:
步骤四十一:定义通用数据的组包函数;
步骤四十二:特殊数据变量的组包函数调用其设定的dll中的函数进行处理;
步骤四十三:获取当前数据结构中的信息,根据通信协议进行组包操作;
步骤四十四:将组织好的数据包进行发送,完成数据处理操作。
6.根据权利要求1所述的动态配置编程方法,其特征在于,所述数据变量分为结构体和普通数据变量。
CN201610712344.4A 2016-08-23 2016-08-23 动态配置编程方法 Active CN106339249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610712344.4A CN106339249B (zh) 2016-08-23 2016-08-23 动态配置编程方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610712344.4A CN106339249B (zh) 2016-08-23 2016-08-23 动态配置编程方法

Publications (2)

Publication Number Publication Date
CN106339249A true CN106339249A (zh) 2017-01-18
CN106339249B CN106339249B (zh) 2019-09-27

Family

ID=57824637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610712344.4A Active CN106339249B (zh) 2016-08-23 2016-08-23 动态配置编程方法

Country Status (1)

Country Link
CN (1) CN106339249B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108141464A (zh) * 2017-03-15 2018-06-08 深圳中兴力维技术有限公司 一种通信协议解析代码自动生成方法及系统
CN109634681A (zh) * 2018-11-15 2019-04-16 福建星云电子股份有限公司 一种向制造执行系统上传数据的方法及装置
CN111488631A (zh) * 2020-06-28 2020-08-04 中国核动力研究设计院 一种核级安全显示装置及其组态-解析系统
CN112532991A (zh) * 2020-10-28 2021-03-19 惠州华阳通用电子有限公司 一种作用于rmff格式文件的硬件解码方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944025A (zh) * 2010-09-16 2011-01-12 福建鑫诺通讯技术有限公司 基于python语言的tcp/udp数据的自动组包与解包的方法
CN102868648A (zh) * 2012-09-27 2013-01-09 瑞斯康达科技发展股份有限公司 一种进行数据传输的方法、从设备和系统
CN104660460A (zh) * 2015-01-15 2015-05-27 北京奥普维尔科技有限公司 一种测试以太网性能的系统及方法
US20150229657A1 (en) * 2007-09-19 2015-08-13 Trend Micro Incorporated Method and system for dynamic protocol decoding and analysis
CN105187258A (zh) * 2015-09-30 2015-12-23 北京英诺威尔科技股份有限公司 一种可配置的Trap告警解析处理方法
CN105573760A (zh) * 2015-12-16 2016-05-11 南京邮电大学 基于storm的物联网数据处理系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150229657A1 (en) * 2007-09-19 2015-08-13 Trend Micro Incorporated Method and system for dynamic protocol decoding and analysis
CN101944025A (zh) * 2010-09-16 2011-01-12 福建鑫诺通讯技术有限公司 基于python语言的tcp/udp数据的自动组包与解包的方法
CN102868648A (zh) * 2012-09-27 2013-01-09 瑞斯康达科技发展股份有限公司 一种进行数据传输的方法、从设备和系统
CN104660460A (zh) * 2015-01-15 2015-05-27 北京奥普维尔科技有限公司 一种测试以太网性能的系统及方法
CN105187258A (zh) * 2015-09-30 2015-12-23 北京英诺威尔科技股份有限公司 一种可配置的Trap告警解析处理方法
CN105573760A (zh) * 2015-12-16 2016-05-11 南京邮电大学 基于storm的物联网数据处理系统及方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108141464A (zh) * 2017-03-15 2018-06-08 深圳中兴力维技术有限公司 一种通信协议解析代码自动生成方法及系统
WO2018165902A1 (zh) * 2017-03-15 2018-09-20 深圳中兴力维技术有限公司 一种通信协议解析代码自动生成方法及系统
CN108141464B (zh) * 2017-03-15 2019-04-05 深圳力维智联技术有限公司 一种通信协议解析代码自动生成方法及系统
CN109634681A (zh) * 2018-11-15 2019-04-16 福建星云电子股份有限公司 一种向制造执行系统上传数据的方法及装置
CN109634681B (zh) * 2018-11-15 2021-08-27 福建星云电子股份有限公司 一种向制造执行系统上传数据的方法及装置
CN111488631A (zh) * 2020-06-28 2020-08-04 中国核动力研究设计院 一种核级安全显示装置及其组态-解析系统
CN112532991A (zh) * 2020-10-28 2021-03-19 惠州华阳通用电子有限公司 一种作用于rmff格式文件的硬件解码方法

Also Published As

Publication number Publication date
CN106339249B (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN110096338B (zh) 智能合约执行方法、装置、设备及介质
JP7317722B2 (ja) ブロックチェーンコンパイラ
Nelson et al. Specification and verification in the field: Applying formal methods to {BPF} just-in-time compilers in the linux kernel
US9697109B2 (en) Dynamically configurable test doubles for software testing and validation
CN106339249A (zh) 动态配置编程方法
CN106844153B (zh) 应用程序运行监控方法、装置以及终端
CN112905447B (zh) 一种区块链虚拟机的测试方法和系统
CN105975816A (zh) 移动终端下基于虚拟技术的代码保护方法及系统
CN109598107A (zh) 一种基于应用安装包文件的代码转换方法及装置
CN110825386A (zh) 代码的编译方法和装置、存储介质
CN110069259A (zh) 基于idl文件的解析方法、装置、电子设备和存储介质
CN108846264A (zh) 代码加固方法、装置、智能终端和计算机可读存储介质
CN106960141A (zh) 虚拟机指令的编码、解码方法及装置、虚拟机保护系统
CN118283148B (zh) 一种跨平台应用层协议解析器自动生成方法及装置
EP2626784A1 (en) Method and apparatus for automated MATLAB interfacing
CN114327477A (zh) 智能合约执行方法、装置、电子装置和存储介质
CN104423986B (zh) 一种应用系统内嵌脚本的方法和装置
CN105511935A (zh) 资源索引值的获取方法及装置
US20020066091A1 (en) Interpreter
Dardaillon et al. A new compilation flow for software-defined radio applications on heterogeneous MPSoCs
CN104751026B (zh) 安卓系统的软件保护方法、软件应用方法及相关装置
CN109542447B (zh) 一种otx程序文件执行方法及装置
CN103678114B (zh) 产生断言的设备和方法以及验证处理器的设备和方法
CN116243923A (zh) 一种小程序处理方法、装置及电子设备
CN109213491A (zh) NB-IoT通信模组的二次开发方法、装置及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 201203 Shanghai City, Pudong New Area Chinese (Shanghai) free trade zone 498 GuoShouJing Road No. 14 building block 22301-985

Applicant after: VISION MICROSYSTEMS (SHANGHAI) Co.,Ltd.

Address before: Shanghai City, Pudong New Area Jing Road 201203 Shanghai Free Trade Zone No. 498 building 14 block 22301-985

Applicant before: VISION MICROSYSTEMS (SHANGHAI) CO.,LTD.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: Block 22301-985, Building 14, No. 498 Guo Shoujing Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, March 2012

Patentee after: Shanghai Chuangjing Information Technology Co.,Ltd.

Country or region after: China

Address before: Block 22301-985, Building 14, No. 498 Guo Shoujing Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, March 2012

Patentee before: VISION MICROSYSTEMS (SHANGHAI) Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address