掌桥专利:专业的专利平台
掌桥专利
首页

物联网组件的开发方法及装置

文献发布时间:2024-04-18 19:52:40


物联网组件的开发方法及装置

技术领域

本发明涉及物联网与通信领域,具体而言,涉及一种物联网组件的开发方法及装置。

背景技术

截至2020年,全球共有117亿台物联网设备,首次超过非物联网设备,虽然“万物互联”已经进入高速发展期,但物联网整体仍呈现碎片化的特征,碎片化主要体现在物联网设备与云平台之间存在一个较长的数据传输链,该数据传输链上涉及多个物联网组件。

目前,在开发物联网组件的过程中,通常会将业务处理逻辑嵌入到数据流处理逻辑当中。然而,由于这种方式的业务处理逻辑与数据流处理逻辑耦合严重,因此当数据流处理逻辑发生变更时,业务处理逻辑也需要重新开发,无法进行复用,由此会导致物联网组件的开发效率较低。

发明内容

本发明提供一种物联网组件的开发方法及装置,主要在于能够将物联网组件的业务处理逻辑和数据流处理逻辑进行解耦,从而能够提高物联网组件的开发效率。

根据本发明实施例的第一方面,提供一种物联网组件的开发方法,包括:

根据物联网设备与云平台共同约定的通信数据接口的交互方式和数据格式,构建所述物联网设备对应的协议描述文件;

根据所述协议描述文件和所述物联网设备与所述云平台之间的各个物联网组件所涉及的业务规则,生成所述各个物联网组件对应的业务代码;

根据通信数据在所述各个物联网组件内部的通信方式和数据流向,确定所述各个物联网组件对应的数据流代码;

将所述业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

根据本发明实施例的第二方面,提供一种物联网组件的开发装置,包括:

构建单元,用于根据物联网设备与云平台共同约定的通信数据接口的交互方式和数据格式,构建所述物联网设备对应的协议描述文件;

生成单元,用于根据所述协议描述文件和所述物联网设备与所述云平台之间的各个物联网组件所涉及的业务规则,生成所述各个物联网组件对应的业务代码;

所述生成单元,还用于根据通信数据在所述各个物联网组件内部的通信方式和数据流向,确定所述各个物联网组件对应的数据流代码;

合并单元,用于将所述业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

根据本发明实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

根据物联网设备与云平台共同约定的通信数据接口的交互方式和数据格式,构建所述物联网设备对应的协议描述文件;

根据所述协议描述文件和所述物联网设备与所述云平台之间的各个物联网组件所涉及的业务规则,生成所述各个物联网组件对应的业务代码;

根据通信数据在所述各个物联网组件内部的通信方式和数据流向,确定所述各个物联网组件对应的数据流代码;

将所述业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

根据本发明实施例的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

根据物联网设备与云平台共同约定的通信数据接口的交互方式和数据格式,构建所述物联网设备对应的协议描述文件;

根据所述协议描述文件和所述物联网设备与所述云平台之间的各个物联网组件所涉及的业务规则,生成所述各个物联网组件对应的业务代码;

根据通信数据在所述各个物联网组件内部的通信方式和数据流向,确定所述各个物联网组件对应的数据流代码;

将所述业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

本发明实施例的创新点包括:

1、将各个物联网组件的业务处理逻辑和数据流处理逻辑进行解耦,避免重复性的开发是本发明实施例的创新点之一。

2、当业务发生变更时,能够根据物联网设备的协议描述文件,自动生成各个组件的业务代码,不需要依次手动编码实现,提高了开发效率是本发明实施例的创新点之一。

3、利用模拟工具加载相同的协议描述文件,生成模拟物联网设备和模拟云平台,通过模拟物联网设备和模拟云平台,实现开发云平台和物联网设备嵌入式解耦开发是本发明实施例的创新点之一。

