一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种设备控制方法和设备控制系统与流程

2022-05-17 23:39:35 来源:中国专利 TAG:


1.本技术涉及通信领域,尤其涉及一种设备控制方法和设备控制系统。


背景技术:

2.随着电子设备的智能化程度越来越高,电子设备提供的功能越来越多。用户可以通过电子设备上的实体按键或虚拟按钮实现对电子设备的控制。随着用户的需求增加,越来越多的用户需要对电子设备进行远程控制。
3.目前,控制设备可以基于发布/订阅模式实现对被控设备的远程控制,在控制设备对被控设备进行远程控制时,通过对控制指令的加密保证数据的安全。然而,传统的发布订阅模式中,用户可以在总线上任意订阅主题和发布消息,导致这种基于发布订阅模式的设备控制方法的安全性较低。


技术实现要素:

4.本技术提供一种设备控制方法和设备控制系统,可以提高设备控制的安全性。
5.为达到上述目的,本技术采用如下技术方案:第一方面,本技术提供一种设备控制方法,包括:第一设备向第一服务器发送第一订阅报文,第一订阅报文携带第一主题,第一主题携带设备标识,第一服务器具有mqtt代理功能;第一服务器在确定第一主题携带的设备标识和第一设备的设备标识一致的情况下,向第一设备发送第一响应报文,第一响应报文用于表示第一设备成功订阅第一主题;第二设备向第一服务器发送第一发布报文,第一发布报文携带第一主题和第一控制指令;第一服务器基于第一主题携带的设备标识确定第二设备具有在第一主题发布消息的权限;第一服务器向第一设备发送第一发布报文;第一设备基于第一发布报文中的第一控制指令进行响应。
6.本技术实施例中,第一设备可以作为被控设备,第二设备可以作为控制设备,其中,被控设备可以在第一服务器(具有mqtt代理功能的服务器)上订阅的下行主题携带本设备的设备标识,控制设备在对被控设备进行控制时,可以将控制指令发布到被控设备订阅的下行主题上,第一服务器可以基于发布控制指令时的主题中携带的设备标识确定控制设备是否具有在相应的主题上发布消息的权限,在确定控制设备具有在被控设备订阅的下行主题上具有发布权限的情况下,第一服务器可以将控制指令转发给被控设备,被控设备基于接收到的控制指令进行响应。当然,无论控制设备还是被控设备,在于第一服务器进行通信时需要遵循mqtt协议,即传输的消息需要符合mqtt协议规定的报文格式。这种通过电子设备的设备标识的方式可以确定控制设备发布控制指令的权限,也可以确定被控设备订阅下行主题的权限,从而提高了设备控制的安全性。
7.在第一方面的一种实现方式中,在第一设备向第一服务器发送第一订阅报文之前,该方法还包括:第一设备向第一服务器发送第一连接报文,第一连接报文携带第一设备的第一鉴权信息;第一服务器在对第一鉴权信息鉴权成功的情况下,向第一设备发送第二响应报文,第二响应报文用于表示第一设备和第一服务器建立mqtt连接。
8.本技术中,在被控设备在第一服务器上订阅下行主题之前,需要通过第一设备的鉴权信息与第一服务器建立mqtt连接,在建立mqtt连接的情况下,才能够实现基于发布订阅模式的设备控制方法。
9.在第一方面的一种实现方式中,在第一设备向第一服务器发送第一连接报文之前,该方法还包括:第一设备向第二服务器发送第一注册请求,第一注册请求用于注册与第一服务器建立mqtt连接的第一鉴权信息,第二服务器提供http服务,第一注册请求携带第一设备的设备标识;第二服务器根据第一设备的设备标识生成第一设备的第一鉴权信息,将第一鉴权信息存储在数据库,第一服务器具有访问数据库的权限,以在接收到第一设备发送的第一连接报文后,对第一连接报文中的第一鉴权信息进行鉴权;第二服务器向第一设备发送第一鉴权信息。
10.本技术实施例中,可以设置第二服务器,第二服务器为http服务器,被控设备与第一服务器建立mqtt连接时的鉴权信息可以预先通过第二服务器获得。第二服务器可以将被控设备的鉴权信息存储在数据库中,第二服务器在对被控设备进行鉴权时可以访问该数据库,从而使得第二设备能够获得鉴权信息,也使得第二服务器可以对第二设备与第一服务器建立mqtt连接时的鉴权信息进行鉴权。
11.在第一方面的一种实现方式中,第二设备向第一服务器发送第一发布报文之前,该方法还包括:第二设备向第一服务器发送第二连接报文,第二连接报文携带第二设备的第二鉴权信息;第一服务器在对第二鉴权信息鉴权成功的情况下,向第二设备发送第三响应报文,第三响应报文用于表示第二设备和第一服务器建立mqtt连接。
12.在第一方面的一种实现方式中,在第二设备向第一服务器发送第二连接报文之前,该方法还包括:第二设备向第二服务器发送第二注册请求,第二注册请求用于注册与第一服务器建立mqtt连接的第二鉴权信息,第二服务器提供http服务,第二注册请求携带第二设备的设备标识;第二服务器根据第二设备的设备标识生成第二设备的第二鉴权信息,将第二鉴权信息存储在数据库,第一服务器具有访问数据库的权限,以在接收到第二设备发送的第二连接报文后,对第二连接报文中的第二鉴权信息进行鉴权;第二服务器向第二设备发送第二鉴权信息。
13.本技术中,控制设备获得与第一服务器建立mqtt连接的鉴权信息的过程和被控设
备获得与第一服务器建立mqtt连接的鉴权信息的过程相同。
14.在第一方面的一种实现方式中,第二设备向第二服务器发送第二注册请求之前,该方法还包括:第二设备向第二服务器发送登录请求,登录请求携带第一账号和登录密码;第二服务器在对第一账号和登录密码鉴权成功的情况下,与第二设备建立http连接。
15.在第一方面的一种实现方式中,第二服务器与第二设备建立http连接之后,该方法还包括:第二服务器向第二设备发送第一账号下的设备,第一账号下的设备包括第二设备;第二设备通过近场通信的方式向第一设备发送注册指令,注册指令用于指示第一设备向第二服务器发送第一注册请求。
16.本技术实施例中,可以由控制设备通过近场通信的方式触发被控设备向第二服务器注册与第一服务器建立mqtt连接的鉴权信息,而不是由用户操控被控设备实现,可以使得更多的类型的电子设备作为被控设备。例如,在实际应用中,可以不对电子设备进行硬件上的改进,更新电子设备上的软件,就可以将该电子设备作为被控设备实现本技术实施例提供的设备控制方法。
17.在第一方面的一种实现方式中,第二服务器与第二设备建立http连接之后,该方法还包括:第二设备通过近场通信的方式发现第三设备,第三设备包括第一设备;第二设备将第一设备添加为第一账号下的设备,并将第一设备和第一账号的从属关系向第二服务器发送;第二服务器将第一设备和第一账号的从属关系存储在数据库,以在第一服务器接收到第二设备发送的第一发布报文之后,基于数据库存储的第一设备和第一账号的从属关系、以及当前登录第一账号的第二设备,确定第二设备具有在携带第一设备的设备标识的第一主题发布消息的权限。
18.本技术中,可以设置登录第一账号的电子设备(第二设备)具有属于第一账号的电子设备(第一设备)订阅的下行主题上发布消息的权限。由于下行主题中携带第一设备的设备标识,所以可以基于数据库存储的第一设备和第一账号的从属关系、以及当前登录第一账号的第二设备,确定第二设备具有在携带第一设备的设备标识的第一主题发布消息的权限,从而提高安全性。
19.在第一方面的一种实现方式中,该方法还包括:第二设备向第一服务器发送第二订阅报文,第二订阅报文携带第二主题,第二主题携带设备标识;第一服务器在确定第二主题携带的设备标识和第二设备的设备标识一致的情况下,向第二设备发送第四响应报文,第四响应报文用于表示第二设备成功订阅第二主题。
20.本技术中,无论控制设备还是被控设备在与第一服务器进行交互时,均作为mqtt的客户端。在设备控制过程中,若被控设备需要将对控制指令的响应发送给控制设备,则控制设备也需要订阅有下行主题。被控设备向控制指令的响应发布到控制设备的下行主题上
从而实现控制指令的响应的传输。
21.在第一方面的一种实现方式中,在第一设备基于第一发布报文中的第一控制指令进行响应之后,该方法还包括:第一设备向第一服务器发送第二发布报文,第二发布报文携带第二主题和第一控制指令的响应结果;第一服务器基于第二主题携带的设备标识确定第一设备具有在第二主题发布消息的权限;第一服务器向第二设备发送第二发布报文。
22.第二方面,本技术提供一种设备控制系统,包括:第一设备,用于向第一服务器发送第一订阅报文,第一订阅报文携带第一主题,第一主题携带设备标识,第一服务器具有mqtt代理功能;第一服务器,用于在确定第一主题携带的设备标识和第一设备的设备标识一致的情况下,向第一设备发送第一响应报文,第一响应报文用于表示第一设备成功订阅第一主题;第二设备,用于向第一服务器发送第一发布报文,第一发布报文携带第一主题和第一控制指令;第一服务器,还用于基于第一主题携带的设备标识确定第二设备具有在第一主题发布消息的权限;向第一设备发送第一发布报文;第一设备,还用于基于第一发布报文中的第一控制指令进行响应。
23.在第二方面的一种实现方式中,该系统还包括第二服务器;第一设备,还用于在向第一服务器发送第一订阅报文之前,向第二服务器发送第一注册请求,第一注册请求用于注册与第一服务器建立mqtt连接的第一鉴权信息,第二服务器提供http服务,第一注册请求携带第一设备的设备标识;第二服务器,还用于根据第一设备的设备标识生成第一设备的第一鉴权信息,将第一鉴权信息存储在数据库,向第一设备发送第一鉴权信息;第一设备,还用于向第一服务器发送第一连接报文,第一连接报文携带第一设备的第一鉴权信息;第一服务器,还用于访问数据库,对第一连接报文中的第一鉴权信息进行鉴权;在对第一鉴权信息鉴权成功的情况下,向第一设备发送第二响应报文,第二响应报文用于表示第一设备和第一服务器建立mqtt连接。
24.在第二方面的一种实现方式中,该系统还包括第二服务器;第二设备,还用于在向第一服务器发送第一发布报文之前,向第二服务器发送登录请求,登录请求携带第一账号和登录密码;第二服务器,还用于在对第一账号和登录密码鉴权成功的情况下,与第二设备建立http连接;第二设备,还用于向第二服务器发送第二注册请求,第二注册请求用于注册与第一服务器建立mqtt连接的第二鉴权信息,第二服务器提供http服务,第二注册请求携带第二设备的设备标识;第二服务器,还用于根据第二设备的设备标识生成第二设备的第二鉴权信息,将
第二鉴权信息存储在数据库,向第二设备发送第二鉴权信息;第二设备,还用于向第一服务器发送第二连接报文,第二连接报文携带第二设备的第二鉴权信息;第一服务器,用于访问数据库,对第二连接报文中的第二鉴权信息进行鉴权,在对第二鉴权信息鉴权成功的情况下,向第二设备发送第三响应报文,第三响应报文用于表示第二设备和第一服务器建立mqtt连接。
25.在第二方面的一种实现方式中,第二设备,还用于在与第二服务器建立http连接之后,通过近场通信的方式发现第三设备,第三设备包括第一设备;将第一设备添加为第一账号下的设备,并将第一设备和第一账号的从属关系向第二服务器发送;第二服务器,还用于将第一设备和第一账号的从属关系存储在数据库,以在第一服务器接收到第二设备发送的第一发布报文之后,基于数据库存储的第一设备和第一账号的从属关系、以及当前登录第一账号的第二设备,确定第二设备具有在携带第一设备的设备标识的第一主题发布消息的权限;向第二设备发送第一账号下的设备,第一账号下的设备包括第二设备;第二设备,还用于通过近场通信的方式向第一设备发送注册指令,注册指令用于指示第一设备向第二服务器发送第一注册请求。
26.在第二方面的一种实现方式中,第二设备,还用于向第一服务器发送第二订阅报文,第二订阅报文携带第二主题,第二主题携带设备标识;第一服务器,还用于在确定第二主题携带的设备标识和第二设备的设备标识一致的情况下,向第二设备发送第四响应报文,第四响应报文用于表示第二设备成功订阅第二主题;第一设备,还用于在基于第一发布报文中的第一控制指令进行响应之后,向第一服务器发送第二发布报文,第二发布报文携带第二主题和第一控制指令的响应结果;第一服务器,还用于基于第二主题携带的设备标识确定第一设备具有在第二主题发布消息的权限;向第二设备发送第二发布报文。
27.可以理解的是,上述第二方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
28.图1为本技术实施例提供的一种电子设备的硬件结构示意图;图2为本技术实施例提供的一种设备控制方法的应用场景示意图;图3为本技术实施例提供的设备控制方法的实现原理示意图;图4为本技术实施例提供的设备控制方法的实现原理示意图;图5为本技术实施例提供的设备控制方法的一种界面示意图;图6为本技术实施例提供的设备控制方法中控制设备和被控设备的注册过程时序图;图7为本技术实施例提供的设备控制方法的另一种界面示意图;图8为本技术实施例提供的设备控制方法的控制设备和被控设备的订阅过程时序图;
图9为本技术实施例提供的设备控制方法的另一种界面示意图;图10为本技术实施例提供的设备控制方法的控制过程时序图;图11为本技术实施例提供的设备控制方法的另一种界面示意图;图12为本技术实施例提供的设备控制方法的多个控制场景示意图。
具体实施方式
29.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。
30.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
31.还应当理解,在本技术实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
32.另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”、“第四”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
33.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
34.本技术实施例提供的一种设备控制方法,该设备控制方法可以实现作为控制设备的电子设备对作为被控设备的电子设备的远程控制。其中,作为控制设备的电子设备为具有显示屏的电子设备中。该作为控制设备的电子设备可以为平板电脑、手机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)等电子设备。该电子设备可以展示作为被控设备的电子设备的一些信息,例如,要控制的功能等。该作为被控设备的电子设备可以为具有显示屏的电子设备,也可以为不具有显示屏的电子设备。该作为被控设备的电子设备可以为上述列举的作为控制设备的电子设备,还可以为上述为列举的其他电子设备,例如,空调、热水器、智能音箱、大屏设备、路由器等。本技术实施例对电子设备的具体类型不作限定。
35.图1示出了一种可以作为控制设备的电子设备的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,摄像头193,显示屏194,以及用户标识模块( subscriber identification module,sim)卡接口195等。其中,传感器模块180可以包括压
力传感器180a,触摸传感器180k等。
36.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
37.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110用于执行本技术实施例中的设备控制方法。
38.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
39.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
40.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。
41.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
42.内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序。
43.此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
44.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。
45.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
46.在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
47.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
48.天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
49.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
50.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
51.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
52.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
53.音频模块170用于将数字音频信号转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
54.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
55.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
56.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了监听语音信息,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
57.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,
ctia)标准接口。
58.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180a检测触摸操作强度。电子设备100也可以根据压力传感器180a的检测信号计算触摸的位置。
59.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
60.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
61.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
62.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
63.显示屏194用于显示图像,视频等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。
64.摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或n个摄像头193,n为大于1的正整数。
65.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或n个sim卡接口,n为大于1的正整数。
66.当然,被控设备可以包括图1所示实施例中的电子设备中的部分部件,也可以包括图1所示实施例中的电子设备中以外的其他部件。
67.本技术实施例提供的设备控制方法在实现控制设备对被控设备的远程控制时,还需要服务器的参与。即本技术实施例还提供一种设备控制系统,该系统包括:控制设备、被控设备和服务器。本技术实施例并未特别限定一种设备控制方法的执行主体的具体结构,只要可以通过运行记录有本技术实施例的一种设备控制方法的代码,以根据本技术实施例提供的一种设备控制方法进行处理即可。例如,本技术实施例提供的一种设备控制方法的执行主体可以是电子设备和/或服务器中能够调用程序并执行程序的功能模块,或者为应用于电子设备和/或服务器中的处理装置,例如,芯片。
68.本技术实施例提供一种设备控制方法,可以应用在远场环境中。该设备控制方法可以实现一个设备对另一设备的远场控制。
69.作为应用场景的一个示例,用户可以携带手机外出,在用户携带手机外出期间,用户可以通过用户携带的手机对用户家居环境中的其他设备(例如,热水器、空调、无线路由器、大屏设备等)进行控制。
70.本技术实施例提供的设备控制方法需要至少两个设备参与。其中,至少存在一个设备作为控制设备,该控制设备可以记为第二设备,至少存在一个设备作为被控设备,该被控设备可以记为第一设备;控制设备可以向被控设备发出控制指令,被控设备可以接收控制设备发出的控制指令,并基于接收到的控制指令作出响应,还可以将响应结果传输给控制设备。
71.当然,实际应用中,控制设备和被控设备的区分并非预先设置好的,而是根据控制场景,将发出控制指令的设备记为控制设备,将接收控制指令并作出响应的设备记为被控设备。
72.本技术实施例提供的设备控制方法可以应用在一个控制设备控制一个被控设备的场景中,例如,图2中的(a),一个控制设备可以向一个被控设备发送控制指令,该被控设备可以向控制设备返回响应。
73.该设备控制方法也可以应用在一个控制设备控制多个被控设备的场景中,例如,图2中的(b),一个控制设备可以在不同的时间分别向两个不同的被控设备发出控制指令,每个控制设备根据接收到的控制指令做出响应,还可以将响应结果发送给控制设备。
74.该设备控制方法还可以应用在多个控制设备控制一个被控设备的场景中,例如,图2中的(c),两个不同的控制设备可以在不同时间分别向被控设备发送控制指令,控制设备根据接收到的控制指令做出响应,还可以将响应结果发送给与该响应结果对应的控制指令指向的控制设备,其中,控制指令指向的控制设备表示发出该控制指令的控制设备。
75.当然,该设备控制方法还可以应用多个不同的控制设备控制多个不同被控设备的场景中,该场景中,每个控制设备均可以控制多个不同的被控设备,每个被控设备可以被多个不同的控制设备控制。
76.本技术实施例对该设备控制方法的应用场景不做限制。
77.首先,以任意场景中的一个控制设备和一个被控设备作为示例,描述本技术实施例提供的设备控制方法的实现原理图。
78.参见图3,控制设备通过网络1与云服务器建立通信连接,被控设备通过网络2与云服务器建立通信连接。网络1可以是控制设备所在环境中能够连接到的网络,网络2可以是被控设备所在环境中能够连接到的网络。网络1和网络2可以是不同的网络,例如,网络1是控制设备中的用户身份识别模块(subscriber identity module,sim)连接的数据蜂窝网络,网络2是被控设备中的wi-fi模块连接的无线局域网络。当然,实际应用中,网络1和网络2也可以是同一类型的不同网络。例如,网络1是控制设备中的wi-fi模块连接的第一无线局域网络,网络2是被控设备中的wi-fi模块连接的第二无线局域网络。
79.控制设备通过网络1将控制指令发送到云服务器上,云服务器通过网络2将控制指令发送给被控设备。被控设备接收到该控制指令后,可以基于该控制指令执行相应的动作。
80.当然,在被控设备需要向控制设备发送该控制指令对应的响应(例如,该响应可以表示已经成功执行该控制指令,该响应还可以是执行该控制指令后得到的结果)的情况下,被控设备通过网络2将响应发送到云服务器上,云服务器通过网络1将该响应发送给控制设
备。
81.该示例中,云服务器可以为一个服务器,也可以为多个服务器组成的服务器组。
82.负责在控制设备和被控设备之间进行消息传输的云服务器具有消息队列遥测传输(message queue telemetry transport,mqtt)代理功能。mqtt为一种基于发布订阅范式的消息协议,可以工作在tcp/ip协议族上。
83.当然,实际应用中,无论是控制设备还是被控设备均需要具有与云服务器建立mqtt连接的鉴权信息。
84.作为鉴权信息的一个示例,可以设置该鉴权信息包括用户名和密码。其中,用户名为电子设备的设备唯一标识,例如,该用户名可以为云服务器生成且用于表示不同设备的id,还可以是该电子设备的国际移动设备识别码(international mobile equipment identity,imei)等。本技术对用户名的具体形式不做限定。
85.作为鉴权信息的另一示例,可以设置该鉴权信息包括用户名、密码和其他信息。该其他信息可以包括电子设备的唯一标识,该用户名可以是云服务器为不同设备生成的用于表示不同设备的信息。当然,实际应用中,即使该鉴权信息中的其他信息包括该电子设备的设备唯一标识,该用户名也可以为该电子设备的设备唯一标识。
86.电子设备的鉴权信息可以由云服务器在电子设备注册时为电子设备生成并存储在数据库中。
87.无论被控设备还是控制设备均可以采用上述示例的鉴权信息作为与云服务器建立mqtt连接时的鉴权信息。
88.该鉴权信息可以通过在云服务器上注册获得。为了更清楚了解控制设备和被控设备在云服务器上注册获得鉴权信息的过程,下面将通过以下示例进行描述。
89.参见图4,本技术实施例中,云服务器包括至少两个服务器,其中一个服务器为http服务器,用于与控制设备建立http连接;一个服务器为mqtt服务器,用于与控制设备和被控设备分别建立mqtt连接。当然,http服务器和mqtt服务器也可以为一个服务器,该服务器具有实现mqtt通信的接口和实现http通信的接口。为了便于描述,将负责http通信的部分记为http服务器,也可以记为第二服务器,将负责mqtt通信的部分记为mqtt服务器,也可以记为第一服务器。
90.本技术实施例中,控制设备在向被控设备发送控制指令之前,可以包括以下几个步骤:控制设备和被控设备之间通过近场通信的方式添加设备,控制设备和被控设备分别在http服务器上注册获得各自的鉴权信息,控制设备和被控设备分别通过各自的鉴权信息与mqtt服务器建立mqtt连接,在mqtt服务器上订阅下行主题。在被控设备在mqtt服务器上订阅了下行主题的情况下,控制设备才能够基于该被控设备的下行主题向被控设备发送控制指令,在控制设备订阅了下行主题的情况下,被控设备才能够基于该控制设备的下行主题向控制设备发布控制指令对应的响应。
91.当然,实际应用中,还可以包括以上述列举的步骤更多的步骤,例如http服务器可以将电子设备的鉴权信息存储在数据库中,mqtt服务器需要访问数据库以对电子设备的订阅权限和发布权限进行鉴权。
92.在具体实现时,用户需要预先在http服务器上注册有第一账号,该第一账号可以为用户的手机号注册的账号或者用户的其他信息(例如,电子邮箱、或者对用户的身份信息
进行过认证的其他账号等)注册的账号。当然,在注册第一账号时,可以设置该第一账号对应的登录密码。
93.下面首先介绍控制设备和被控设备之间通过近场通信的方式添加设备的相关内容。
94.该http服务器可以对应设置有客户端,该客户端提供本技术实施例提供的设备控制功能。该客户端可以以应用软件的形式安装在电子设备中,用户通过第一账号和登录密码登录该客户端,以通过该客户端与http服务器建立连接。其中,该应用软件可以命名为“智慧空间”。当然,实际应用中,也可以以其他名字命名,应用软件的名称用于与其他应用软件区分。
95.在用户通过第一账号和登录密码登录客户端之后,用户可以通过客户端所在的电子设备添加其他电子设备。
96.作为示例,用户可以通过客户端对应的界面上的控件触发安装该客户端的电子设备发现其他电子设备,用户可以通过客户端对应的界面上的控件将发现的其他电子设备添加为该第一账号下的设备。
97.例如,参见图5所示的智慧空间的界面1,为用户通过第一账号和登录密码成功登录智慧空间后的界面,该界面的右上角的“ ”控件可以实现发现其他电子设备并添加发现的电子设备为第一账号下的设备。例如,发现的其他电子设备可以记为第三设备,可以将第三设备中的一个或多个电子设备添加到第一账号,例如,添加到第一账号之后,且作为本技术实施例提供的被控设备的电子设备记为第二设备。
98.当然,实际应用中,还可以采用其他方式将其他电子设备添加为第一账号下的电子设备,本技术实施例对在第一账号下添加设备的方式不做限定。
99.通过上述操作,第一账号下关联有一个或多个设备。当然,该第一账号下的设备均会通过该客户端发送至http服务器,以将第一账号下的设备(即第一账号和第一账号下的电子设备的从属关系)存储在数据库中。
100.在应用本技术实施例提供的设备控制方法时,安装有该客户端、且通过第一账号和登录密码登录该客户端以与http服务器建立连接的电子设备可以记为设备a。该第一账号下的设备可以记为设备b。该设备a可以作为本技术实施例中的控制设备,该设备b可以作为本技术实施例中的被控设备。
101.在添加设备之后,下面将介绍控制设备和被控设备分别在http服务器上注册获得各自的鉴权信息的相关内容。
102.参见图6,为本技术实施例提供的控制设备和被控设备在http服务器上注册以获得与mqtt服务器建立mqtt连接的鉴权信息的时序图。该示例中,手机1作为控制设备。
103.s101,手机1向http服务器发送第一账号和登录密码。
104.本技术实施例中,手机1中安装有应用软件。该应用软件提供了登录该http服务器的入口。用户可以在该应用软件提供的登录界面输入第一账号和登录密码,然后点击“登录”控件,该应用软件所在的手机1向http服务器发送该第一账号和登录密码。该第一账号和登录密码可以携带在手机1向http服务器发送的登录请求中。
105.当然,实际应用中,http服务器的维护厂商还可以开发网页版的入口以供用户输入第一账号和登录密码,从而享受该http服务器提供的相关功能。
106.s102,http服务器对接收到的第一账号和登录密码进行鉴权,在鉴权成功的情况下,向手机1返回用于表示鉴权成功的信息。
107.实际应用中,在http服务器对第一账号和登录密码鉴权成功的情况下,控制设备和http服务器建立http连接,用户可以享受该http服务器为第一账号提供的相关功能。
108.例如,http服务器会向客户端所在的手机1返回该第一账号下关联的设备的明细。手机1的客户端对应的界面中将显示第一账号下的设备。
109.参照图5,为本技术实施例提供的客户端显示第一账号下的设备的界面示意图。
110.该界面中可以显示登录的第一账号为“137********”。该界面中显示3个我的设备,分别为:路由3、智慧屏x1和earbuds3 pro(无线耳机)。其中,每个设备下方标注有该设备的状态。当然,该界面仅用于示例,并不对本技术造成限制。
111.例如,路由3当前的状态为在线,表示路由3和手机1当前可以通过近场通信的方式进行通信,即手机1可以通过近场通信的方式控制路由3。
112.智慧屏x1当前的状态为在线,即手机1可以通过近场通信的方式控制智慧屏x1。
113.earbuds3 pro(无线耳机)当前的状态为未连接,即手机1当前未连接上耳机earbuds3 pro。手机1无法对耳机earbuds3 pro进行控制。
114.s103,手机1向http服务器发送注册请求,该注册请求用于注册与mqtt服务器建立mqtt连接的鉴权信息。
115.在实际应用中,在步骤s102之后,即手机1接收到鉴权成功的信息之后,可以设置如下逻辑:接收到鉴权成功的信息的控制设备判断是否已经具有与mqtt服务器建立mqtt连接的鉴权信息;在接收到鉴权成功的信息的控制设备不具有与mqtt服务器建立mqtt连接的鉴权信息的情况下,该控制设备向http服务器发送该注册请求;在接收到鉴权成功的信息的控制设备具有与mqtt服务器建立mqtt连接的鉴权信息的情况下,该控制设备可以通过该鉴权信息与mqtt服务器建立mqtt连接。
116.当然,实际应用中,还可以采用其他方式触发控制设备向http服务器发送注册请求,以获得与mqtt服务器建立mqtt连接的鉴权信息。
117.如图5所示的界面1,在手机1未注册与mqtt服务器建立mqtt连接的鉴权信息的情况下,智慧空间显示的界面1中可以设置有“远程”控件,用户可以通过该“远程”控件触发手机1在未注册与mqtt服务器建立mqtt连接的鉴权信息的情况下,向http服务器发送注册请求。
118.在控制设备未注册与mqtt服务器建立mqtt连接的鉴权信息的情况下,该“远程”控件将显示在该界面中,在控制设备已经注册与mqtt服务器建立mqtt连接的鉴权信息的情况下,该“远程”控件可以为不可操作的控件或隐藏。
119.作为另一示例,还可以设置在控制设备已经注册与mqtt服务器建立mqtt连接的鉴权信息的情况下,该“远程”控件显示并可操作,用户可以通过该“远程”控件触发控制设备向http服务器发送连接请求。在控制设备已经与mqtt服务器建立mqtt连接的情况下,该“远程”控件可以为不可操作的控件或隐藏。
120.当然,图5所示的界面1以及“远程”控件的描述仅用于示例,并不对本技术造成任
何限制。
121.s104,http服务器在接收到手机1发送的注册请求之后,为手机1生成鉴权信息(例如,用户名1和密码1)。
122.本技术实施例中,可以以鉴权信息包括用户名和密码为例,用户名可以为手机1的设备唯一标识,密码可以为账号服务器为手机1按照一定规则生成的密码。本技术实施例中,手机1与mqtt服务器建立mqtt连接的鉴权信息为用户名1和密码1。
123.s105,http服务器将鉴权信息(用户名1和密码1)存储在数据库中。
124.需要说明,由于用户名1和密码1为手机1用于与mqtt服务器建立mqtt连接的鉴权信息,因此,mqtt服务器具有访问该数据库的权限,以便于手机1通过该鉴权信息与mqtt服务器建立mqtt连接时,通过访问该数据库的方式获得鉴权结果。
125.s106,在http服务器成功将鉴权信息存储在数据库中之后,还需要向手机1发送注册成功的消息。该注册成功的消息可以携带该手机1的鉴权信息(用户名1和密码1)。
126.手机1可以将该鉴权信息存储在手机的本地存储空间,以在与mqtt服务器建立mqtt连接时,从手机的本地存储空间获取该鉴权信息,当然,该鉴权信息以何种方式(例如,存储位置、加密方式等)存储在本地存储空间不做限制。
127.另外,实际应用中,该鉴权信息也可以不存在本地存储空间,在手机1与mqtt服务器建立连接之前,手机1通过第一账号和登录密码从http服务器获取该鉴权信息。
128.在实际应用中,手机1上通过第一账号和登录密码登录http服务器后,在手机1拥有用户名1和密码1的情况下,可以主动和mqtt服务器建立mqtt连接;也可以由用户通过界面上的控件触发手机1和mqtt服务器建立mqtt连接。本技术对具体实现方式不做限制。
129.图6所示实施例未示出手机1与mqtt服务器建立mqtt连接的过程,建立mqtt连接的过程可参照后续实施例的描述。
130.在本技术实施例中,无论控制设备还是被控设备均需要具有鉴权信息才能够与mqtt服务器建立mqtt连接,以实现控制设备对被控设备的控制。
131.下面描述被控设备注册与mqtt服务器建立mqtt连接的鉴权信息的过程。
132.步骤s201,手机1通过近场通信的方式向第一账号下的设备中的一个设备发送注册指令。
133.本技术实施例中,该一个设备为第一账号下的设备中未注册与mqtt服务器建立mqtt连接的鉴权信息的电子设备。该第一账号下的设备中的一个设备可以作为本技术实施例中的被控设备。
134.需要说明,在被控设备注册与mqtt服务器建立mqtt连接的鉴权信息时,该控制设备和被控设备需要通过近场通信的方式进行信息交互,以触发被控设备获得与mqtt服务器建立mqtt连接的鉴权信息。
135.如图5所示,用户可以在路由3对应的控件上进行操作,以触发智慧空间显示该路由3对应的操控界面。
136.参见图7,为智慧空间显示的路由3对应的操控界面(记为界面2)。当路由3当前为在线状态(手机1和路由3可以通过近场通信的方式进行信息交互)时,该在线状态对应的界面中可以设置有多个类目,例如,网速类目,用于设置路由3的网速;定时类目,用于设置路由3的定时开关机时间;关机类目,用于关闭路由3。当然,这些类目下还可以设置多个子类
目,以通过子类目实现对路由3的控制,例如,网速类目下设置的测速子类目等。该在线状态对应的界面中的控制功能仅用于举例,并不对本技术造成任何限制。
137.该界面中还设置有“远程”控件。当用户点击该“远程”控件时,手机1通过近场通信的方式向路由3发送注册指令。该注册指令用于指示路由3向http服务器注册用于与mqtt服务器建立mqtt连接的鉴权信息。
138.本技术实施例中的近场通信的方式包括但不限于:控制设备和被控设备通过蓝牙连接后,通过各自的蓝牙模块进行通信;控制设备和被控设备连接在同一无线局域网下,控制设备和被控设备通过各自的wi-fi模块进行通信等。
139.步骤202,被控设备(例如,路由3)接收到注册指令后,可以向http服务器发送注册请求。该注册请求用于注册与mqtt服务器建立mqtt连接的鉴权信息。
140.步骤203,http服务器接收到被控设备发送的注册请求后,为被控设备生成鉴权信息。该鉴权信息可以为用户名2和密码2。
141.http服务器为被控设备生成鉴权信息的方式和http服务器为控制设备生成鉴权信息的方式相同。
142.步骤204,http服务器为被控设备生成鉴权信息之后,可以将被控设备的鉴权信息(用户名2和密码)保存在数据库中。
143.当然,实际应用中,被控设备的鉴权信息的保存方式可以和控制设备的鉴权信息的保存方式一致,具体可参照控制设备的鉴权信息的保存的相关描述。
144.步骤205,在http服务器成功将被控设备的鉴权信息保存在数据库中之后,http服务器向被控设备发送注册成功的信息,该注册成功的信息携带有被控设备的鉴权信息(用户名2和密码)。
145.为了便于区分,可以将控制设备发送的注册请求记为第二注册请求,控制设备的鉴权信息记为第二鉴权信息,可以将被控设备发送的注册请求记为第一注册请求,被控设备的鉴权信息记为第一鉴权信息。
146.如前所述,在控制设备对被控设备进行控制之前,控制设备和被控设备需要分别通过各自的鉴权信息与mqtt服务器建立mqtt连接,并在mqtt服务器上订阅下行主题,下面将描述该过程。
147.参见图8,为本技术实施例提供的控制设备和被控设备分别与mqtt服务器建立mqtt连接,并分别订阅下行主题的过程。
148.步骤301,被控设备在获得鉴权信息、且检测到网络的情况下,(例如,路由3)向mqtt服务器发送连接请求,该连接请求携带被控设备的鉴权信息(用户名2和密码2)。
149.本技术实施例中,被控设备和控制设备作为两个独立的设备,可以分别在合适的条件下与mqtt服务器建立mqtt连接。
150.作为示例,被控设备在注册获得与mqtt服务器建立mqtt连接的鉴权信息之后,可以在能够检测到网络的情况下,向mqtt服务器发送连接请求。
151.本技术实施例中,mqtt服务器为mqtt的服务端,无论控制设备还是被控设备均为mqtt的客户端。被控设备和控制设备作为mqtt的客户端与mqtt服务器进行通信时,均需要遵循mqtt协议。
152.作为示例,mqtt控制报文由三部分组成:固定报头、可变报头和有效载荷。
153.其中,固定报头中包含该控制报文的类型。例如,从客户端到服务端的连接请求、从服务端到客户端的连接请求的响应。
154.当然,实际应用中,还可以存在其他类型,作为示例,从客户端到服务端的订阅请求,从服务端到客户端的订阅请求的响应;从客户端到服务端的消息发布,从服务端到客户端的消息发布的响应;从服务端到客户端的消息发布,从客户端到服务端的消息发布的响应;从客户端到服务端的心跳请求,从服务端到客户端的心跳响应等,详细可参照后续实施例的描述。
155.在一些类型的报文中,可以不存在可变报头和/或有效载荷。当然,即使存在可变报头和/或有效载荷,可变报头和有效载荷的内容也可能存在不同。具体可参照后续每个类型的报文的描述。
156.连接请求对应的控制报文为连接报文,该连接报文可以命名为connect报文。该connect报文的固定报头中包含了:用于表示该报文类型为connect报文的字段。
157.该connect报文的可变报头中包含了:协议名字段(用于表示mqtt协议)、协议级别字段(用于表示mqtt协议的版本)、连接标志字段(用于指定mqtt连接行为以及是否存在有效载荷等)和保持连接字段(用于表示两个控制报文之间允许的最大时间间隔)。
158.在connect报文的连接标志字段表示存在有效载荷的情况下,该connect报文的有效载荷中包含以下信息:用于区分不同客户端的客户端标识符(clientid)、鉴权信息(用户名2和密码2)等。
159.步骤302,mqtt服务器接收到连接请求的情况下,需要基于连接请求中内容进行鉴权。
160.作为示例,步骤s3021,mqtt服务器将connect报文中的有效载荷中的鉴权信息(用户名2和密码2)发送给数据库,以通过数据库进行鉴权。
161.步骤s3022,数据库对接收到的鉴权信息进行鉴权,返回鉴权结果:鉴权成功。
162.通过数据库进行鉴权为鉴权过程的一个示例,在实际应用中,还可以采用其他方式进行鉴权。例如,mqtt服务器从数据库中获取存储的该控制设备的鉴权信息,mqtt基于从数据库中获取的鉴权信息和从被控设备接收到的鉴权信息进行鉴权过程。
163.步骤303,mqtt服务器在确定鉴权成功的情况下,向被控设备发送用于表示连接请求的响应报文:连接被接受。
164.用于表示连接请求的响应报文可以命名为connack报文。该connack报文的固定报头包括用于表示该报文类型为connack报文的字段。
165.connack报文的可变报头包括连接确认标志字段(用于表示确认当前连接)和连接返回码(用于表示当前响应的含义)。
166.作为示例,在鉴权成功的情况下,mqtt服务器返回给被控设备的connack报文的连接返回码的含义表示连接已被服务器接受。例如,可以用连接返回码0(0x00)表示连接已被服务器接受。
167.在鉴权不成功的情况下,mqtt服务器返回给被控设备的connack报文的连接返回码的含义表示连接已被服务端拒绝以及拒绝的原因(例如,无效的用户名和密码)等。例如,可以用连接返回码4(0x04)表示连接被拒绝,拒绝的原因为无效的用户名或密码。
168.当然,实际应用中,鉴权成功的情况下,mqtt服务器返回给被控设备的connack报
文的连接返回码的含义也可能表示连接被服务端拒绝,只是拒绝的原因可能为其他原因,例如,mqtt服务不可用等。可以用连接返回码3(0x03)表示连接被服务端拒绝,拒绝的原因为mqtt服务不可用。
169.connack报文中可以没有有效载荷。
170.在被控设备和mqtt服务器建立mqtt连接后,被控设备可以查看是否已经订阅了下行主题,若未订阅下行主题,则可以向mqtt服务器发送订阅请求,若已经订阅了下行主题,则无需向mqtt服务器发送订阅请求。
171.步骤304,被控设备在确定未订阅下行主题的情况下,向mqtt服务器发送下行主题的订阅请求。
172.同样,下行主题的订阅报文(命名为subscribe报文)也包含固定报头、可变报头和有效载荷。
173.其中,固定报头包含了用于表示当前报文的报文类型为subscribe报文的字段。
174.可变报头包含了报文标识符,该报文标识符用于在重发同一报文的场景中,使用相同的报文标识符表示当前报文为重发的哪一个报文。
175.有效载荷中包含主题过滤器列表,该主题过滤器列表用于表示客户端想要订阅的下行主题。本技术实施例可以设置每个设备可以订阅一个下行主题,且每个设备订阅的下行主题与设备id关联,以便于进行权限校验。
176.作为示例,可以设置主题名称中携带设备id。每个客户端只能订阅携带本身设备id的下行主题。
177.在实际应用中,在每个设备在mqtt服务器上注册之后,mqtt服务器可以以预先设定的规则根据每个设备的设备id生成主题,该主题的特定位置携带设备id。而每个设备可以在mqtt服务器上订阅本设备的设备id生成的主题。每个设备在subscribe报文中的主题过滤器列表中的主题是每个设备以同样的规则根据各自设备的设备id生成的。
178.步骤305,mqtt服务器对接收到的订阅请求进行权限校验:确定被控设备的用户名2(设备id)和主题2中的设备id一致。
179.当然,若鉴权信息中的用户名不为设备id的情况下,鉴权信息可能包括用户名、密码和设备id,也可以确定鉴权信息中的设备id是否和主题2中的设备id是否一致。
180.在实际应用中,由于预先设置了每个设备可以订阅的下行主题需要与各自设备的设备id 关联,因此,mqtt服务器可以比对订阅报文中的过滤器列表中的主题中包含的设备id和发送该订阅报文的用户名是否一致,在确定一致的情况下,确定被控设备成功订阅包含被控设备的设备id的主题。
181.步骤306,mqtt服务器向被控设备发送订阅请求的响应:订阅成功。
182.该订阅请求的响应报文可以命名为suback报文,该suback报文的固定报头用于表示该报文类型为suback报文的字段,该suback报文的可变报头包含报文标识符,有效载荷包含了返回码清单,理论上,每个返回码对应一个主题过滤器列表中的主题。当然,本技术实施例设置每个设备可以订阅一个下行主题的情况下,该主题过滤器列表中包含一个下行主题,该返回码清单中也包含一个返回码。该返回码用于表示表示订阅成功或失败。
183.在被控设备接收到表示订阅成功的suback报文的情况下,表示被控设备成功订阅了携带控制设备的设备id的下行主题。
184.对于控制设备而言,可以在步骤106之后,直接采用已经注册获得的鉴权信息与mqtt服务器建立mqtt连接、并订阅下行主题,控制设备建立mqtt连接的过程以及订阅下行主题的过程均可以参照步骤s301至步骤s306中被控设备与mqtt服务器建立mqtt连接的过程。
185.当然,在控制设备(例如,手机1)过去已经注册了与mqtt服务器建立mqtt连接的鉴权信息、且订阅下行主题的情况下,本次通过第一账号和登录密码登录http服务器后,可以直接对第一账号下的设备进行控制。
186.为了更清楚的理解本技术提供的实施例,下面将简略描述控制设备与mqtt服务器建立mqtt连接并订阅下行主题的过程。
187.步骤401,用户在手机1上通过第一账号和登录密码与http服务器建立http连接之后,在手机1具有与mqtt服务器建立mqtt连接的鉴权信息的情况下,手机1向mqtt服务器发送连接请求(携带用户名1和密码1)。
188.步骤402,mqtt服务器接收到连接请求的情况下,需要基于连接请求进行鉴权。
189.作为示例,步骤s4021,mqtt服务器将连接请求对应的报文中的有效载荷中的鉴权信息(用户名1和密码1)发送给数据库,以通过数据库进行鉴权。
190.步骤s4022,数据库对接收到的鉴权信息进行鉴权,返回鉴权结果:鉴权成功。
191.步骤403,mqtt服务器在确定鉴权成功的情况下,向控制设备发送用于表示连接请求的响应报文:连接被接受。
192.其中,无论是控制设备还是被控设备,与mqtt服务器建立mqtt连接时均作为mqtt的客户端。所以,控制设备与mqtt服务器建立mqtt连接的过程与被控设备与mqtt服务器建立mqtt连接的过程相同,在此不再赘述。
193.在实际应用中,在控制设备和mqtt服务器建立mqtt连接后,控制设备可以查看是否已经订阅了下行主题,若未订阅下行主题,则可以向mqtt服务器发送订阅请求。
194.步骤404,控制设备在确定未订阅下行主题的情况下,向mqtt服务器发送下行主题的订阅请求。
195.步骤405,mqtt服务器对接收到的订阅消息中的有效载荷中的主题过滤器列表进行权限校验。
196.步骤406,mqtt服务器向控制设备发送订阅请求的响应。
197.其中,步骤s404至步骤s406的内容可以参照步骤s304至步骤s306中的相关描述,在此不再赘述。
198.图8中,虽然先描述被控设备与mqtt服务器建立mqtt连接并订阅下行主题的过程,后描述控制设备与mqtt服务器建立mqtt连接并订阅下行主题的过程,并不表示被控设备与mqtt服务器建立mqtt连接并订阅下行主题的过程一定在控制设备与mqtt服务器建立mqtt连接并订阅下行主题的过程之前。例如,在图6所示实施例中,在步骤s201之前,可以先进行步骤401至步骤406,在步骤406之后,在进行步骤201至步骤205,在步骤205之后再执行步骤301至步骤306。当然,实际应用中,在执行步骤401至步骤406的过程中,也可以执行步骤201至步骤205,在步骤205之后,再执行步骤301至步骤306。或者,在控制设备订阅了下行主题之后,由于用户关闭该智慧空间软件,导致控制设备与mqtt服务器断开了mqtt连接;在用户的触发下,手机1也可以执行步骤101、步骤102、步骤401、步骤402和步骤403,而不需要再次
执行注册的过程和订阅下行主题的过程。同理,路由3由于网络原因与mqtt服务器断开连接之后,也可以在重新检测到网络的情况下,执行步骤301、步骤302和步骤303,而不需要再次执行注册过程和订阅下行主题的过程。
199.通过上述描述可以理解,本技术实施例执行的先后顺序以其内在的逻辑决定,而不是基于各个步骤的序号决定。
200.在控制设备和被控设备均成功订阅各自的下行主题之后,控制设备和被控设备均可以从mqtt服务器获取到其他设备发布到各自订阅的下行主题上的信息。
201.当然,控制设备也可以实现对被控设备的远程控制,例如,当用户携带用户1外出的情况下,用户通过第一账号和登录密码登录手机1中的智慧空间软件,图5所示的界面1将更新为图9所述的界面3。路由3的状态由在线更新为远程,智慧屏x1的状态由在线更新为离线。智慧屏x1未注册与mqtt服务器建立mqtt连接的鉴权信息。远程状态表示手机1和路由3当前可以通过远程的方式进行通信,即手机1可以通过远程的方式控制路由3。
202.本技术实施例可以设置近场控制的优先级高于远场控制的优先级。在无法通过近场通信方式控制的情况下,可以选择远程的方式控制被控设备。在可以通过近场通信方式控制的情况下,可以选择近场通信的方式控制被控设备。所以,当用户携带手机返回家中时,路由3的状态由远程状态更新为在线状态。
203.为了便于区分,可以将控制设备向mqtt服务器发送的连接报文记为第二连接报文,该第二连接报文的响应报文记为第三响应报文;将被控设备向mqtt服务器发送的连接报文记为第一连接报文,该第一连接报文的响应报文记为第二响应报文。
204.将控制设备向mqtt服务器发送的订阅报文记为第二订阅报文,该第二订阅报文的响应报文记为第四响应报文。被控设备向mqtt服务器发送的订阅报文记为第一订阅报文。该第一订阅报文的响应报文记为第一响应报文。控制设备订阅的下行主题记为第二主题,被控设备订阅的下行主题记为第一主题。
205.参见图10所述的时序图,该图描述在控制设备和被控设备在mqtt服务器订阅了下行主题的情况下,控制设备如何实现与被控设备的远场控制,被控设备如何实现响应的返回。
206.首先,控制设备和被控设备均与mqtt服务器建立有mqtt连接。
207.步骤501,在控制设备与mqtt服务器建立mqtt连接、且被控设备与mqtt服务器建立mqtt连接的情况下,控制设备向被控设备的下行主题2上发布控制指令。
208.在具体实现时,以图9所示的界面为例,路由3当前和mqtt服务器建立有mqtt连接,路由3的状态为远程,当用户点击图9所示的界面中路由3对应的控件的情况下,智慧空间将显示图11所示的界面4。该界面4为路由3的远程控制界面。该界面可以和近场控制的界面相似,当然,实际应用中,也可以设置为不同的界面,例如,设置不同的控制类目或子类目。用户可以通过该界面中的控制类目或控制类目下的子类目实现对路由3的远程控制。例如,当用户点击网速类目下测速子类目对应的控件的情况下,手机1作为控制设备向mqtt服务器上路由3的下行主题2发布表示测量路由3的网速的控制指令。
209.在实际应用中,为了避免控制设备随意在其他被控设备的下行主题上发布控制指令,http服务器可以将存储的第一账号下的设备的设备id存储在数据库中。mqtt服务器通过访问数据库可以获得不同账号下的设备id。http服务器也可以将当前登录第一账号的电
子设备的设备id存储在数据库中,mqtt服务器通过访问数据库可以获得当前登录第一账号的电子设备的设备id,也可以获得第一账号下的电子设备的设备id。如前所述,只有登录第一账号的电子设备具有第一账号下的电子设备的控制权限。即只有登录第一账号的电子设备具有在第一账号下的电子设备的设备id对应的主题上发布消息的权限。通过这种方式可以避免控制设备随意在其他被控设备的下行主题上发布控制指令,提高了安全性。同样的,只有第一账号下的电子设备具有向当前登录第一账号的电子设备的下行主题发布响应的权限。
210.因此,手机1作为控制设备可以根据要控制的路由3的设备id确定控制指令对应的报文发布到哪个下行主题上。
211.发布该控制指令时的报文命名为publish报文。同样,该publish报文包括固定报头、可变报头和有效载荷。
212.固定报头同样包含了用于表示该报文类型为publish报文的字段。
213.可变报头包含了主题名和报文标识符,主题名为该报文中的有效载荷需要分发到哪个信息通道上。报文标识符可参照上述实施例中的描述。
214.有效载荷中包含了控制指令。
215.当然,实际应用中,mqtt服务器在接收到控制设备发送的控制指令后,需要向控制设备发送响应报文,该响应报文用于表示已经收到控制设备发送的发布报文。该响应报文可以命名为puback报文。该puback报文的固定报头中包含了用于表示该报文类型为puback报文的字段。可变报头中包含了publish报文中的报文标识符。该puback报文没有有效载荷。
216.需要说明,发布报文的响应报文和控制指令的响应不同。发布报文的响应报文为mqtt服务器接收到发布报文(携带控制指令的报文,携带控制指令的响应的报文)后向客户端发送的用于表示接收到该发布报文的响应。控制指令的响应为被控设备基于接收到的控制指令做出的响应。在被控设备向被控设备传输控制指令的响应的过程,该控制指令的响应可以作为发布报文发布在mqtt服务器中控制设备的下行主题上。同样,服务器接收到发布报文后向客户端发送用于表示接收到该发布报文(携带控制指令的响应的报文)的响应。具体可参照后续实施例的描述。
217.步骤502,mqtt服务器接收到该控制指令后,需要确定发送该控制指令的控制设备是否有将消息发布到该主题2的权限。
218.作为步骤502的示例:步骤5021,mqtt服务器将发送控制指令的手机1的用户名1和主题2发送给数据库,以通过数据库进行鉴权。
219.步骤5022,数据库在确定发送控制指令的手机1的用户名1和主题2携带的设备id一致的情况下,确定发送该控制指令的手机1具有在主题2上发布消息的权限,并向mqtt服务器返回表示具有发布权限的消息。
220.需要说明,mqtt服务器确定发送该控制指令的控制设备是否具有在主题中发布消息的权限的方式并不局限于列举的一种,实际应用中,还可以是其他确定发布权限的方式。
221.例如,mqtt服务器可以从数据库获取发送控制指令的手机1的用户名1具有哪些主题的发布权限,然后判断从数据库获取的主题中是否包含主题2,若包含,则表示发送该控
制指令的手机1具有在主题2上发布消息的权限。
222.当然,本技术实施例以用户名为设备id为例,实际应用中,在用户名不为设备id的情况下,鉴权信息中包含设备id,则比对的是发送控制指令的手机1的设备id和主题2携带的设备id是否一致。
223.步骤503,mqtt服务器在确定控制设备具有在主题2发布消息的权限之后,可以向订阅了该主题2的被控设备发送该控制指令。
224.mqtt服务器向被控设备发送控制指令的过程也可以称为发布消息。即mqtt服务器接收到控制设备发送的发布报文之后,可以解析发布报文的可变报头中的主题名,而不需要解析有效载荷。mqtt服务器可以将控制设备发送的发布报文转发给订阅了该发布报文所在的主题2的被控设备。
225.当然,实际应用中,被控设备接收到mqtt服务器向被控设备发送的发布报文之后,需要向mqtt服务器发送该发布报文的响应报文。该响应报文不是被控设备执行发布报文携带的控制指令的执行结果,表示的是已经接收到mqtt服务器发送的发布报文。本技术实施例中,响应报文的可变报头中的报文标识符和对应的发布报文的可变报头中的报文标识符相同。
226.步骤504,被控设备解析接收到的发布报文,获得控制指令,并基于该控制指令执行相应的动作。在执行完相应的动作后,可以将执行动作的结果(命名为控制结果)向mqtt服务器上的主题1发布。
227.作为示例,若控制指令为测试路由3的网速,则路由3在测速之后,可以将测速的结果发送给控制设备,例如,51kb/s。当然,该控制结果也需要携带在发布报文中。
228.其中,该步骤携带网速的发布报文可参照携带控制指令的发布报文的描述。其中,网速在有效载荷对应的字段中。
229.被控设备发布携带控制结果的发布报文时,该发布报文中需要携带主题1(控制设备的下行主题)。其中,该主题1可以基于接收到携带控制指令的发布报文生成。
230.例如,控制设备发布的携带控制指令的发布报文的有效载荷中不仅可以携带控制指令,还可以携带发布该发布报文的控制设备的设备id。被控设备在发布携带控制指令的响应的发布报文时,根据该控制指令所在的发布报文中携带的设备id生成主题1,并将主题1设置在待发布的发布报文的可变报头中,同理,待发布的发布报文的有效载荷中同样可携带发送该发布报文的设备的设备id。
231.当然,实际应用中,被控设备也可以通过其他方式获取待发布的发布报文(携带控制指令的响应)的可变报头中的主题。本技术实施例对此不做限制。
232.步骤505,mqtt服务器接收到该控制结果后,需要确定发送该控制结果的被控设备是否有将消息发布到该主题1的权限。
233.作为步骤505的示例:步骤5051,mqtt服务器将发送该控制结果的被控设备的用户名2和主题1发送给数据库,以通过数据库进行鉴权。
234.步骤5052,数据库在确定发送控制结果的被控设备的用户名2和主题1携带的设备id一致的情况下,确定发送该控制结果的被控设备的用户2具有在主题1上发布消息的权限,并向mqtt返回表示具有发布权限的消息。
235.需要说明,mqtt服务器确定发送该控制结果的被控设备是否具有在主题上发布消息的权限的方式并不局限于列举的一种,实际应用中,还可以是其他确定发布权限的方式。具体可参照上述实施例的描述,在此不再赘述。
236.当然,实际应用中,mqtt服务器在接收到被控设备发送的控制结果对应的发布报文后,需要向被控设备发送响应报文,该响应报文用于表示已经收到被控设备发送的发布报文。该响应报文可以命名为puback报文。该puback报文的固定报头中包含了用于表示该报文类型为puback报文的字段。可变报头中包含了对应的发布报文(包含控制结果的publish报文)中的报文标识符。该puback报文没有有效载荷。
237.步骤506,mqtt服务器确定被控设备具有向主题1发布消息的权限的情况下,将该控制结果对应的发布报文向订阅了主题1的控制设备发送。
238.在本技术实施例中,除了上述列举的一些控制报文之外,还可能存在以下报文:取消订阅的报文、取消订阅报文的确认报文、心跳请求报文、心跳响应报文、断开连接报文等。上述报文均遵循mqtt协议规定的报文格式,本技术实施例不再通过场景一一举例。
239.为了便于区分,可以将控制设备向mqtt服务器上被控设备的下行主题上发布的携带控制指令的报文记为第一发布报文,将被控设备向mqtt服务器上控制设备的下行主题上发布的携带该控制指令的响应的报文记为第二发布报文。
240.上述实施例均以一个控制设备和一个被控设备之间的信息交互作为示例,实际应用中,一个控制设备可以对多个被控设备进行控制。
241.作为示例,控制设备1订阅的下行主题为主题1,被控设备1订阅的下行主题为主题2,被控设备2订阅的下行主题为主题3。
242.登录第一账号的电子设备为控制设备1,第一账号下的电子设备包括被控设备1和被控设备2。
243.参见图12中的(a),当控制设备1需要控制被控设备1时,控制设备1向mqtt服务器上的主题2发布指令1,mqtt服务器在确定控制设备1具有在主题2发布信息的权限后,将指令1发送给被控设备1。被控设备1基于指令1执行相应的操作,在被控设备1基于指令1执行相应的操作后,可以将执行结果作为指令1的响应1向mqtt服务器上的主题1发送,mqtt服务器在确定被控设备1具有在主题1上发布信息的权限后,将响应1发送给控制设备1。
244.当控制设备1需要控制被控设备2时,控制设备1向mqtt服务器上的主题3发布指令2,mqtt服务器在确定控制设备1具有在主题3发布信息的权限后,将指令2发送给被控设备2。被控设备2基于指令2执行相应的操作,在被控设备2基于指令2执行相应的操作后,可以将执行结果作为指令2的响应2向mqtt服务器上的主题1发送,mqtt服务器在确定被控设备2具有在主题1上发布信息的权限后,将响应2发送给控制设备1。
245.当然,多个控制设备也可以控制一个被控设备。
246.作为示例,登录第一账号(用户1的账号)的电子设备为控制设备1,该第一账号下的电子设备包括被控设备1。在某些场景下,可能用户2也需要对被控设备1进行控制。例如,用户1和用户2可能均需要对家居环境中共同使用的智慧屏x2进行控制。这种情况下,若被控设备1已经被用户1添加到第一账号下,则用户1可以在登录第一账号的情况下,可以将该被控设备1分享给第二用户的第二账号。当然,第二账号和被控设备1之间的分享关系可以存储在数据库中,在第二用户使用第二账号和登录密码登录控制设备2上的智慧空间的情
况下,控制设备2的智慧空间的界面中将显示有被控设备1,用户可以通过被控设备1对应的控件实现对被控设备1的控制。
247.当然,由于数据库中存储了第二账号和被控设备1之间的分享关系,控制设备2(登录第二账号的电子设备)具有在被控设备1订阅的下行主题上发布信息的权限,被控设备1也具有在控制设备订阅的下行主题上发布信息的权限。
248.如前所述,控制设备1订阅的下行主题为主题1,被控设备1订阅的下行主题为主题2,控制设备2订阅的下行主题可以为主题4。
249.参加图12中的(b),当第一用户需要对被控设备1进行控制的情况下,控制设备1向mqtt服务器上的主题2发布指令3,mqtt服务器在确定控制设备1具有在主题2发布信息的权限后,将指令3发送给被控设备1。被控设备1基于指令3执行相应的操作,在被控设备1基于指令3执行相应的操作后,可以将执行结果作为指令3的响应3向mqtt服务器上的主题1发送,mqtt服务器在确定被控设备1具有在主题1上发布信息的权限后,将响应3发送给控制设备1。
250.当第二用户需要对被控设备1进行控制的情况下,控制设备2向mqtt服务器上的主题2发布指令4,mqtt服务器在确定控制设备2具有在主题2发布信息的权限后,将指令4发送给被控设备1。被控设备1基于指令4执行相应的操作,在被控设备1基于指令4执行相应的操作后,可以将执行结果作为指令4的响应4向mqtt服务器上的主题4发送,mqtt服务器在确定被控设备1具有在主题4上发布信息的权限后,将响应4发送给控制设备2。
251.如前所述,第一用户通过分享的方式可以使得第二用户对分享的设备具有控制的权限。实际应用中,还可以设置其他方式使得多个用户对同一设备具有控制的权限。无论采用何种方式,在数据库中均会设置控制设备和被控设备的对应关系。例如,一个控制设备对应一个被控设备,多个控制设备对应一个被控设备,一个控制设备对应多个被控设备等。
252.另外,还可以设置其他形式的对应关系,作为示例,数据库中存在多个群组,每个群组中包括至少一个控制设备和至少一个被控设备,同一群组中的控制设备可以对同一群组中的被控设备实现控制。当然,实际应用中,一个控制设备可以出现在多个群组中,一个被控设备也可以出现在多个群组中。
253.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
254.本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
255.本技术实施例还提供了一种计算机程序产品,当计算机程序产品在第一设备上运行时,使得第一设备可实现上述各个方法实施例中的步骤。
256.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机
程序代码携带到第一设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u 盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
257.本技术实施例还提供了一种芯片系统,芯片系统包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现本技术任一方法实施例的步骤。芯片系统可以为单个芯片,或者多个芯片组成的芯片模组。
258.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
259.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
260.以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献