CN105335153A - 一种自动生成动态脚本的方法 - Google Patents
一种自动生成动态脚本的方法 Download PDFInfo
- Publication number
- CN105335153A CN105335153A CN201510656465.7A CN201510656465A CN105335153A CN 105335153 A CN105335153 A CN 105335153A CN 201510656465 A CN201510656465 A CN 201510656465A CN 105335153 A CN105335153 A CN 105335153A
- Authority
- CN
- China
- Prior art keywords
- function
- value
- script
- dynamic script
- communication protocol
- 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.)
- Pending
Links
Abstract
本发明公开了一种自动生成动态脚本的方法,其特征在于,包括如下步骤:步骤一:获取设备的通讯协议;步骤二:对设备的通讯协议进行描述;步骤三:根据对通讯协议描述的内容,生成对应的关系表;步骤四:根据关系表,自动生成动态脚本。本发明根据设备的通信协议将设备的功能进行描述,描述信息产生的关系表可以自动生成脚本,用于处理标准控制指令的解析和处理。这样就只需要完成描述的操作,描述工作的出错概率远远低于脚本开发。
Description
技术领域
本发明涉及一种生产脚本的方法,具体涉及一种自动生成动态脚本的方法,本发明属于软件设计领域。
背景技术
目前市面上出现了越来越多的智能化产品,如电视、空调、空气净化器、门铃等等产品都接入了互联网。通过手机或电脑可以将这些产品的控制变得更加的方便和快捷,给用户的生活方式带来极大的改变。
对于软件开发者而言,软件的变化肯定是越少越好,越少越稳定,所以会对控制指令进行相应的标准化,通过动态脚本的方式将这些指令转换成设备所需的通信数据,新增产品后仅需开发动态脚本就可以直接控制设备,而不需要通过升级应用等操作来达到这一目的,但是脚本开发也需要耗费很大的经历,并且脚本的开发容易出错,且调试相对麻烦,需要上传脚本,通过APP下载,最后进行测试。可见,现有技术对脚本的开发仍然缺乏有效地解决方法。
申请人检索了与现有技术,其中中国申请CN200680020628.1,申请人为松下电器产业株式会社的专利《脚本生成装置、脚本生成方法以及脚本生成程序》,根据对动画制作不具有特别的知识的用户所制作的文本句子,也能够自动生成脚本的脚本生成装置,所述脚本用于生成用户期望的表现丰富的动画。脚本生成单元根据用户输入句子生成脚本;脚本编辑单元利用由外界信息获取单元获取了的外界信息,以从所生成的脚本的用语想出的信息来编辑脚本。也就是说,脚本生成装置识别应追加到用户所制作的文本句子的信息,利用从用户持有的设备或存在于可通信的范围内的设备获取了的外界信息,将信息追加到脚本。由此,即使用户不具有特别的知识,也能够生成用于实现与用户所意图的形式相近的表现的动画的脚本。但是,此专利其输入的是文本句子,与控制指令不同。
中国申请CN201410444553.6,申请人为武汉烽火网络有限责任公司的专利《图形化脚本编辑器及快速开发通信设备测试脚本的方法》公开了一种图形化脚本编辑器及快速开发通信设备测试脚本的方法,涉及图形化界面开发领域,该图形化脚本编辑器包括函数信息文件库形成单元、函数自动加载单元、函数树生成单元、树形结构显示单元、函数赋值单元、个性化图形界面显示单元和脚本开发单元。在整个通信设备测试脚本的编写过程中,开发人员只需按照图形化界面的提示完成通信设备测试脚本参数的输入,无需了解编写语法与书写格式,就能完成通信设备测试脚本的无错开发。但是此技术仍然需要开发人员进行脚本参数的输入,其不能实现自动生成。
发明内容
为解决现有技术的不足,本发明的目的在于提供一种自动生成动态脚本的方法,以解决现有技术难以对脚本开发容易出错,调试麻烦的技术问题。
为了实现上述目标,本发明采用如下的技术方案:
一种自动生成动态脚本的方法,其特征在于,包括如下步骤:
步骤一:获取设备的通讯协议;
步骤二:对设备的通讯协议进行描述;
步骤三:根据对通讯协议描述的内容,生成对应的关系表;
步骤四:根据关系表,自动生成动态脚本。
前述的一种自动生成动态脚本的方法,其特征在于,所述步骤二包括:对通讯协议中数据区的每个数据位进行说明。
前述的一种自动生成动态脚本的方法,其特征在于,分别对通讯协议中数据的类型、长度、数值进行说明。
前述的一种自动生成动态脚本的方法,其特征在于,所述步骤三中对通讯协议描述的内容包括:根据描述的内容得知设备具有的功能数量,每个功能的名称,每个功能的值对应于数据区的起始位和结束位,数据值的类型,通信协议的数据区的长度。
前述的一种自动生成动态脚本的方法,其特征在于,数据值的类型包括枚举值、连续型。
前述的一种自动生成动态脚本的方法,其特征在于,所述步骤四包括:
步骤4a:查找每一个功能所对应的通信协议的起始位和结束位;
步骤4b:查找到每个功能的值类型;
步骤4c:若功能的为枚举类型,则查找到对应功能的所有枚举值,若功能为连续值,则设置相对应的真实值;
步骤4d:根据标准格式的控制指令还原出通信数据。
本发明的有益之处在于:本发明根据设备的通信协议将设备的功能进行描述,描述信息产生的关系表可以自动生成脚本,用于处理标准控制指令的解析和处理。这样就只需要完成描述的操作,描述工作的出错概率远远低于脚本开发。
附图说明
图1是本发明一种自动生成动态脚本的方法的流程图;
图2是本发明一种自动生成动态脚本的方法中步骤四的展开流程图。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
参照图1所示,本发明给出了一种自动生成动态脚本的方法的流程图。其总的思路是:根据设备的通信协议将设备的功能进行描述,描述信息产生的关系表可以自动生成脚本,用于处理标准控制指令的解析和处理。本实施例将针对该流程图展开说明。图1中流程包括四步骤。
步骤一:获取设备的通讯协议。本发明不限制设备的类型,其可以是市面上各种智能化产品,如电视、空调、空气净化器、门铃等等。本发明也不限制通讯协议的具体格式。通讯协议中一般包括数据区。数据区由多个数据位组成。
步骤二:对设备的通讯协议进行描述。该步是实现动态生成脚本的关键,针对通讯协议中的每个数据位进行说明,进一步,分别对通讯协议中数据的类型、长度、数值进行说明。通讯协议中往往涉及到两种类型的数据:枚举型和连续型。更经常只涉及枚举型和连续型这两种类型。例如第1位到第8位所占用的一个字节表示设备当前的开关状态,开关的值类型属于枚举值,取值范围为[0,1],第9位到第17位所占用的9个数据位表示设备当前的温度,温度的值属于连续型,最小值为1,最大值为100,步长为1,倍数为1。再加上通讯协议的数据长度。
下面举例说明。例如:一个设备的通信协议长度为4个字节,具有两个功能:开关(pwr)和温度(temp).其中pwr在通信协议中占用的始末位为bit0-bit7,为枚举类型的值,值分别为1和2,temp在通信协议中占用的始末位为bit8-bit23,为连续类型的值,最小值为1,最大值为1000,步长为1,倍数也为1。可以生成以下规则说明,以JSON表述为例,给出一个示例的程序码,从中可以更加直观得知对设备的通讯协议进行描述的过程,每一行程序代码中,“//”表示的是对左侧程序代码的文字说明,本领域技术人员可以根据JSON表述的通用规则对程序其他部分进行解读:
{
“protocol_len”:4,//通信协议的长度
“dev_func”:[//功能列表
{
“name”:“pwr”,//功能名称
“start”:0,//占用位的起始位
“end”:7,//占用位的结束位
“val_type”:0,//0:枚举1:连续
“val”:[1,2]//枚举值
},
{
“name”:“temp”,//功能名称
“start”:8,//起始位
“end”:23,//结束位
“val_type”:1,//连续类型
“val”:{
“min”:1,//最小值
“max”:1000,//最大值
“step”:1,//连续值的步长
“multiple”:1//值的倍数
}
}
]
}
步骤三:根据对通讯协议描述的内容,生成对应的关系表。这一步骤中,对通讯协议描述的内容包括:根据描述的内容得知设备具有的功能数量,每个功能的名称,每个功能的值对应于数据区的起始位和结束位,数据值的类型,通信协议的数据区的长度。由此,描述的内容可以知道设备总共有多少个功能,每个功能的名称,每个功能的值对应于数据区的起始位和结束位,值的类型是枚举型还是连续型,通信协议的数据区总共有多长。这样就有了生成脚本的关系表。
按步骤1的例子,可以生成如下关系表,这里生成的动态脚本以lua为例进行阐述,“--”表示的是对左侧程序代码的文字说明,本领域技术人员可以根据JSON表述的通用规则对程序列出的其他部分进行解读::
localg_len=4--设备的通信协议长度
localg_func={}
localg_pos={}
localg_enumval={}
g_func[1]={}
g_func[1][“name”]=“pwr”--功能1的名称
g_func[1][“type”]=0--功能1的值类型为枚举值
g_enumval[1]={}
g_enumval[1][1]=1--功能1第一个枚举值
g_enumval[1][2]=2--功能1第二个枚举值
g_func[2]={}
g_func[2][“name”]=“temp”--功能2的名称
g_func[2][“type]=1--功能2的值类型为连续值
g_func[2][“min”]=1--功能2的最小值
g_func[2][“max”]=1000--功能2的最大值
g_func[2][“step”]=1--功能2的步长
g_func[2][“multiple”]=1--功能2的值倍数
g_pos[1]={}
g_pos[1][“start”]=0--功能1的起始BIT位
g_pos[1][“end”]=7--功能1的结束BIT位
g_pos[2]={}
g_pos[2][“start”]=8--功能2的起始BIT位
g_pos[2][“end”]=23--功能2的结束BIT位
步骤四:根据关系表,自动生成动态脚本。这一步是生成动态脚本的最后一步,其生成的脚本可以对设备进行控制。具体来说,包括如下步骤,在分步骤说明时,本发明也将结合上述步骤一至步骤三给出的程序实例进行说明:
步骤4a:查找每一个功能所对应的通信协议的起始位和结束位,结合实例来说,就是以g_pos为主入口,查找每一个功能所对应的通信协议的始末bit位;
步骤4b:查找到每个功能的值类型,结合实例来说,通过g_func可以查找到对应的功能的值类型;
步骤4c:若功能的为枚举类型,则查找到对应功能的所有枚举值,若功能为连续值,则设置相对应的真实值,结合实例来说,若为枚举类型,则可以通过g_enumval查找到对应的功能的所有枚举值,若为连续值,则可以通过g_func所对应的功能的min/max/step/multiple来设置相对应的真实值;
步骤4d:根据标准格式的控制指令还原出通信数据,依上述例子为样本:设置{“pwr”:0,“temp”:200},就可以根据脚本换算出通信协议数据(16进制字符串表示):00C80000。
需要说明的是,本发明流程实际实现的方式除了以JSON表述外,xml、protocolbuffer、AData、MGen等形式亦可。本领域技术人员可以根据实际需要进行选择。
由此可见,本发明根据设备的通信协议将设备的功能进行描述,描述信息产生的关系表可以自动生成脚本,用于处理标准控制指令的解析和处理。这样就只需要完成描述的操作,描述工作的出错概率远远低于脚本开发。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (6)
1.一种自动生成动态脚本的方法,其特征在于,包括如下步骤:
步骤一:获取设备的通讯协议;
步骤二:对设备的通讯协议进行描述;
步骤三:根据对通讯协议描述的内容,生成对应的关系表;
步骤四:根据关系表,自动生成动态脚本。
2.根据权利要求1所述的一种自动生成动态脚本的方法,其特征在于,所述步骤二包括:对通讯协议中数据区的每个数据位进行说明。
3.根据权利要求2所述的一种自动生成动态脚本的方法,其特征在于,分别对通讯协议中数据的类型、长度、数值进行说明。
4.根据权利要求3所述的一种自动生成动态脚本的方法,其特征在于,所述步骤三中对通讯协议描述的内容包括:根据描述的内容得知设备具有的功能数量,每个功能的名称,每个功能的值对应于数据区的起始位和结束位,数据值的类型,通信协议的数据区的长度。
5.根据权利要求4所述的一种自动生成动态脚本的方法,其特征在于,数据值的类型包括枚举值、连续型。
6.根据权利要求5所述的一种自动生成动态脚本的方法,其特征在于,所述步骤四包括:
步骤4a:查找每一个功能所对应的通信协议的起始位和结束位;
步骤4b:查找到每个功能的值类型;
步骤4c:若功能的为枚举类型,则查找到对应功能的所有枚举值,若功能为连续值,则设置相对应的真实值;
步骤4d:根据标准格式的控制指令还原出通信数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510656465.7A CN105335153A (zh) | 2015-10-12 | 2015-10-12 | 一种自动生成动态脚本的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510656465.7A CN105335153A (zh) | 2015-10-12 | 2015-10-12 | 一种自动生成动态脚本的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105335153A true CN105335153A (zh) | 2016-02-17 |
Family
ID=55285720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510656465.7A Pending CN105335153A (zh) | 2015-10-12 | 2015-10-12 | 一种自动生成动态脚本的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335153A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897528A (zh) * | 2016-05-30 | 2016-08-24 | 宁波方太厨具有限公司 | 一种智能家居设备间的联动控制方法 |
CN106843836A (zh) * | 2016-12-21 | 2017-06-13 | 北京致远互联软件股份有限公司 | 动态表单的高级控件实现方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010047402A1 (en) * | 2000-03-30 | 2001-11-29 | Akihiro Saimi | Method for developing web applications, development support system, and storage medium for storing programs developed according to the method |
CN101370003A (zh) * | 2007-08-14 | 2009-02-18 | 大唐移动通信设备有限公司 | 用于定制通讯协议的方法和装置、转换通讯协议描述的方法和装置 |
CN101645010A (zh) * | 2009-08-20 | 2010-02-10 | 深圳市珍爱网信息技术有限公司 | 代码自动生成系统及方法 |
CN102306102A (zh) * | 2011-08-25 | 2012-01-04 | 中兴通讯股份有限公司 | 程序文件自动生成方法及装置 |
CN102622234A (zh) * | 2012-03-07 | 2012-08-01 | 迈普通信技术股份有限公司 | 一种自动化测试用例的开发系统及开发方法 |
-
2015
- 2015-10-12 CN CN201510656465.7A patent/CN105335153A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010047402A1 (en) * | 2000-03-30 | 2001-11-29 | Akihiro Saimi | Method for developing web applications, development support system, and storage medium for storing programs developed according to the method |
CN101370003A (zh) * | 2007-08-14 | 2009-02-18 | 大唐移动通信设备有限公司 | 用于定制通讯协议的方法和装置、转换通讯协议描述的方法和装置 |
CN101645010A (zh) * | 2009-08-20 | 2010-02-10 | 深圳市珍爱网信息技术有限公司 | 代码自动生成系统及方法 |
CN102306102A (zh) * | 2011-08-25 | 2012-01-04 | 中兴通讯股份有限公司 | 程序文件自动生成方法及装置 |
CN102622234A (zh) * | 2012-03-07 | 2012-08-01 | 迈普通信技术股份有限公司 | 一种自动化测试用例的开发系统及开发方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897528A (zh) * | 2016-05-30 | 2016-08-24 | 宁波方太厨具有限公司 | 一种智能家居设备间的联动控制方法 |
CN106843836A (zh) * | 2016-12-21 | 2017-06-13 | 北京致远互联软件股份有限公司 | 动态表单的高级控件实现方法、装置及系统 |
CN106843836B (zh) * | 2016-12-21 | 2020-02-07 | 北京致远互联软件股份有限公司 | 动态表单的高级控件实现方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3217283B1 (en) | Multi-module compilation system, multi-module compilation method, and non-transitory computer-readable storage medium | |
CN108351636B (zh) | 工程设计工具、系统及模块 | |
EP3217279A1 (en) | Module system, module-based robot system, and update method for module system | |
EP1906275B1 (en) | Natively retaining project documentation in a controller | |
JP2021197153A (ja) | ワードスロットを識別するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム | |
CN111208995A (zh) | Ibm主机作业的自动生成方法、系统、装置及存储介质 | |
CN110769002A (zh) | 基于LabVIEW的报文解析方法、系统、电子设备和介质 | |
CN105335153A (zh) | 一种自动生成动态脚本的方法 | |
CN114090365A (zh) | 使用动态链接库进行功能测试的方法、装置和设备 | |
US8700374B1 (en) | System and method of using an active link in a state programming environment to locate an element in a graphical programming environment | |
CN112269566B (zh) | 脚本生成处理方法、装置、设备及系统 | |
CN104778071A (zh) | 智能规则多语言类型解释系统及其创建方法 | |
CN109542419B (zh) | 一种can信息处理软件开发的方法、系统及设备 | |
CN114579120A (zh) | 一种应用代码处理方法、装置、电子设备及存储介质 | |
US9665668B2 (en) | Configuring a dispatching rule for execution in a simulation | |
CN115809688A (zh) | 一种模型调试方法、装置、电子设备及存储介质 | |
CN114895884A (zh) | 一种终端设备rpa脚本的编写及执行方法、系统 | |
CN114756211A (zh) | 模型训练方法、装置、电子设备和存储介质 | |
CN115576265B (zh) | Plc设备模拟方法、装置、设备以及存储介质 | |
CN114816972A (zh) | 着色语言的测试方法、装置、电子设备以及存储介质 | |
CN107612919B (zh) | 协议配置方法及装置 | |
CN113949438B (zh) | 一种无人机通讯方法、装置、设备及存储介质 | |
KR102612934B1 (ko) | 트리 구조 정보 기반의 적층식 코드 자동 생성 시스템, 서버 및 방법 | |
CN117270838B (zh) | 一种通用公式脚本的生成方法、装置、设备及介质 | |
CN112947938B (zh) | 一种文件转化方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160217 |