本发明提供的一种物联网组件的开发方法及装置,与现有技术物联网组件的业务处理逻辑和数据流处理逻辑相互嵌入的方式相比,能够根据物联网设备与云平台共同约定的通信数据接口的交互方式和数据格式,构建所述物联网设备对应的协议描述文件,并根据所述协议描述文件和所述物联网设备与所述云平台之间的各个物联网组件所涉及的业务规则,生成所述各个物联网组件对应的业务代码,与此同时,据通信数据在所述各个物联网组件内部的通信方式和数据流向,确定所述各个物联网组件对应的数据流代码,最终将所述业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。由此本发明通过单独生成各个物联网组件的数据流代码和业务代码,能够将各个物联网组件的业务处理逻辑和数据流处理逻辑进行解耦,避免在数据流发生变更时,重新开发业务代码,从而能够提高物联网组件的开发效率,与此同时,本发明使用协议描述文件定义物联网设备与云平台之间的通信数据格式,能够规范物联网设备的数据接口,实现物联网设备之间的互联,此外,本发明根据协议描述文件,能够自动生成各个物联网组件的业务代码,避免在业务发生变更时依次手动编码实现,从而能够进一步提高开发效率。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例提供的一种物联网组件的开发方法流程示意图;

图2示出了本发明实施例提供的通信协议数据格式示意图;

图3示出了本发明实施例提供的数据流与业务的分离架构示意图;

图4示出了本发明实施例提供的中间件工作流程示意图;

图5示出了本发明实施例提供的中间件接收数据执行流程示意图;

图6示出了本发明实施例提供的中间件封装和同步数据流程示意图;

图7示出了本发明实施例提供的设置帧的存储结构示意图;

图8示出了本发明实施例提供的前后端组件架构示意图;

图9示出了本发明实施例提供的云平台与物联网设备联合开发示意图;

图10示出了本发明实施例提供的模拟设备与真实设备的关联示意图;

图11示出了本发明实施例提供的云平台与物联网设备解耦开发示意图;

图12示出了本发明实施例提供的模拟物联网设备的数据流示意图;

图13示出了本发明实施例提供的模拟物联网设备的运行界面示意图;

图14示出了本发明实施例提供的模拟云平台的数据流示意图;

图15示出了本发明实施例提供的模拟云平台的运行界面示意图;

图16示出了本发明实施例提供的一种物联网组件的开发装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

目前,由于物联网组件的业务处理逻辑与数据流处理逻辑耦合严重,因此当数据流处理逻辑发生变更时,业务处理逻辑也需要重新开发,无法进行复用,由此会导致物联网组件的开发效率较低。

为了解决上述问题,本发明实施例提供了一种物联网组件的开发方法,如图1所示,该方法包括:

步骤101、根据物联网设备与云平台共同约定的通信数据接口的交互方式和数据格式,构建所述物联网设备对应的协议描述文件。

其中,物联网设备在网络中采用二进制协议,协议描述文件用于对物联网设备的二进制协议进行描述。

本发明实施例主要适用于在开发物联网组件过程中将业务处理逻辑和数据流处理逻辑解耦的场景。本发明实施例的执行主体为能够生成物联网组件的装置或者设备。

由于物联网设备本身的多样化,基于不同操作系统进行上层软件开发难以实现统一的接口与编程环境,当多个设备想要跨系统互联时,会出现较大的对接难度,基于此,本发明实施例采用协议描述文件规范网络上物联网设备的各个接口。此外,由于物联网设备在网络中通常使用二进制协议,而二进制协议会存在不可读和扩展性差等缺陷,本发明实施例采用协议描述文件对物联网设备的二进制协议进行描述,能够克服上述问题。

针对物联网设备的协议描述文件构建过程,步骤101具体包括:根据所述物联网设备与所述云平台共同约定的通信数据接口的交互方式,确定不同类型消息对应的消息上报方式;根据所述物联网设备与所述云平台共同约定的通信数据接口的数据格式,定义所述不同类型消息中各字段对应的标识、位置、数据类型、解码函数和编码函数;根据所述消息上报方式,以及所述不同类型消息中各字段对应的标识、位置、数据类型、解码函数和编码函数,构建所述物联网设备对应的协议描述文件。

