发明内容
本发明实施例提供了一种通信实现方法、控制端、智能设备及***,能够提高通信的稳定性。
第一方面,本发明实施例提供了一种通信实现方法,应用于控制端,
注册至少三种通信协议;
从注册的所述至少三种通信协议中选择一种目标通信协议;
利用选择的所述目标通信协议与预设的产品序列号SN对应的智能设备实现通信;还包括:
当选择的所述目标通信协议断线时,从注册的当前未断线的通信协议中选择一种可用通信协议;
利用选择的所述可用通信协议与所述智能设备实现通信。
优选地,
所述注册至少三种通信协议,包括:
创建一个预设的多协议框架的对象;
利用创建的所述对象初始化待注册的所述至少三种通信协议,其中,每一种所述通信协议预先均按照所述多协议框架中定义的同一接口来实现;
调用所述多协议框架中定义的注册协议接口,将已经初始化的每一种所述通信协议注册到所述多协议框架中。
优选地,
所述至少三种通信协议,包括:至少一种本地的通信协议以及至少一种远程的通信协议;
所述从注册的所述至少三种通信协议中选择一种目标通信协议,包括:
根据预设的每一种所述通信协议的优先级,以优先级由高至低的排序规则,对所述至少三种通信协议进行排序;
基于排序后的所述至少三种通信协议,选择一种目标通信协议,其中,在所述智能设备配网前,或者是在所述智能设备配网后且与所述智能设备处于同一局域网时,所述目标通信协议为一本地的通信协议,且所述目标通信协议的优先级不小于所述至少一种本地的通信协议中的任一其他通信协议的优先级;在所述智能设备配网后且与所述智能设备不处于同一局域网时,所述目标通信协议为一远程的通信协议,且所述目标通信协议的优先级不小于所述至少一种远程的通信协议中的任一其他通信协议的优先级。
优选地,
所述当前未断线的通信协议,包括:至少一种当前未断线的本地的通信协议以及至少一种当前未断线的远程的通信协议;
所述从注册的当前未断线的通信协议中选择一种可用通信协议,包括:
根据预设的每一种当前未断线的通信协议的优先级,以优先级由高至低的排序规则,对当前未断线的通信协议进行排序;
基于排序后的当前未断线的通信协议,选择一种可用通信协议,其中,在所述智能设备配网前,或者是在所述智能设备配网后且与所述智能设备处于同一局域网时,所述可用通信协议为一当前未断线的本地的通信协议,且所述可用通信协议的优先级不小于所述至少一种当前未断线的本地的通信协议中的任一其他通信协议的优先级;在所述智能设备配网后且与所述智能设备不处于同一局域网时,所述可用通信协议为一当前未断线的远程的通信协议,且所述可用通信协议的优先级不小于所述至少一种当前未断线的远程的通信协议中的任一其他通信协议的优先级。
第二方面,本发明实施例提供了一种通信实现方法,应用于智能设备,
注册至少三种通信协议;还包括:
按照相应的控制端选择的通信协议与所述控制端实现通信,其中,注册的所述至少三种通信协议中包括所述控制端选择的所述通信协议。
第三方面,本发明实施例提供了一种控制端,包括:注册单元、第一选择单元、第一通信单元、第二选择单元和第二通信单元,其中,
所述注册单元,用于注册至少三种通信协议;
所述第一选择单元,用于从注册的所述至少三种通信协议中选择一种目标通信协议;
所述第一通信单元,用于利用选择的所述目标通信协议与预设的产品序列号SN对应的智能设备实现通信;
所述第二选择单元,用于当选择的所述目标通信协议断线时,从注册的当前未断线的通信协议中选择一种可用通信协议;
所述第二通信单元,用于利用选择的所述可用通信协议与所述智能设备实现通信。
优选地,
所述注册单元,用于创建一个预设的多协议框架的对象;利用创建的所述对象初始化待注册的所述至少三种通信协议,其中,每一种所述通信协议预先均按照所述多协议框架中定义的同一接口来实现;调用所述多协议框架中定义的注册协议接口,将已经初始化的每一种所述通信协议注册到所述多协议框架中。
优选地,
所述至少三种通信协议,包括:至少一种本地的通信协议以及至少一种远程的通信协议;
所述第一选择单元,用于根据预设的每一种所述通信协议的优先级,以优先级由高至低的排序规则,对所述至少三种通信协议进行排序;基于排序后的所述至少三种通信协议,选择一种目标通信协议,其中,在所述智能设备配网前,或者是在所述智能设备配网后且与所述智能设备处于同一局域网时,所述目标通信协议为一本地的通信协议,且所述目标通信协议的优先级不小于所述至少一种本地的通信协议中的任一其他通信协议的优先级;在所述智能设备配网后且与所述智能设备不处于同一局域网时,所述目标通信协议为一远程的通信协议,且所述目标通信协议的优先级不小于所述至少一种远程的通信协议中的任一其他通信协议的优先级。
优选地,
所述当前未断线的通信协议,包括:至少一种当前未断线的本地的通信协议以及至少一种当前未断线的远程的通信协议;
所述第二选择单元,用于根据预设的每一种当前未断线的通信协议的优先级,以优先级由高至低的排序规则,对当前未断线的通信协议进行排序;基于排序后的当前未断线的通信协议,选择一种可用通信协议,其中,在所述智能设备配网前,或者是在所述智能设备配网后且与所述智能设备处于同一局域网时,所述可用通信协议为一当前未断线的本地的通信协议,且所述可用通信协议的优先级不小于所述至少一种当前未断线的本地的通信协议中的任一其他通信协议的优先级;在所述智能设备配网后且与所述智能设备不处于同一局域网时,所述可用通信协议为一当前未断线的远程的通信协议,且所述可用通信协议的优先级不小于所述至少一种当前未断线的远程的通信协议中的任一其他通信协议的优先级。
第四方面,本发明实施例提供了一种智能设备,包括:注册单元和通信单元;
所述注册单元,用于注册至少三种通信协议;
所述通信单元,用于按照相应的控制端选择的通信协议与所述控制端实现通信,其中,注册的所述至少三种通信协议中包括所述控制端选择的所述通信协议。
第五方面,本发明实施例提供了一种通信实现***,包括:上述任一实施例所述的控制端,以及至少一个上述任一实施例所述的智能设备。
本发明实施例提供了一种通信实现方法、控制端、智能设备及***,通过预先注册至少三种通信协议,那么当当前正在使用的通信协议断线时,还可从注册的且当前未断线的其他几种通信协议中选择一种通信协议,然后利用该未断线的通信协议继续维持与智能设备间的通信,极大的避免了当正在使用的通信协议断线时,直接中断与智能设备间的通信的情形,因此,本方案能够提高通信的稳定性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种通信实现方法,应用于控制端,该方法可以包括以下步骤:
步骤101:注册至少三种通信协议。
步骤102:从注册的所述至少三种通信协议中选择一种目标通信协议。
步骤103:利用选择的所述目标通信协议与预设的产品序列号SN对应的智能设备实现通信。
步骤104:当选择的所述目标通信协议断线时,从注册的当前未断线的通信协议中选择一种可用通信协议。
步骤105:利用选择的所述可用通信协议与所述智能设备实现通信。
本发明实施例提供了一种通信实现方法,通过预先注册至少三种通信协议,那么当当前正在使用的通信协议断线时,还可从注册的且当前未断线的其他几种通信协议中选择一种通信协议,然后利用该未断线的通信协议继续维持与智能设备间的通信,极大的避免了当正在使用的通信协议断线时,直接中断与智能设备间的通信的情形,因此,本方案能够提高通信的稳定性。
在本发明一个实施例中,所述步骤101的具体实施方式,包括:创建一个预设的多协议框架的对象;利用创建的所述对象初始化待注册的所述至少三种通信协议,其中,每一种所述通信协议预先均按照所述多协议框架中定义的同一接口来实现;调用所述多协议框架中定义的注册协议接口,将已经初始化的每一种所述通信协议注册到所述多协议框架中。
上述实施例中,预设的多协议框架中定义有一个统一的启动控制端接口manager_start_server(),待注册的有三种通信协议,分别为互联网打印协议(Internet PrintingProtocol,IPP)、可扩展通讯和表示协议(Extensible Messaging and PresenceProtocol,XMPP)以及消息队列遥测传输(Message Queuing Telemetry Transport,MQTT),预先这三种通信协议均需要按照该启动控制端接口分别做实现,如IPP实现的接口为IPP_start_server()、XMPP实现的接口为XMPP_start_server()、MQTT实现的接口为MQTT_start_server(),然后调用多协议框架中定义的注册协议接口,将这三种通信协议注册到该多协议框架中。在使用通信协议时,多协议框架知道这三种通信协议可以使用,所以直接调用启动控制端函数manager_start_server(),就可启动IPP_start_server()、XMPP_start_server()以及MQTT_start_server(),而且,多协议框架可按照注册时设置的每一种通信协议的优先级,从中选择一个优先级最高的通信协议来实现所在控制端与智能设备间的通信。
本发明实施例中,多种通信协议均是按照同一接口做实现,因而大大节省了开发时间,提高了开发效率。
在本发明一个实施例中,所述至少三种通信协议,包括:至少一种本地的通信协议以及至少一种远程的通信协议;所述步骤102的具体实施方式,包括:根据预设的每一种所述通信协议的优先级,以优先级由高至低的排序规则,对所述至少三种通信协议进行排序;基于排序后的所述至少三种通信协议,选择一种目标通信协议,其中,在所述智能设备配网前,或者是在所述智能设备配网后且与所述智能设备处于同一局域网时,所述目标通信协议为一本地的通信协议,且所述目标通信协议的优先级不小于所述至少一种本地的通信协议中的任一其他通信协议的优先级;在所述智能设备配网后且与所述智能设备不处于同一局域网时,所述目标通信协议为一远程的通信协议,且所述目标通信协议的优先级不小于所述至少一种远程的通信协议中的任一其他通信协议的优先级。
例如,注册了四种通信协议,分别是IPP(本地的)、TCP(本地的)、XMPP(远程的)以及MQTT(远程的),假设注册通信协议时指定IPP优先级为2、TCP优先级为4、XMPP优先级为3、MQTT优先级为1,那么至少包括如下情形:
情形1:智能设备在配网前。
此情形下,需要使用本地的通信协议进行通信。具体的,首先按照优先级由高至低的排序规则,对上述注册的四种通信协议进行排序,排序的结果为MQTT、IPP、XMPP、TCP,然后选择优先级最高的MQTT,但由于MQTT为远程的通信协议,因此此时与智能设备间的通信将会不成功,所以在自动从剩余的三种通信协议中选择优先级最高的IPP,由于IPP为本地的通信协议,因此将会与智能设备实现通信。
情形2:智能设备在配网后。
此情形下,当与智能设备处于同一局域网时,需要使用本地的通信协议进行通信,当与智能设备不处于同一局域网时,需要使用远程的通信协议进行通信。具体的,按照排序的结果MQTT、IPP、XMPP、TCP,从中选择优先级最高的MQTT,若当前时刻与智能设备不处于同一局域网中,则将会与智能设备实现通信,若当前时刻与智能设备处于同一局域网中,则与智能设备的通信将会不成功,所以自动从剩余的三种通信协议中选择优先级最高的IPP,此时将会与智能设备实现通信。
在本发明一个实施例中,所述当前未断线的通信协议,包括:至少一种当前未断线的本地的通信协议以及至少一种当前未断线的远程的通信协议;所述步骤104的具体实施方式,包括:根据预设的每一种当前未断线的通信协议的优先级,以优先级由高至低的排序规则,对当前未断线的通信协议进行排序;基于排序后的当前未断线的通信协议,选择一种可用通信协议,其中,在所述智能设备配网前,或者是在所述智能设备配网后且与所述智能设备处于同一局域网时,所述可用通信协议为一当前未断线的本地的通信协议,且所述可用通信协议的优先级不小于所述至少一种当前未断线的本地的通信协议中的任一其他通信协议的优先级;在所述智能设备配网后且与所述智能设备不处于同一局域网时,所述可用通信协议为一当前未断线的远程的通信协议,且所述可用通信协议的优先级不小于所述至少一种当前未断线的远程的通信协议中的任一其他通信协议的优先级。
在本发明实施例中,当正在使用的一种通信协议出现断线时,还可从剩余的其它多种通信协议中选择一种通信协议,以继续维持与智能设备间的稳定通信。
具体的,以上述实施例中注册的四种通信协议IPP、TCP、XMPP以及MQTT为例,针对情形1(智能设备在配网前),假设经过一段时间,由于网络等情况导致当前选择的IPP断线,则可自动再从剩余的当前未断线的三种通信协议MQTT、XMPP和TCP中选择优先级最高的MQTT,由于MQTT为远程的通信协议,与智能设备间的通信将不会成功,所以再从剩余的两种通信协议中选择优先级最高的XMPP,但由于XMPP也为远程的通信协议,因此与智能设备间的通信也不会成功,从而自动选择TCP,利用本地的通信协议TCP与智能设备实现通信,其中,通信协议选择的过程耗时非常短,不会导致智能设备直接下线。可见,即使当前正在使用的IPP出现断线,但由于预先注册了多种通信协议,因此,可由剩余的未断线的TCP继续维持与智能设备间的通信,保证智能设备不下线。针对情形2(智能设备在配网后),假设当前时刻与智能设备不处于同一局域网中,且MQTT在一段时间后出现断线,但也可由已经注册且当前未断线的XMPP维持与智能设备间的通信。
在本发明实施例中,可预先注册多种本地的通信协议,以及多种远程的通信协议,同时设置每一种通信协议对应的优先级,这样,当当前使用的通信协议出现断线时,还可从剩余的相应的通信协议中选择优先级较高的通信协议与智能设备实现通信,从而在维持与智能设备通信的同时,选择优先级较高的通信协议还可进一步提高与智能设备间通信的稳定性。
如图2所示,本发明实施例提供了一种通信实现方法,应用于智能设备,该方法可以包括以下步骤:
步骤201:注册至少三种通信协议。
步骤202:按照相应的控制端选择的通信协议与所述控制端实现通信,其中,注册的所述至少三种通信协议中包括所述控制端选择的所述通信协议。
在本发明实施例中,智能设备中注册的几种通信协议以及每一种通信协议对应的优先级应与相应的控制端一致,以此实现与控制端的通信。
下面将详细说明本发明实施例提供的一种通信实现方法,如图3所示,该方法可以包括以下步骤:
步骤301:控制端注册至少三种通信协议。
在本发明实施例中,可注册IPP、TCP、XMPP、MQTT、UDP等多种通信协议。
步骤302:智能设备注册至少三种通信协议。
在本发明实施例中,智能设备应根据控制端注册的通信协议,注册同样的多种通信协议。
步骤303:控制端根据预设的每一种通信协议的优先级,以优先级由高至低的排序规则,对注册的至少三种通信协议进行排序。
例如,预设的IPP优先级为2、TCP优先级为4、XMPP优先级为3、MQTT优先级为1、UDP优先级为5,那么按照优先级由高至低的排序规则,排序后的结果为MQTT、IPP、XMPP、TCP、UDP。
步骤304:控制端基于排序后的至少三种通信协议,选择一种目标通信协议。
在本发明实施例中,该目标通信协议的选择与智能设备在配网前或者是配网后是否处于同一局域网中有关。例如,当智能设备处于配网前时,该目标通信协议为IPP,那么当智能设备在配网后且不与智能设备处于同一局域网时,该目标通信协议为MQTT,那么当智能设备在配网后且与智能设备处于同一局域网时,该目标通信协议为IPP(假设此过程中还未有通信协议出现断线)。
步骤305:控制端利用选择的目标通信协议与预设的SN对应的智能设备实现通信。
在本发明实施例中,控制端可利用预设的添加控制设备SN的函数来添加至少一个SN,具体的,可根据实际需要控制的智能设备来进行添加,那么针对每一个SN,均需要选择相应的目标通信协议进行通信。
步骤306:智能设备按照控制端选择的目标通信协议与控制端实现通信,其中,智能设备注册的至少三种通信协议中包括控制端选择的目标通信协议。
步骤307:当选择的目标通信协议断线时,控制端根据预设的每一种当前未断线的通信协议的优先级,以优先级由高至低的排序规则,对当前未断线的通信协议进行排序。
步骤308:控制端基于排序后的当前未断线的通信协议,选择一种可用通信协议。
例如,智能设备处于配网前,且选择的IPP协议断线,那么可在当前未断线的两个本地的通信协议中选择出优先级较高的TCP,从而继续维持与智能设备间的通信。
步骤309:控制端利用选择的可用通信协议与智能设备实现通信。
步骤310:智能设备按照控制端选择的可用通信协议与控制端实现通信,其中,智能设备注册的至少三种通信协议中包括控制端选择的可用通信协议。
如图4所示,本发明实施例提供了一种控制端,包括:注册单元401、第一选择单元402、第一通信单元403、第二选择单元404和第二通信单元405,其中,
所述注册单元401,用于注册至少三种通信协议;
所述第一选择单元402,用于从注册的所述至少三种通信协议中选择一种目标通信协议;
所述第一通信单元403,用于利用选择的所述目标通信协议与预设的产品序列号SN对应的智能设备实现通信;
所述第二选择单元404,用于当选择的所述目标通信协议断线时,从注册的当前未断线的通信协议中选择一种可用通信协议;
所述第二通信单元405,用于利用选择的所述可用通信协议与所述智能设备实现通信。
在本发明一个实施例中,所述注册单元,用于创建一个预设的多协议框架的对象;利用创建的所述对象初始化待注册的所述至少三种通信协议,其中,每一种所述通信协议预先均按照所述多协议框架中定义的同一接口来实现;调用所述多协议框架中定义的注册协议接口,将已经初始化的每一种所述通信协议注册到所述多协议框架中。
在本发明一个实施例中,所述至少三种通信协议,包括:至少一种本地的通信协议以及至少一种远程的通信协议;
所述第一选择单元,用于根据预设的每一种所述通信协议的优先级,以优先级由高至低的排序规则,对所述至少三种通信协议进行排序;基于排序后的所述至少三种通信协议,选择一种目标通信协议,其中,在所述智能设备配网前,或者是在所述智能设备配网后且与所述智能设备处于同一局域网时,所述目标通信协议为一本地的通信协议,且所述目标通信协议的优先级不小于所述至少一种本地的通信协议中的任一其他通信协议的优先级;在所述智能设备配网后且与所述智能设备不处于同一局域网时,所述目标通信协议为一远程的通信协议,且所述目标通信协议的优先级不小于所述至少一种远程的通信协议中的任一其他通信协议的优先级。
在本发明一个实施例中,所述当前未断线的通信协议,包括:至少一种当前未断线的本地的通信协议以及至少一种当前未断线的远程的通信协议;
所述第二选择单元,用于根据预设的每一种当前未断线的通信协议的优先级,以优先级由高至低的排序规则,对当前未断线的通信协议进行排序;基于排序后的当前未断线的通信协议,选择一种可用通信协议,其中,在所述智能设备配网前,或者是在所述智能设备配网后且与所述智能设备处于同一局域网时,所述可用通信协议为一当前未断线的本地的通信协议,且所述可用通信协议的优先级不小于所述至少一种当前未断线的本地的通信协议中的任一其他通信协议的优先级;在所述智能设备配网后且与所述智能设备不处于同一局域网时,所述可用通信协议为一当前未断线的远程的通信协议,且所述可用通信协议的优先级不小于所述至少一种当前未断线的远程的通信协议中的任一其他通信协议的优先级。
如图5所示,本发明实施例提供了一种智能设备,包括:注册单元501和通信单元502;
所述注册单元501,用于注册至少三种通信协议;
所述通信单元502,用于按照相应的控制端选择的通信协议与所述控制端实现通信,其中,注册的所述至少三种通信协议中包括所述控制端选择的所述通信协议。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图6所示,本发明实施例提供了一种通信实现***,包括:上述任一实施例所述的控制端601,以及至少一个智能设备602。
本发明实施例提供了一种计算机可读介质,包括计算机执行指令,当存储控制器的处理器执行所述计算机执行指令时,所述存储控制器执行上述任一实施例所述的通信实现方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述存储控制器执行上述任一实施例所述的通信实现方法。
综上,本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,通过预先注册至少三种通信协议,那么当当前正在使用的通信协议断线时,还可从注册的且当前未断线的其他几种通信协议中选择一种通信协议,然后利用该未断线的通信协议继续维持与智能设备间的通信,极大的避免了当正在使用的通信协议断线时,直接中断与智能设备间的通信的情形,因此,本方案能够提高通信的稳定性。
2、在本发明实施例中,在使用各种协议的过程中,不必对协议进行详细了解,执行调用预设的同一接口即可,节省了开发时间,提高了开发效率,而且智能设备在配网前和配网后能够自动切换相应的通信协议,降低了开发人员的开发难度。
3、在本发明实施例中,可预先注册多种本地的通信协议,以及多种远程的通信协议,同时设置每一种通信协议对应的优先级,这样,当当前使用的通信协议出现断线时,还可从剩余的相应的通信协议中选择优先级较高的通信协议与智能设备实现通信,从而在维持与智能设备通信的同时,选择优先级较高的通信协议还可进一步提高与智能设备间通信的稳定性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。