CN111309309A - 基于设备的软件开发方法及其系统和装置 - Google Patents

基于设备的软件开发方法及其系统和装置 Download PDF

Info

Publication number
CN111309309A
CN111309309A CN202010126133.9A CN202010126133A CN111309309A CN 111309309 A CN111309309 A CN 111309309A CN 202010126133 A CN202010126133 A CN 202010126133A CN 111309309 A CN111309309 A CN 111309309A
Authority
CN
China
Prior art keywords
json
software development
configuration file
equipment
function
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
CN202010126133.9A
Other languages
English (en)
Other versions
CN111309309B (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.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information Technology 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 Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN202010126133.9A priority Critical patent/CN111309309B/zh
Publication of CN111309309A publication Critical patent/CN111309309A/zh
Application granted granted Critical
Publication of CN111309309B publication Critical patent/CN111309309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及软件开发技术领域,尤其涉及基于设备的软件开发方法及其系统和装置。基于设备的软件开发方法,包括以下步骤:构建对应所述设备功能的json配置文件;对所述json配置文件中的功能配置项进行选择,得到对应特定设备的json配置文件;所述特定设备的json配置文件的功能配置信息在输出执行程序中被相应的变量引用。本发明通过json配置文件编译输出固件的产品开发方式,可以大大的缩短开发的时间,所有的设备的产品开发都基于同一套框架和代码,后续功能的迭代或bug修复变得更容易,修改文件和代码数量最少,人为因素导致出错的概率最低,开发和修复bug效率高。

Description

基于设备的软件开发方法及其系统和装置
技术领域
本发明涉及软件开发技术领域,尤其涉及基于设备的软件开发方法及其系统和装置。
背景技术
在zigbee技术的应用中,会有各种各样的开关品类设备的需求定制和产品开发。开发人员根据特定的需求,创建对应的zigbee开关品类的设备工程,进行开关品类设备的功能开发。开发完成的合格的zigbee开关品类设备的产品,接入zigbee网关,配合手机app应用,可以操作和控制zigbee开关品类设备;同时可以创建多种应用场景和联动,增强用户的体验感和沉浸感。
目前基于zigbee技术开发的开关品类设备的应用,正在逐渐的进入寻常百姓的家,让人们体验万物互联的便捷智能生活。
在zigbee开关品类设备的产品开发中,研发根据需求进行功能开发。需求多种多样,每个需求的更改,研发都需要重新修改和开发代码,并输出固件。每一款zigbee开关产品,需要一个工程代码去开发和维护。
在开发过程中,产品需求的变更,需要对产品的工程代码进行相应的开发和修改。需求越来越多,相同品类、功能类似的产品数量越来越多,代码没有做到使用同一套框架和功能可配置,那么,需要维护的代码工程也越来越多。当需要对所有产品进行功能需求迭代或bug修复的时候,开发人员需要进入对应产品工程的分支修改代码,之后编译输出固件。
每次功能需求迭代或bug修复,都要重复上述操作。整个过程,过多的人为操作和重复劳动,开发和维护的成本、出错的机率也会增加,产品质量的保证,受到了越来越大的挑战。
发明内容
本发明的目的在于提供一种基于设备的软件开发方法及其系统和装置,通过json配置文件编译输出固件的产品开发方式,可以大大的缩短开发的时间,所有的设备的产品开发都基于同一套框架和代码,后续功能的迭代或bug修复变得更容易,修改文件和代码数量最少,人为因素导致出错的概率最低,开发和修复bug效率高。
为实现上述目的,本发明第一方面的技术方案提供了基于设备的软件开发方法,包括以下步骤:
构建对应所述设备功能的json配置文件;
对所述json配置文件中的功能配置项进行选择,得到对应特定设备的json配置文件;
所述特定设备的json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
在一些可能的实施方式中,所述json配置文件通过解析成宏定义而在输出执行程序中被相应的变量引用。
在一些可能的实施方式中,所述宏定义生成到在执行程序中被相应的变量引用的头文件中,而使得所述json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
在一些可能的实施方式中,所述设备为开关品类设备。
在一些可能的实施方式中,所述设备为基于zigbee的开关品类设备。
本发明第二方面的技术方案提供了基于设备的软件开发系统,包括:
建库单元,用于构建对应所述设备功能的json配置文件;
配置单元,用于对所述json配置文件中的功能配置项进行选择,得到对应特定设备的json配置文件;
输出单元,用于所述特定设备的json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
在一些可能的实施方式中,所述软件开发系统还包括解析单元,用于所述json配置文件解析成宏定义。
在一些可能的实施方式中,所述软件开发系统还包括生成单元,用于所述宏定义生成到在执行程序中被相应的变量引用的头文件中,而使得所述json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
本发明第三方面的技术方案提供了一种存储介质,用于存储可执行指令,所述可执行指令在被执行时实现上述的基于设备的软件开发方法的步骤。
本发明第四方面的技术方案提供了一种软件开发装置,含有上述的存储介质。
本发明与现有技术相比至少具有以下有益效果:
1、设备功能的添加,只需新增json配置文件的配置选项,并根据选项,在代码中实现对应的功能,缩短开发流程,提高开发效率。
2、同一品类的设备,采用同一套代码框架,后续功能的迭代或bug修复,变得更容易。
3、在软件维护中,一改全改,改完之后,重新编译输出各个固件就可以,实现一改全改的目的,减少工程维护成本。
4、设备功能能够做到可配置和可组合。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明实施方式中所涉及基于设备的软件开发方法的流程框图;
图2示出了本发明实施方式中所涉及另一种基于设备的软件开发方法的流程框图;
图3示出了本发明实施方式中所涉及另一种基于设备的软件开发方法的流程框图;
图4示出了本发明实施方式中所涉及的基于设备的控制系统的另一种结构框图;
图5示出了本发明实施方式中所涉及的基于设备的控制系统的另一种结构框图;
图6示出了本发明实施方式中所涉及的基于设备的控制系统的另一种结构框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。
产品数量庞大的情况下,后续一个简单的功能迭代或bug修复,投入的时间和人力成本都是非常巨大的。在软件开发过程中便捷的代码维护,并能减少维护错误率,对代码质量,并最终对产品的质量有着重要的影响。
如图1所示,本发明的实施例公开了一种基于设备的软件开发方法,包括以下步骤:
构建对应所述设备功能的json配置文件;
对所述json配置文件中的功能配置项进行选择,得到对应特定设备的json配置文件;
所述特定设备的json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
本发明实施例提供的基于设备的软件开发方法,通过构建对应设备功能的json配置文件,然后通过对其中的功能配置项进行选择,得到对应某个设备的json配置文件,该设备的json配置文件的功能配置信息在输出执行程序中被相应的变量引用。该方法通过json配置文件的功能配置项配置编译输出固件的产品开发方式,同一品类的设备,采用同一套代码框架,可以大大的缩短开发的时间。
本发明中设备功能的添加,只需新增json配置文件的配置选项,并根据选项,在代码中实现对应的功能,缩短开发流程,提高开发效率。
在软件维护中,一处改动,该品类的所有设备经过替换均进行了改动,实现一改全改的目的,减少工程维护成本。
如,100个开关均是通过json配置项编译生成的固件。若100个开关出现了一个bug,由于100个开关来源于同一份代码。修改一份代码后,修复了该bug,则替换剩余99份,剩余的99个开关的bug也就修复了。
本发明的实施例中,json配置文件中的设备功能包括很多种,如可以为以下中的任一种或多种:
a)设备的一些信息。
b)如果配置了串口,配置串口的发送和接收管脚和波特率等信息。
c)配置设备有几个endpoint(终端),对应每个endpoint的值。
d)配置的endpoint中有几个是场景开关,对应场景开关endpoint的值。
e)设备是线上OEM设备?线下OEM设备?配置项。
f)设备是开关?插座?带计量插座?场景开关?开关和场景混合开关设备?配置项。
g)如果开关有过零检测功能,延迟开启和延迟关闭继电器时间配置项。
h)操作继电器的时间间隔配置项。
i)复位时间配置项。
j)配网成功,指示灯亮?灭?配置项。
k)配网失败或超时,指示灯亮?灭?配置项。
l)led模式配置项。
m)复位按键ID配置项。
n)延迟打开和延迟关闭继电器功能配置项。
o)Led模式功能配置项。
p)上电继电器默认状态功能配置项。
q)首次上电,是否自动进入配网配置项。
r)离网之后,是否自动进入配网配置项。
s)按键IO管脚信息配置项。
t)总控按键IO管脚信息配置项。
u)过零检测IO管脚信息配置项。
v)Led指示灯IO管脚信息配置项。
w)总控Led指示灯IO管脚信息配置项。
x)配网灯IO管脚信息配置项。
y)背景灯IO管脚信息配置项。
z)继电器IO管脚信息配置项。
aa)其他IO管脚信息配置项。
json配置文件的各功能配置项的代码内容可以参照如下:
Figure BDA0002394427180000071
Figure BDA0002394427180000081
Figure BDA0002394427180000091
Figure BDA0002394427180000101
Figure BDA0002394427180000111
Figure BDA0002394427180000121
Figure BDA0002394427180000131
Figure BDA0002394427180000141
Figure BDA0002394427180000151
Figure BDA0002394427180000161
Figure BDA0002394427180000171
Figure BDA0002394427180000181
Figure BDA0002394427180000191
Figure BDA0002394427180000201
Figure BDA0002394427180000211
在一些可能的实施方式中,所述json配置文件通过解析成宏定义而在输出执行程序中被相应的变量引用。
如图2所示,在一些可能的实施方式中,所述宏定义生成到在执行程序中被相应的变量引用的头文件中,而使得所述json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
在一些可能的实施方式中,所述设备为开关品类设备。
开关品类设备是一种广义的定义,如可以指需要控制开关的设备。如可以包括开关、插座、带计量插座、场景开关,等等。
在一些可能的实施方式中,所述设备为基于zigbee的开关品类设备。
如在实际应用中,参照图3的流程,具体步骤可以如下:
程序通过预编译,从配置的json配置文件中读取数据,生成相应的配置信息的json配置文件,输出到.h文件(.h文件中含有宏定义)中。通过转化赋值给相关结构体和变量。之后,根据变量信息构造设备,并进行设备的注册。注册完设备之后,进行网络参数的注册,同时对设备的外设进行初始化。以上步骤完成之后,程序可以正常进行业务代码的运行。
填充输入输出外设IO管理表格,所有的输入输出IO通过该表格进行管理。上电时,可以通过该表格获取需要初始化的IO配置信息,后期操作IO时,通过该表格,可以查询IO在表格中的位置index,进而操作对应的IO。
如图4所示,本发明的实施例还提供了基于设备的软件开发系统,包括:
建库单元,用于构建对应所述设备功能的json配置文件;
配置单元,用于对所述json配置文件中的功能配置项进行选择,得到对应特定设备的json配置文件;
输出单元,用于所述特定设备的json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
如图5所示,在一些可能的实施方式中,所述软件开发系统还包括解析单元,用于所述json配置文件解析成宏定义。
如图6所示,在一些可能的实施方式中,所述软件开发系统还包括生成单元,用于所述宏定义生成到在执行程序中被相应的变量引用的头文件中,而使得所述json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
基于上述的软件开发方法,相应的,本发明实施例还提供了一种存储介质,用于存储可执行指令,所述可执行指令在被执行时实现上述的基于设备的软件开发方法的步骤。
基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在执行本发明各种实施场景的方法的电子设备上。存储介质中还可以包括其他模块。
本发明的实施例还提供了一种软件开发装置,含有上述的存储介质。
本发明对设备如开关品类的产品的软件开发,通过对json文件中配置项配置的方式,达到了快速完成开关品类设备的产品开发和简单维护的目的。
在本发明中,术语“第一”、“第二”、“第三”仅用于描述的目的,而不能理解为指示或暗示相对重要性;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接,或虚拟连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和装置的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.基于设备的软件开发方法,其特征在于,包括以下步骤:
构建对应所述设备功能的json配置文件;
对所述json配置文件中的功能配置项进行选择,得到对应特定设备的json配置文件;
所述特定设备的json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
2.根据权利要求1所述的基于设备的软件开发方法,其特征在于,所述json配置文件通过解析成宏定义而在输出执行程序中被相应的变量引用。
3.根据权利要求2所述的基于设备的软件开发方法,其特征在于,所述宏定义生成到在执行程序中被相应的变量引用的头文件中,而使得所述json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
4.根据权利要求1-3任一项所述的基于设备的软件开发方法,其特征在于,所述设备为开关品类设备。
5.根据权利要求4所述的基于设备的软件开发方法,其特征在于,所述设备为基于zigbee的开关品类设备。
6.基于设备的软件开发系统,其特征在于,包括:
建库单元,用于构建对应所述设备功能的json配置文件;
配置单元,用于对所述json配置文件中的功能配置项进行选择,得到对应特定设备的json配置文件;
输出单元,用于所述特定设备的json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
7.根据权利要求6所述的基于设备的软件开发系统,其特征在于,所述软件开发系统还包括解析单元,用于所述json配置文件解析成宏定义。
8.根据权利要求7所述的基于设备的软件开发系统,其特征在于,所述软件开发系统还包括生成单元,用于所述宏定义生成到在执行程序中被相应的变量引用的头文件中,而使得所述json配置文件的功能配置信息在输出执行程序中被相应的变量引用。
9.一种存储介质,其特征在于,用于存储可执行指令,所述可执行指令在被执行时实现权利要求1-5任一项所述的基于设备的软件开发方法的步骤。
10.一种软件开发装置,其特征在于,含有权利要求9所述的存储介质。
CN202010126133.9A 2020-02-20 2020-02-20 基于设备的软件开发方法及其系统和装置 Active CN111309309B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010126133.9A CN111309309B (zh) 2020-02-20 2020-02-20 基于设备的软件开发方法及其系统和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010126133.9A CN111309309B (zh) 2020-02-20 2020-02-20 基于设备的软件开发方法及其系统和装置