具体地,在设计自定义的二进制协议过程中,消息分类和消息分片是最关键的部分。对于消息分类,不同类型消息对应的消息头格式一致,消息头主要包含四部分内容消息长度、消息ID、目标/源设备ID和类型,如图2所示,竖线前面为消息头,通过图2可以发现数据帧、设置帧和命令帧的消息头格式相同。由于用于接收和转发消息的中间件使用的是消息队列,只要消息不超过metadata上限,便可以按照实际长度解析,因此在图2中暂不体现消息长度和目标/源设备ID和类型。

进一步地,对业务模块进行梳理,确定不同类型消息所涉及的协议内容protocolContent(字段),帧属性permission(控制、读、写等)和上传频率frequency,即确定不同类型消息对应的消息上报方式,如表1所示:

表1不同类型消息对应的消息上报方式

进一步地,根据物联网设备与云平台之间约定的通信数据接口的数据格式,对不同类型消息所涉及的各字段进行数据格式的定义,即对每个字段的唯一ID、位置(off,length)、数据类型(type)、解码函数(pro2ui)、编码函数(ui2pro)进行定义,如表2和表3所示,其中,表2为图2中数据帧对应的数据格式描述,表3为图2中设置帧对应的数据格式描述。

表2数据帧对应的数据格式描述

/>

表3数据帧对应的数据格式描述

进一步地,对于消息分片,上述定义的数据格式形成了消息分片机制,不同类型消息对应的分片机制不同,当物联网组件接收到一个消息时,可以根据消息头中的消息ID将其送入到正确的消息分片机制中,例如,某消息的消息头中的消息ID为70,将其送入到表2定义的分片机制中。

由此按照上述方式定义不同类型消息对应的消息上报方式和数据格式描述,能够构建物联网设备对应的协议描述文件,以达到规范物联网设备接口,实现物联网设备之间互联的目的。

除此之外,本发明实施例还可以使用软件工具,如lucky-Tools对物联网设备的协议描述文件进行编辑和管理,通过该协议描述文件和软件工具可以对不可读的二进制协议可视化。

步骤102、根据所述协议描述文件和所述物联网设备与所述云平台之间的各个物联网组件所涉及的业务规则,生成所述各个物联网组件对应的业务代码。

其中,物联网设备与云平台之间的各个物联网组件包括中间件、存储组件和前后端组件(云平台组件)。

为了避免重复性的开发,本发明实施例将中间件、存储组件和前后端组件的实现功能进行解耦,即将各个物联网组件的数据流代码和业务代码进行分离,具体可以通过单独生成上述组件的数据流代码和业务代码的方式,实现两者的分离。其中,数据流代码主要从数据传递和数据加工的角度实现数据在系统内部的逻辑流向和逻辑变化,对于数据业务不涉及,而业务代码主要从实际的数据业务出发,负责整个系统要实现的功能,如实现对采样频率的设置,其对于数据的逻辑流向不涉及。通过合并单独生成的数据流代码和业务代码能够实现组件功能,图3为数据流和业务的分离架构。

对于业务代码,由于单纯业务的增删都可以体现在协议描述文件中,因此可以利用协议描述文件,自动生成各个物联网组件对应的业务代码,基于此,所述方法包括:根据所述协议描述文件和所述中间件的格式转换规则,生成所述中间件对应的业务代码;根据所述协议描述文件和所述存储组件的增删改查规则,生成所述存储组件对应的业务代码;根据所述协议描述文件和所述前后端组件的页面操作规则,生成所述前后端组件对应的业务代码。

具体地,对于中间件,中间件的职能主要包括两部分,一是接收来自物联网设备的状态帧、数据帧、设置读帧,并对其进行解析,然后存入存储组件中;二是接收来自云平台的控制命令和设置写命令,对其进行封装发送到各个物联网设备,并将设置命令同步到存储组件中,如图4所示。其中,业务代码主要负责二进制数据与文本格式数据(json数据)的转换。

在具体应用场景中,中间件在接收到物联网设备发送的消息时,通过消息头中的消息ID自动从协议描述文件中识别相应的数据格式,并按照该数据格式将二进制消息解析为文本格式,然后写入数据库,后端服务通过查询业务能够获得最新数据,整体过程如图5所示。在该过程中,通过消息头识别数据格式,并按照该数据格式将二进制消息解析为文本格式为业务代理的处理逻辑,写入数据库为数据流代码的处理逻辑。中间件整体处理流程的代码如下:

其中,上述整体流程为数据流代码的处理逻辑,数据流代码在运行过程中调用了业务代码模块protocal_dict[protocalID],由此可知,中间件的业务代码并没有嵌入到数据流代码中,而是整体作为一个模块被数据流代码调用。

进一步地,中间件还可以接收来自云平台文本格式的控制命令、设置写命令,一方面通过消息头识别数据格式,按照该数据格式将文本格式数据封装为二进制数据,发送给不同的物联网设备,另一方面将文本格式数据同步到数据库,整体过程如图6所示。在该过程中,通过消息头识别数据格式,按照该数据格式将文本格式数据封装为二进制数据为业务代码的处理逻辑,将封装后的数据发送给不同的物联网设备,并将文本格式数据同步到数据库为数据流代码的处理逻辑。中间件整体处理流程的代码如下:

其中,上述整体流程为数据流代码的处理逻辑,数据流代码在运行过程中调用了业务代码模块protocol_dict[protocolID],由此可知,中间件的业务代码并没有嵌入到数据流代码中,而是整体作为一个模块被数据流代码调用。

进一步地,对于存储组件,存储组件所涉及的业务逻辑主要包括建表、查询、插入、批量插入、修改和历史数据处理策略。云平台与物联网设备之间需要存储的内容主要是读写帧,即数据帧和设置帧。

针对建表的业务代码,由于设置帧的数据格式描述与设置帧所对应的表字段是一一对应的,因此可以通过协议描述文件,自动生成设置帧对应的数据库表结构,包括字段名和字段类型,以mysql数据库为例,使用设置帧的数据格式生成设置帧对应的数据库表信息,如图7所示。由于数据帧的数据格式描述与数据帧所对应的表字段并不是一一对应,因此在业务代码中,并不能直接根据数据帧的数据格式生成数据表信息,需要进一步经过解析和计算得到表结果。

针对查询的业务代码,数据帧和设置帧的查询过程同普通BI方式。针对插入的业务代码,设置帧在插入时,调用中间件按照目的ID主键插入,数据帧在插入时,调用中间件按照目的ID与时间共同插入。针对批量插入的业务代码,设置帧在批量插入时,设置帧上报方式并不是周期上报,不涉及批量插入业务,数据帧在批量插入时,为插入的一种策略,用于部分存储组件,例如HBase,当数据量累计到一定数量或一定时间时,将累计的数据一次插入。针对修改的业务代码,设置帧在修改时,按照主键对主键下的参数进行修改,数据帧不支持修改。

通过设备描述文件,自动生成存储组件的业务代码,能够使存储组件对外提供一致接口,一方面可以有效利用用户既有的框架进行存储和管理,适配其存储组件;另一方面,可以根据用户设备数量方便地切换存储引擎。

进一步地,对于前后端组件,前后端组件的代码会涉及很多页面和接口,主要包括三部分,分别是设备列表页面/接口,数据列表页面/接口,数据下探页面/接口,整体架构如图8所示。

针对设备列表页面/接口,其主要功能包括:列表展示、回显和设置下设。列表展示主要包括后端存储组件中的设置数据以结构化的形式传给前端,前端进行可视化显示,这里主要包括两个接口,分别是读取数据库接口和前后端之间的API接口,数据库接口采取生成数据的数据库接口,前后端之间的API接口采用文本协议json格式,使用动表结构表示设备列表。回显主要由前端完成。在设置下设时,前端将用户对于设置的调整(控件操作)发送给后端,数据格式为文本格式,后端将这部分文本格式数据一方面同步到数据库,一方面封装之后发送给物联网设备,该部分主要使用后端控制前端的控件展示,前端根据收到的控制描述,生成关于设备列表可用的动态下设接口。

对于数据列表页面/接口,其功能包括列表展示、下探和控制下发。数据列表展示同设备列表展示,在此不再赘述。下探时,可以从前端获得的下探数据的下探接口进行跳转。控制下发时,前端将用户的控制命令(控件操作)发送给后端,其数据格式为文本格式,后端将这部分文本数据一方面同步到数据库,一方面封装之后发送给物联网设备,控制命令的操作与设置部分相同,为动态展示。

步骤103、根据通信数据在所述各个物联网组件内部的通信方式和数据流向,确定所述各个物联网组件对应的数据流代码。

对于本发明实施例,可以从数据传递和数据加工的角度,根据数据在各个物联网组件内的逻辑流向和通信方式,确定各个物联网组件的数据流代码,该数据流代码中不涉及业务。

步骤104、将所述业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

在本发明的一种实施方式中,在将各个物联网组件的业务代码和数据流代码分离之后,当数据流的处理逻辑发生变更(如通信方式发生变更)时,可以只更改各个物联网组件的数据流代码,不需要重构业务代码。基于此,所述方法包括:当所述物联网设备的通讯方式发生变更时,更新所述各个物联网组件的数据流代码;将更新后的数据流代码与所述业务代码合并,实现所述各个物联网组件的功能。

例如,物联网设备的通信方式从485通信更改为mqtt通信,由于仅是通讯方式的更改,业务没有发生变化,因此只需要更改数据流代码,调用相同的业务代码即可。

在本发明的一种实施方式中,由于业务的增删可以通过协议描述文件的变化表现,因此当业务发生变更时,本发明实施例可以根据更新后的协议描述文件,自动生成各个物联网组件的协议描述文件,不需要依次手动编辑各个物联网组件的业务代码,基于此,所述方法包括:当所述物联网设备的业务发生变更时,更新所述物联网设备对应的协议描述文件;根据更新后的协议描述文件和所述各个物联网组件所涉及的业务规则,重新生成各个物联网组件对应的业务代码;将重新生成的业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

例如,物联网设备增加一项采样频率的设置业务,由于仅涉及业务代码处理逻辑的更改,因此不需要更改数据流代码的处理逻辑。在重新生成业务代码时,物联网软件需要增加根据采样频率调整的采集通道的采样周期;中间件需要对采样频率对应的数据帧进行二进制格式与文本格式之间的转化;数据库需要增加对于采样频率的存储;后端需要增加关于采样频率的增删改查和发送;前端需要在对应位置增加采样频率的设置和回显。

当前云平台与物联网设备通常采用联合开发的模式,如图9所示,云平台需要物联网设备提供完备的数据接口,并验证其下发的一些命令和设置正确与否,而物联网设备需要借助云平台对其数据进行可视化分析,并且通过云平台对其进行控制和设置。在开发期间,云平台和物联网设备共同商定好数据接口的交互形式和数据格式,然后实现前后端的并行开发,基本功能完成之后,开始进行联调测试,最终进行功能测试。由于上述联合开发过程完全依赖口头约定,因此容易在联调时出现大量的不一致问题和版本问题。

为了克服上述问题,本发明实施例在开发过程中通过模拟工具软件加载物联网设备的协议描述文件,形成模拟云平台和模拟物联网设备,如图10所示,云平台开发人员在没有硬件的情况下通过模拟物联网设备作为数据来源,对云平台进行开发,嵌入式开发人员通过模拟云平台对待开发的物联网设备进行调试,由此能够实现物联网组件与云平台的解耦开发,如图11所示,由于在解耦开发时模拟物联网设备与模拟云平台使用的是相同的协议描述文件,因此两者的接口一致,从而可以保证联调时真实物联网设备和真实云平台能够对应上,不会出现版本不一致的问题。

在独立开发云平台的过程中,所述方法包括:利用模拟工具加载所述物联网设备对应的协议描述文件,生成模拟物联网设备;所述模拟物联网设备向所述各个物联网组件中的中间件推送数据;所述模拟物联网设备接收所述中间件的消息,并对中间件的消息进行解析和显示;根据数据推送结果和消息显示结果,开发所述云平台。

模拟工具具体可以为lucky-Tools,通过开启lucky-Tools的Simulator功能加载物联网设备的协议描述文件,可以模拟该物联网设备的网络接口,协议云平台、桌面软件或者第三方软件快速开发。

在利用模拟物联网设备开发云平台的过程中,模拟物联网设备与真实物联网设备具有相同的对外接口,模拟物联网设备为其他组件开发提供数据来源,并且验证其他组件发送的消息解析。

模拟物联网设备的数据流如图12所示,其中阴影部分为加载的协议描述文件,模拟物联网设备主要包括一个进程(主进程)和两个线程(收线程和发线程)。收线程收取来自中间件的消息,然后回调主进程的解析模块,将解析之后的文本格式数据发送给主进程的可视化模块。发线程从主进程的可视化模块触发获得发送的文本数据,通过封装模块将文本数据封装为二进制数据,然后发送到消息中间件。主进程主要处理管理线程和协议可视化的内容,协议可视化主要是对协议内容进行可视化,主要包括数值可视化和控件可视化。

进一步地,模拟物联网设备的运行界面如图13所示,使用模拟物联网设备可以模拟真实边缘计算设备发出的状态帧和数据帧,使得云平台或者桌面软件得到数据,并对数据进行校验,此外,还可以使用模拟物联网设备对云平台或者桌面软件下发的命令进行校验。在图13中,A1按钮用于加载不同物联网设备的协议描述文件,当加载某协议描述文件之后,该协议描述文件的内容将会出现在右侧表格区域;A2按钮可以用于输入需要连接的中间件,将模拟物联网设备加入网络;B1按钮用于控制模拟物联网设备的开启和关闭;B2用于发送协议描述文件中的trigger帧(frequency列为trigger),如设置读帧等;C1用于编辑物联网设备的各帧数据的传输流程(如是否传输,是否周期传输)和上报频率(周期传输时的传输频率);C2区域用于展示模拟物联网设备收到的消息。

在独立开发物联网设备的过程中,所述方法包括:利用模拟工具加载所述物联网设备对应的协议描述文件,生成模拟云平台;在所述模拟云平台的运行界面中显示在线的物联网设备的传输数据;根据所述模拟云平台的运行界面,向所述在线的物联网设备发送设置命令;根据所述传输数据的显示结果和所述设置命令的发送结果,开发所述在线的物联网设备。

模拟工具具体可以为lucky-Tools,通过开启lucky-Tools的PollTest功能加载物联网设备的协议描述文件,可以按照单帧协议对单个物联网设备或者多个物联网设备进行数据可视化、回显和设置。

在利用模拟云平台开发物联网设备的过程中,模拟云平台与真实云平台具有相同的对外接口,并且模拟云平台能够实现真实云平台的所有原生功能,可以对不同物联网设备进行状态和数据可视化,并且可以向不同物联网设备进行命令下发和设置下发。

模拟云平台的数据流如图14所示,其中阴影部分为加载的协议描述文件,模拟云平台主要包括一个和进程(主进程)和两个线程(收线程和发线程)。收线程是收取来自中间件的消息,然后回调主进程的解析模块,将解析之后的文本数据发送给主进程的可视化模块。发线程从主进程的可视化模块触发获得发送的文本格式数据,通过封装模块将文本格式数据封装为二进制数据,然后发送到中间件。主进程主要处理管理线程和协议可视化的内容,协议可视化主要是对协议内容进行可视化,这里主要包括数值可视化、控件可视化和图像可视化。

进一步地,模拟云平台的运行界面如图15所示,图15(A)用于展示加载协议描述文件之后的所有协议帧,其中,active列用于展示该帧下消息的设备个数;图15(B)为图15(A)在某个设置帧处的下探页面,该下探页面中包含设置写帧所有控件,通过B.2设备切换按钮可以选择不同的物联网设备作为设置或者命令目标,通过B.3按钮下发设置或者命令;图15(C)为图15(A)在某个数据帧处的下探页面,该页面包含该数据帧所有指标量和数据的可视化,通过C.2设备切换按钮可以选择不同的物联网设备进行设置读信息的展示,通过C.3刷新数据按钮可以刷新不同物联网设备的最新指标量;图15(E)为图15(C)在某个Data处的下探页面,可以对二进制块Data进行解析、计算和可视化;图15(D)为图15(A)在某个数据帧处的下探页面,该下探页面中包含设置写帧的所有控件,通过D.2设备切换按钮可以选择不同的物联网设备进行设置读信息的展示,通过D.3刷新数据按钮可以刷新不同物联网设备的最新设置。

本发明实施例通过使用模拟工具和协议描述文件,能够快速模拟物联网设备的接口功能,使云平台和物联网设备完全解耦开发,避免联调时出现大量不一致的问题。

需要说明的是,在本发明实施例中与物联网设备进行解耦开发的主体并不局限于云平台,还可以为其他桌面软件。

本发明实施例实施例提供的一种物联网组件的开发方法,通过单独生成各个物联网组件的数据流代码和业务代码,能够将各个物联网组件的业务处理逻辑和数据流处理逻辑进行解耦,避免在数据流发生变更时,重新开发业务代码,从而能够提高物联网组件的开发效率,与此同时,本发明实施例使用协议描述文件定义物联网设备与云平台之间的通信数据格式,能够规范物联网设备的数据接口,实现物联网设备之间的互联,此外,本发明实施例根据协议描述文件,能够自动生成各个物联网组件的业务代码,避免在业务发生变更时依次手动编辑,从而能够进一步提高开发效率。

进一步地,作为图1的具体实现,本发明实施例提供了一种物联网组件的开发装置,如图16所示,所述装置包括:构建单元31、生成单元32和合并单元33。

所述构建单元31,可以用于根据物联网设备与云平台共同约定的通信数据接口的交互方式和数据格式,构建所述物联网设备对应的协议描述文件。

所述生成单元32,可以根据所述协议描述文件和所述物联网设备与所述云平台之间的各个物联网组件所涉及的业务规则,生成所述各个物联网组件对应的业务代码。

所述生成单元32,还可以用于根据通信数据在所述各个物联网组件内部的通信方式和数据流向,确定所述各个物联网组件对应的数据流代码。

所述合并单元33,可以用于将所述业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

在具体应用场景中,所述构建单元31,包括:第一确定模块、定义模块和构建模块。

所述第一确定模块,可以用于根据所述物联网设备与所述云平台共同约定的通信数据接口的交互方式,确定不同类型消息对应的消息上报方式。

所述定义模块,可以用于根据所述物联网设备与所述云平台共同约定的通信数据接口的数据格式,定义所述不同类型消息中各字段对应的标识、位置、数据类型、解码函数和编码函数。

所述构建模块,可以用于根据所述消息上报方式,以及所述不同类型消息中各字段对应的标识、位置、数据类型、解码函数和编码函数,构建所述物联网设备对应的协议描述文件。

在具体应用场景中,所述各个物联网组件包括中间件、存储组件和前后端组件,所述生成单元32,具体可以用于根据所述协议描述文件和所述中间件的格式转换规则,生成所述中间件对应的业务代码;根据所述协议描述文件和所述存储组件的增删改查规则,生成所述存储组件对应的业务代码;根据所述协议描述文件和所述前后端组件的页面操作规则,生成所述前后端组件对应的业务代码。

在具体应用场景中,所述装置还包括:更新单元。

所述更新单元,可以用于当所述物联网设备的通讯方式发生变更时,更新所述各个物联网组件的数据流代码。

所述合并单元33,还可以用于将更新后的数据流代码与所述业务代码合并,实现所述各个物联网组件的功能。

在具体应用场景中,所述更新单元,还可以用于当所述物联网设备的业务发生变更时,更新所述物联网设备对应的协议描述文件。

所述生成单元32,还可以用于根据更新后的协议描述文件和所述各个物联网组件所涉及的业务规则,重新生成各个物联网组件对应的业务代码。

所述合并单元33,还可以用于将重新生成的业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

在具体应用场景中,所述装置还包括:显示单元、发送单元和开发单元。

所述生成单元,还可以用于利用模拟工具加载所述物联网设备对应的协议描述文件,生成模拟云平台。

所述显示单元,可以用于在所述模拟云平台的运行界面中显示在线的物联网设备的传输数据。

所述发送单元,可以用于根据所述模拟云平台的运行界面,向所述在线的物联网设备发送设置命令。

所述开发单元,可以用于根据所述传输数据的显示结果和所述设置命令的发送结果,开发所述在线的物联网设备。

在具体应用场景中,所述生成单元,还可以用于利用模拟工具加载所述物联网设备对应的协议描述文件,生成模拟物联网设备。

所述发送单元,还可以用于所述模拟物联网设备向所述各个物联网组件中的中间件推送数据。

所述显示单元,还可以用于所述模拟物联网设备接收所述中间件的消息,并对中间件的消息进行解析和显示。

所述发开单元,还可以用于根据数据推送结果和消息显示结果,开发所述云平台。

需要说明的是,本发明实施例提供的一种物联网组件的开发装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。

基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:根据物联网设备与云平台共同约定的通信数据接口的交互方式和数据格式,构建所述物联网设备对应的协议描述文件;根据所述协议描述文件和所述物联网设备与所述云平台之间的各个物联网组件所涉及的业务规则,生成所述各个物联网组件对应的业务代码;根据通信数据在所述各个物联网组件内部的通信方式和数据流向,确定所述各个物联网组件对应的数据流代码;将所述业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

基于上述如图1所示方法和如图16所示装置的实施例,本发明实施例还提供了一种电子设备,该电子设备包括:处理器、存储器、及存储在存储器上并可在处理器上运行的计算机程序,其中存储器和处理器均设置在总线上所述处理器执行所述程序时实现以下步骤:根据物联网设备与云平台共同约定的通信数据接口的交互方式和数据格式,构建所述物联网设备对应的协议描述文件;根据所述协议描述文件和所述物联网设备与所述云平台之间的各个物联网组件所涉及的业务规则,生成所述各个物联网组件对应的业务代码;根据通信数据在所述各个物联网组件内部的通信方式和数据流向,确定所述各个物联网组件对应的数据流代码;

将所述业务代码和所述数据流代码合并,实现所述各个物联网组件的功能。

本发明实施例通过单独生成各个物联网组件的业务代码和开发数据流代码,能够将各个物联网组件的业务处理逻辑和数据流处理逻辑进行解耦,避免在数据流发生变更时,重新开发业务代码,从而能够提高物联网组件的开发效率,与此同时,本发明实施例使用协议描述文件定义物联网设备与云平台之间的通信数据格式,能够规范物联网设备的数据接口,实现物联网设备之间的互联,此外,本发明实施例根据协议描述文件,能够自动生成各个物联网组件的业务代码,避免在业务发生变更时依次手动编辑,从而能够进一步提高开发效率。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

技术分类

06120116330331