发明内容
本发明实施例提供了一种实现物联网模块的方法及装置,能够更加简便地实现物联网模块。
一方面,本发明实施例提供了一种实现物联网模块的方法,包括:
预先针对至少一个云平台分别设置对应的应用功能模块的代码;
预先设置至少一个所述应用功能模块能够共用的基本功能模块的代码;
包括:
根据物联网模块需要连接的至少一个目标云平台,生成配置文件,其中,所述配置文件中指定了需要编译的至少一个目标应用功能模块的代码,所述至少一个目标应用模块为所述至少一个目标云平台对应的应用功能模块;
根据所述配置文件,对所述基本功能模块的代码和所述至少一个目标应用功能模块的代码进行编译,生成固件;
将所述固件烧写到所述物联网模块中。
进一步地,
所述基本功能模块上包括:每个所述应用功能模块对应的接口,其中,针对每个所述接口,所述基本功能模块通过当前接口与所述当前接口对应的所述应用功能模块进行交互;
所述基本功能模块的代码中包括:每个所述应用功能模块对应的接口的代码;
所述配置文件中指定了所述基本功能模块上需要编译的与所述至少一个目标应用功能模块对应的接口的代码;
所述根据所述配置文件,对所述基本功能模块的代码和所述至少一个目标应用功能模块的代码进行编译,生成固件,包括:
根据所述配置文件,确定所述至少一个目标应用功能模块的代码;
根据所述配置文件,确定所述基本功能模块上的与所述至少一个目标应用功能模块对应的接口的代码;
根据所述基本功能模块上的与所述至少一个目标应用功能模块对应的接口的代码,对所述基本功能模块的代码进行编译,并对所述至少一个目标应用功能模块的代码进行编译,生成所述固件。
进一步地,
所述预先针对至少一个云平台分别设置对应的应用功能模块的代码,包括:
针对每个所述云平台,根据当前云平台对应的SDK(软件开发工具包,SoftwareDevelopment Kit),生成所述当前云平台对应的应用功能模块的代码。
进一步地,
所述应用功能模块,用于实现与对应的云平台的交互。
进一步地,
所述基本功能模块,用于与至少一个所述应用功能模块进行交互,与所述物联网模块所在的设备的电控进行交互。
另一方面,本发明实施例提供了一种实现物联网模块的装置,包括:
设置单元,用于针对至少一个云平台分别设置对应的应用功能模块的代码,以及设置至少一个所述应用功能模块能够共用的基本功能模块的代码;
配置文件生成单元,用于根据物联网模块需要连接的至少一个目标云平台,生成配置文件,其中,所述配置文件中指定了需要编译的至少一个目标应用功能模块的代码,所述至少一个目标应用模块为所述至少一个目标云平台对应的应用功能模块;
编译单元,用于根据所述配置文件,对所述基本功能模块的代码和所述至少一个目标应用功能模块的代码进行编译,生成固件;
烧写单元,用于将所述固件烧写到所述物联网模块中。
进一步地,
所述基本功能模块上包括:每个所述应用功能模块对应的接口,其中,针对每个所述接口,所述基本功能模块通过当前接口与所述当前接口对应的所述应用功能模块进行交互;
所述基本功能模块的代码中包括:每个所述应用功能模块对应的接口的代码;
所述配置文件中指定了所述基本功能模块上需要编译的与所述至少一个目标应用功能模块对应的接口的代码;
所述编译单元,用于根据所述配置文件,确定所述至少一个目标应用功能模块的代码;根据所述配置文件,确定所述基本功能模块上的与所述至少一个目标应用功能模块对应的接口的代码;根据所述基本功能模块上的与所述至少一个目标应用功能模块对应的接口的代码,对所述基本功能模块的代码进行编译,并对所述至少一个目标应用功能模块的代码进行编译,生成所述固件。
进一步地,
所述设置单元,用于针对每个所述云平台,根据当前云平台对应的SDK,生成所述当前云平台对应的应用功能模块的代码。
进一步地,
所述应用功能模块,用于实现与对应的云平台的交互。
进一步地,
所述基本功能模块,用于与至少一个所述应用功能模块进行交互,与所述物联网模块所在的设备的电控进行交互。
在本发明实施例中,预先针对各个云平台设置对应的应用功能模块的代码,并设置共用的基本功能模块的代码,当针对不同的云平台实现物联网模块时,无需对每个云平台编写全套的软件,只需针对需要连接的云平台生成对应的配置文件,利用配置文件生成需要的固件,进而实现相应的物联网模块,整个过程大大减少了实现物联网模块的工作量,更加简便地实现了物联网模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种实现物联网模块的方法,该方法可以包括以下步骤:
步骤101:预先针对至少一个云平台分别设置对应的应用功能模块的代码;
步骤102:预先设置至少一个所述应用功能模块能够共用的基本功能模块的代码;
步骤103:根据物联网模块需要连接的至少一个目标云平台,生成配置文件,其中,所述配置文件中指定了需要编译的至少一个目标应用功能模块的代码,所述至少一个目标应用模块为所述至少一个目标云平台对应的应用功能模块;
步骤104:根据所述配置文件,对所述基本功能模块的代码和所述至少一个目标应用功能模块的代码进行编译,生成固件;
步骤105:将所述固件烧写到所述物联网模块中。
在本发明实施例中,预先针对各个云平台设置对应的应用功能模块的代码,并设置共用的基本功能模块的代码,当针对不同的云平台实现物联网模块时,无需对每个云平台编写全套的软件,只需针对需要连接的云平台生成对应的配置文件,利用配置文件生成需要的固件,进而实现相应的物联网模块,整个过程大大减少了实现物联网模块的工作量,更加简便地实现了物联网模块。
在本发明实施例中,应用功能模块的代码和基本功能模块的代码无需改变,可以在各个物联网模块中共用,而基本功能模块的代码在每个物联网模块中都会被启动,而各个应用功能模块的代码,根据需要通过配置文件来选择启动的目标应用功能模块的代码。这样,已经编写好的代码可以重复使用,大大减少了编写代码的工作量,提高了实现物联网模块的效率。
在本发明一实施例中,所述基本功能模块上包括:每个所述应用功能模块对应的接口,其中,针对每个所述接口,所述基本功能模块通过当前接口与所述当前接口对应的所述应用功能模块进行交互;
所述基本功能模块的代码中包括:每个所述应用功能模块对应的接口的代码;
所述配置文件中指定了所述基本功能模块上需要编译的与所述至少一个目标应用功能模块对应的接口的代码;
所述根据所述配置文件,对所述基本功能模块的代码和所述至少一个目标应用功能模块的代码进行编译,生成固件,包括:
根据所述配置文件,确定所述至少一个目标应用功能模块的代码;
根据所述配置文件,确定所述基本功能模块上的与所述至少一个目标应用功能模块对应的接口的代码;
根据所述基本功能模块上的与所述至少一个目标应用功能模块对应的接口的代码,对所述基本功能模块的代码进行编译,并对所述至少一个目标应用功能模块的代码进行编译,生成所述固件。
在本发明实施例中,为了实现基本功能模块被各个应用功能模块共用,在基本功能模块上配置了各个应用功能模块对应的接口。由于各个云平台对应的应用功能模块与基本功能模块进行交互的接口可能是不同的,配置文件中除了指定了目标应用功能模块的代码之外,还可以指定基本功能模块上的接口的代码,在进行编译时,无需对基本功能模块上的全部接口的代码进行编译,只需编译配置文件指定的接口的代码即可,使得各个目标应用功能模块能够与基本功能模块进行交互。
在本发明一实施例中,所述预先针对至少一个云平台分别设置对应的应用功能模块的代码,包括:
针对每个所述云平台,根据当前云平台对应的SDK,生成所述当前云平台对应的应用功能模块的代码。
在本发明实施例中,在生成当前云平台对应的应用功能模块时,将当前云平台对应SDK集成到当前云平台对应的应用功能模块中,通过该SDK实现该应用功能模块的各项功能。
在本发明一实施例中,所述应用功能模块,用于实现与对应的云平台的交互。
由于各个云平台的平台协议不同,因此,物联网模块与各个云平台进行交互需要遵循相应的平台协议,需要通过对应的应用功能模块来实现。这里的平台协议主要是指云平台的通信协议。
在本发明实施例中,应用功能模块主要实现配网数据解析、设备发现、控制指令处理、状态数据上报等功能。
具体地,配网数据解析功能主要是指在物联网模块需要连接网络时,通过应用功能模块接收外部发来的配网数据,对配网数据进行解析,以连接到网络。例如:外部的移动终端安装云平台A的APP,通过该APP发出配网数据,云平台A对应的应用功能模块接收到该配网数据,并进行解析,获取路由器的名称和密码,连接到网络。其中,配网数据可以包括路由器的名称和密码。
具体地,设备发现功能是指将物联网模块与外部的移动终端进行配对。例如:外部的移动终端安装云平台A的APP,通过该APP发送广播包启动发现流程,物联网模块中云平台A对应的应用功能模块收到广播包后,进行对应的回复,该APP收到回复后,发现成功,绑定该物联网模块,用户可以通过移动终端以及云平台A对物联网模块所在的设备进行控制。
具体地,控制指令处理功能是指物联网模块的应用功能模块对云平台发来的控制指令进行处理。其中,该控制指令可以是云平台直接发来的,也可以是用户通过移动终端发送给云平台,再由云平台转发给物联网模块的。应用功能模块在接收到云平台发来的控制指令后,对该控制指令进行解析,根据解析结果生成相应的内部指令,发送给基本功能模块,使得基本功能模块将内部指令发送给物联网模块所在的设备的处理部件,执行该内部指令。举例来说,用户通过移动终端向云平台A发出获取状态数据的控制指令,云平台A将该控制指令发送给云平台A对应的应用功能模块,该应用功能模块解析该控制指令,并生成内部指令,将内部指令发送给基本功能模块,基本功能模块将该内部指令发送给串口去执行,以获取物联网模块所在的设备的状态数据。
具体地,状态数据上报功能是指物联网模块将所在设备的状态数据上报给云平台。当需要将设备的状态数据上报时,应用功能模块按照对应的云平台的平台协议将状态数据处理后,发送给云平台。举例来说,为了响应云平台A的获取状态数据的控制指令,物联网模块的云平台A对应的应用功能模块接收到状态数据后,将该状态数据按照云平台A的平台协议进行打包,将生成的数据包发送给云平台A。
每个应用功能模块支持对应的云平台的平台协议。
在本发明一实施例中,所述基本功能模块,用于与至少一个所述应用功能模块进行交互,与所述物联网模块所在的设备的电控进行交互。
在发明实施例中,物联网模块处理通过应用功能模块与对应的云平台进行交互以外,还要完成一些基本功能,主要是与所在的设备的电控的交互。例如:所在的设备的处理器、传感器等设备。
在本发明实施例中,基本功能模块主要实现快连配网、网络连接、生产测试、时钟线程、与电控的串口通信等功能。
具体地,快连配网功能是指物联网模块进入快连配网状态时,抓取空中数据包,进行快连配网,以获取移动终端的APP发出的配网数据。
具体地,网络连接功能是指在应用功能模块解析出配网数据后,通过基本功能模块实现网络连接。例如:应用功能模块解析出路由器的名称和密码,基本功能模块根据该名称和密码实现网络连接。
具体地,生产测试功能是指通过基本功能模块实现对物联网模块所在的设备的生产测试。
具体地,与电控的串口通信功能是指通过串口与物联网模块所在的设备的电控进行交互。
如图2所示,本发明实施例提供了一种实现物联网模块的方法,该方法可以包括以下步骤:
步骤201:预先针对每个云平台,根据当前云平台对应的SDK,生成当前云平台对应的应用功能模块的代码。
举例来说,有三个云平台,分别是云平台A、云平台B和云平台C,根据云平台A对应的SDK设置云平台A对应的应用功能模块A的代码,根据云平台B对应的SDK设置云平台B对应的应用功能模块B的代码,根据云平台C对应的SDK设置云平台C对应的应用功能模块C的代码。
步骤202:预先设置至少一个应用功能模块能够共用的基本功能模块的代码,基本功能模块的代码中包括:每个应用功能模块对应的接口的代码。
具体地,设置所有的应用功能模块能够共用的基本功能模块的代码。
举例来说,设置应用功能模块A、应用功能模块B和应用功能模块C能够共用的基本功能模块的代码。
基本功能模块上包括:每个应用功能模块对应的接口,其中,针对每个接口,基本功能模块通过当前接口与当前接口对应的应用功能模块进行交互。
举例来说,基本功能模块上包括:应用功能模块A对应的接口A、应用功能模块B对应的接口B和应用功能模块C对应的接口C。基本功能模块通过接口A与应用功能模块A进行交互,基本功能模块通过接口B与应用功能模块B进行交互,基本功能模块通过接口C与应用功能模块C进行交互。
举例来说,,基本功能模块的代码中包括接口A的代码、接口B的代码和接口C的代码。
步骤203:根据物联网模块需要连接的至少一个目标云平台,生成配置文件,其中,配置文件中指定了需要编译的至少一个目标应用功能模块的代码,以及基本功能模块上需要编译的与至少一个目标应用功能模块对应的接口的代码,至少一个目标应用模块为至少一个目标云平台对应的应用功能模块。
具体地,配置文件用于配置需要编译的代码,其中,基本功能模块的代码是共用的,是必须要编译的,可以不通过配置文件进行配置。配置文件只需要配置可选的代码。
举例来说,针对需要实现的物联网模块,该物联网模块需要连接云平台A,配置文件中指定了云平台A对应的应用功能模块A的代码,以及与应用功能模块A相匹配的接口A的代码。
具体地,配置文件对各个应用功能模块起到开关控制作用,当指定某个应用功能模块的代码后,将编译该应用功能模块的代码,生成支持该应用功能模块对应的协议的固件。
步骤204:根据配置文件,确定至少一个目标应用功能模块的代码。
举例来说,根据配置文件,确定出应用功能模块A的代码。
当然,配置文件可以指定多个应用功能模块,这样,物联网模块就具有与多个云平台进行交互的功能。
步骤205:根据配置文件,确定基本功能模块上的与至少一个目标应用功能模块对应的接口的代码。
举例来说,根据配置文件,确定出接口A的代码。
步骤206:根据基本功能模块上的与至少一个目标应用功能模块对应的接口的代码,对基本功能模块的代码进行编译,并对至少一个目标应用功能模块的代码进行编译,生成固件。
具体地,在对基本功能模块的代码进行编译时,针对接口部分,只需要编译配置文件中指定的接口的代码,除了接口部分,基本功能模块的其他部分的代码都需要进行编译。也就是说,在对基本功能模块的代码进行编译时,除了配置文件没有指定的接口的代码不需要编译,基本功能模块的代码的其他所有代码都需要编译。
举例来说,配置文件中指定了接口A的代码,在对基本功能模块的代码进行编译时,除了接口B的代码和接口C的代码之外,将基本功能模块的其他代码都进行编译。
举例来说,配置文件中指定了应用功能模块A的代码,在进行编译时,对应用功能模块A的代码进行编译,无需对应用功能模块B的代码和应用功能模块C的代码进行编译,减少了工作量。在生成的固件中,包括应用功能模块A和接口A,不包括应用功能模块B、应用功能模块C、接口B和接口C。
步骤207:将固件烧写到物联网模块中。
具体地,通过该步骤,物联网模块即可实现至少一个目标应用功能模块的功能以及基本功能模块的功能。
在物联网模块启动后,会启动目标应用功能模块以及基本功能模块。
举例来说,通过该步骤,物联网模块即可实现应用功能模块A的功能以及基本功能模块的功能。
在本发明实施例中,云平台可以是指各个电商的云平台。
在本发明实施例中,物联网模块所在的设备可以是家电,例如:空调、冰箱、洗衣机等家电。
通过本发明实施例可以实现物联网模块所在的设备的与单/多平台直连。
在本发明实施例中,预先设置至少一个应用功能模块的代码,以及基本功能模块的代码,在实现各种物联网模块时,无需重新编写整套的代码,只需通过配置文件指定需要的目标应用功能模块的代码,通过编译即可实现具有目标应用功能模块和基本功能模块的固件,进而实现需要的物联网模块,本发明实施例最大化复用代码,减少了工作量,缩短了实现同款设备与不同云平台进行交互的开发周期,缩短了测试周期,大大提高了供货效率,大大提高了同款设备在销售渠道上的灵活性。
举例来说,有三个云平台,分别是云平台A、云平台B、和云平台C;有一款空调,这款空调的不同的用户的需求可能不同,有些用户需要连接云平台A的空调,有些用户需要连接云平台B的空调,有些用户需要连接云平台C的空调。在实现空调中与各个云平台进行交互的物联网模块时,预先设置云平台A对应的应用功能模块A的代码、云平台B对应的应用功能模块B的代码、云平台C对应的应用功能模块C的代码和基本功能模块的代码,要实现与云平台A进行交互的物联网模块,只需生成配置文件,通过配置文件指定应用功能模块A的代码,即可实现能够与云平台A进行交互的物联网模块,满足了用户连接云平台A的需求。对于连接云平台B的物联网模块的实现,以及连接云平台C的物联网模块的实现,通过相同的方法来实现。在实现这同一款空调的三种物联网模块时,无需分别编写全套的固件,只需生成相应的配置文件即可。
如图3、图4所示,本发明实施例提供了一种实现物联网模块的装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种实现物联网模块的装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种实现物联网模块的装置,包括:
设置单元401,用于针对至少一个云平台分别设置对应的应用功能模块的代码,以及设置至少一个所述应用功能模块能够共用的基本功能模块的代码;
配置文件生成单元402,用于根据物联网模块需要连接的至少一个目标云平台,生成配置文件,其中,所述配置文件中指定了需要编译的至少一个目标应用功能模块的代码,所述至少一个目标应用模块为所述至少一个目标云平台对应的应用功能模块;
编译单元403,用于根据所述配置文件,对所述基本功能模块的代码和所述至少一个目标应用功能模块的代码进行编译,生成固件;
烧写单元404,用于将所述固件烧写到所述物联网模块中。
在本发明实施例中,预先针对各个云平台设置对应的应用功能模块的代码,并设置共用的基本功能模块的代码,当针对不同的云平台实现物联网模块时,无需对每个云平台编写全套的软件,只需针对需要连接的云平台生成对应的配置文件,利用配置文件生成需要的固件,进而实现相应的物联网模块,整个过程大大减少了实现物联网模块的工作量,更加简便地实现了物联网模块。
在本发明一实施例中,所述基本功能模块上包括:每个所述应用功能模块对应的接口,其中,针对每个所述接口,所述基本功能模块通过当前接口与所述当前接口对应的所述应用功能模块进行交互;
所述基本功能模块的代码中包括:每个所述应用功能模块对应的接口的代码;
所述配置文件中指定了所述基本功能模块上需要编译的与所述至少一个目标应用功能模块对应的接口的代码;
所述编译单元,用于根据所述配置文件,确定所述至少一个目标应用功能模块的代码;根据所述配置文件,确定所述基本功能模块上的与所述至少一个目标应用功能模块对应的接口的代码;根据所述基本功能模块上的与所述至少一个目标应用功能模块对应的接口的代码,对所述基本功能模块的代码进行编译,并对所述至少一个目标应用功能模块的代码进行编译,生成所述固件。
在本发明一实施例中,所述设置单元,用于针对每个所述云平台,根据当前云平台对应的SDK,生成所述当前云平台对应的应用功能模块的代码。
在本发明一实施例中,所述应用功能模块,用于实现与对应的云平台的交互。
在本发明一实施例中,所述基本功能模块,用于与至少一个所述应用功能模块进行交互,与所述物联网模块所在的设备的电控进行交互。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明实施例提供的任意一种实现物联网模块的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明实施例提供的任意一种实现物联网模块的方法。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,预先针对各个云平台设置对应的应用功能模块的代码,并设置共用的基本功能模块的代码,当针对不同的云平台实现物联网模块时,无需对每个云平台编写全套的软件,只需针对需要连接的云平台生成对应的配置文件,利用配置文件生成需要的固件,进而实现相应的物联网模块,整个过程大大减少了实现物联网模块的工作量,更加简便地实现了物联网模块。
2、在本发明实施例中,应用功能模块的代码和基本功能模块的代码无需改变,可以在各个物联网模块中共用,而基本功能模块的代码在每个物联网模块中都会被启动,而各个应用功能模块的代码,根据需要通过配置文件来选择启动的目标应用功能模块的代码。这样,已经编写好的代码可以重复使用,大大减少了编写代码的工作量,提高了实现物联网模块的效率。
3、在本发明实施例中,预先设置至少一个应用功能模块的代码,以及基本功能模块的代码,在实现各种物联网模块时,无需重新编写整套的代码,只需通过配置文件指定需要的目标应用功能模块的代码,通过编译即可实现具有目标应用功能模块和基本功能模块的固件,进而实现需要的物联网模块,本发明实施例最大化复用代码,减少了工作量,缩短了实现同款设备与不同云平台进行交互的开发周期,缩短了测试周期,大大提高了供货效率,大大提高了同款设备在销售渠道上的灵活性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。