Publications (2)

Publication Number Publication Date
CN111309309A true CN111309309A (zh) 2020-06-19
CN111309309B CN111309309B (zh) 2023-09-22

Family

ID=71145297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010126133.9A Active CN111309309B (zh) 2020-02-20 2020-02-20 基于设备的软件开发方法及其系统和装置

Country Status (1)

Country Link
CN (1) CN111309309B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200348A1 (en) * 2002-04-17 2003-10-23 Marshall Lee Humphries Multi-platform software interface and documentation generator
CN1452064A (zh) * 2002-04-15 2003-10-29 费舍-柔斯芒特系统股份有限公司 用于过程控制系统的定制功能块
EP1387525A1 (en) * 2002-08-02 2004-02-04 Alcatel A method for entering of commands for an operation and maintenance centre (OMC)
US20060179426A1 (en) * 2005-02-04 2006-08-10 Samsung Electro-Mechanics Co., Ltd. Pre-compiling device
US20090265687A1 (en) * 2008-04-18 2009-10-22 International Business Machines Corporation System and method for updating initialization parameters for application software from within a software development environment
CN106648615A (zh) * 2016-11-07 2017-05-10 中国航空无线电电子研究所 一种基于VxWorks的BSP代码开发系统
CN109271146A (zh) * 2018-09-06 2019-01-25 威胜集团有限公司 针对电能表软件的模块化设计方法
CN109408103A (zh) * 2018-09-17 2019-03-01 西安闻泰电子科技有限公司 配置文件的设置方法、装置、设备及介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1452064A (zh) * 2002-04-15 2003-10-29 费舍-柔斯芒特系统股份有限公司 用于过程控制系统的定制功能块
US20030200348A1 (en) * 2002-04-17 2003-10-23 Marshall Lee Humphries Multi-platform software interface and documentation generator
EP1387525A1 (en) * 2002-08-02 2004-02-04 Alcatel A method for entering of commands for an operation and maintenance centre (OMC)
US20060179426A1 (en) * 2005-02-04 2006-08-10 Samsung Electro-Mechanics Co., Ltd. Pre-compiling device
US20090265687A1 (en) * 2008-04-18 2009-10-22 International Business Machines Corporation System and method for updating initialization parameters for application software from within a software development environment
CN106648615A (zh) * 2016-11-07 2017-05-10 中国航空无线电电子研究所 一种基于VxWorks的BSP代码开发系统
CN109271146A (zh) * 2018-09-06 2019-01-25 威胜集团有限公司 针对电能表软件的模块化设计方法
CN109408103A (zh) * 2018-09-17 2019-03-01 西安闻泰电子科技有限公司 配置文件的设置方法、装置、设备及介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HENRICH C. PÖHLS: "Towards compactly encoded signed IoT messages" *
吕学品: "温室物联网网关平台设计与开发" *
马强;刘佩林;: "基于编程语言结构的通用配置代码生成方法", 计算机工程, no. 18 *

Also Published As

Publication number Publication date
CN111309309B (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
CN103198009B (zh) 一种通用测试方法、系统及相应装置
CN106293756A (zh) 一种用于快速更换的自定义Linux内核系统
CN110249593A (zh) 根据变电站拓扑规范配置ied过程总线网络交换机的系统和方法
CN107102221B (zh) 一种继电保护装置逻辑功能快速测试平台
CN114328223A (zh) 一种信息测试方法、装置、设备及存储介质
CN108897695A (zh) 一种需求侧设备的互联测试方法及系统
CN104991865A (zh) 软件管理系统及软件管理方法及家用电器
CN102007471B (zh) 用于设计适合于在电力系统中使用的设备到设备配置的方法和装置
US20230011461A1 (en) Method and system for generating engineering diagrams in an engineering system
CN111309309A (zh) 基于设备的软件开发方法及其系统和装置
CN102387137B (zh) 多个网络设备智能操作逻辑的实现方法和系统
CN110297756B (zh) 基于逻辑仿真模型的智能测试系统
Thramboulidis et al. An IEC 61499 based approach for distributed batch process control
KR20240056539A (ko) 전기 차량 모니터링 방법 및 장치, 및 판독가능 저장 매체
CN109752962A (zh) 一种智能设备控制系统
Nannen et al. Low-cost integration of hardware components into co-simulation for future power and energy systems
CN201740852U (zh) 级联结构的背板测试用接口适配器
Roy et al. Identification of the K-most Vulnerable Entities in a Smart Grid System
CN105160972A (zh) 一种实验室用交直流协调控制器样机实现方法及试验系统
CN109687984B (zh) 一种风电scada系统的配置系统及配置方法
CN106508103B (zh) 一种通信网络仿真的动态控制方法
Heussen et al. D-NA5. 1 Smart Grid configuration validation scenario description method
US20230237249A1 (en) Method and system for generating an automation engineering project in a technical installation using multidisciplinary approach
CN103442249B (zh) 视频会议系统仿真方法和平台
CN117591104B (zh) 模型的生成方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant