Processing

Please wait...

Settings

Settings

Goto Application

1. CN110501915 - Method for controlling device and server

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ ZH ]
一种控制设备的方法及服务器


技术领域
本申请涉及计算机技术领域,尤其涉及一种控制设备的方法及服务器。
背景技术
目前在一个家庭中,可能有多种家电设备,例如电视机、空调或洗衣机等。为了方便用户,目前有一些应用(application,APP)可以供用户控制家电设备。例如用户可以将相应的APP安装在手机或平板电脑(PAD)等设备中,以通过APP来控制家电设备。
一个家庭中可能有多个成员,每个成员都可以通过APP来控制家电设备,例如每个成员都可以在所使用的手机等设备中安装APP,以对家电设备进行控制。
那么很有可能出现一种情况,有两个或以上的用户可能同时对一个家电设备进行控制,例如有多个用户可能在同一时刻通过APP发起对同一个家电设备的控制,或者在前一个用户对一个家电设备的控制尚未结束时,后一个用户又开始对该家电设备进行控制。而一个家电设备如果同时受到两个或以上的用户的控制,可能会出现响应混乱的情况,甚至可能导致家电设备无法响应或出现故障。
发明内容
本申请实施例提供一种控制设备的方法及服务器,减少在多用户同时控制设备时可能导致被控设备故障的概率。
第一方面,提供一种控制设备的方法,包括:
服务器接收来自客户端的控制信息,所述控制信息用于令第一设备执行第一操作;
所述服务器确定所述第一设备是否处于被控制状态,所述被控制状态是指所述第一设备处于根据其他客户端的控制信息进行操作的过程中;
当所述第一设备未处于所述被控制状态时,所述服务器将所述控制信息转发给所述第一设备。
可选的,所述方法还包括:
当所述第一设备处于所述被控制状态时,所述服务器向所述客户端发送第一指示信息,所述第一指示信息用于指示所述第一设备处于所述被控制状态,或用于指示当前无法控制所述第一设备。
可选的,所述方法还包括:
所述服务器接收来自所述第一设备的第二指示信息,所述第二指示信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态;或,
所述服务器在第一时长内未接收来自所述第一设备的信息,则在所述第一时长的结束时刻到达时,所述服务器确定所述第一设备未处于所述被控制状态,所述信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态。
可选的,所述方法还包括:
所述服务器向所述客户端发送第三指示信息,所述第三指示信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或用于指示第一设备未处于所述被控制状态。
可选的,在所述服务器将所述控制信息转发给所述第一设备之后,所述方法还包括:
所述服务器在第一时长内未接收来自所述第一设备的信息,则在所述第一时长的结束时刻到达时,所述服务器确定所述第一设备未处于所述被控制状态,所述信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态。
第二方面,提供一种服务器,包括:
发送模块,用于当第一设备未处于被控制状态时,将控制信息转发给所述第一设备,所述控制信息用于令所述第一设备执行第一操作,所述被控制状态是指所述第一设备处于根据其他客户端的控制信息进行操作的过程中;
接收模块,用于接收来自所述客户端的所述控制信息;
处理模块,用于确定所述第一设备是否处于所述被控制状态。
可选的,所述发送模块,还用于当所述第一设备处于所述被控制状态时,向所述客户端发送第一指示信息,所述第一指示信息用于指示所述第一设备处于所述被控制状态,或用于指示当前无法控制所述第一设备。
可选的,
所述接收模块,还用于接收来自所述第一设备的第二指示信息,所述第二指示信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态;或,
所述处理模块,还用于在所述接收模块第一时长内未接收来自所述第一设备的信息,则在所述第一时长的结束时刻到达时,确定所述第一设备未处于所述被控制状态,所述信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态。
可选的,所述发送模块,还用于向所述客户端发送第三指示信息,所述第三指示信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或用于指示第一设备未处于所述被控制状态。
可选的,所述处理模块,还用于在所述发送模块将所述控制信息转发给所述第一设备之后,在所述接收模块第一时长内未接收来自所述第一设备的信息,则在所述第一时长的结束时刻到达时,确定所述第一设备未处于所述被控制状态,所述信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态。
第三方面,提供一种服务器,所述服务器包括:
存储器,用于存储程序指令;
发送单元,用于当第一设备未处于被控制状态时,将控制信息转发给所述第一设备,所述控制信息用于令所述第一设备执行第一操作,所述被控制状态是指所述第一设备处于根据其他客户端的控制信息进行操作的过程中;
接收单元,用于接收来自所述客户端的所述控制信息;
处理器,用于确定所述第一设备是否处于所述被控制状态。
可选的,所述发送单元,还用于当所述第一设备处于所述被控制状态时,向所述客户端发送第一指示信息,所述第一指示信息用于指示所述第一设备处于所述被控制状态,或用于指示当前无法控制所述第一设备。
可选的,
所述接收单元,还用于接收来自所述第一设备的第二指示信息,所述第二指示信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态;或,
所述处理器,还用于在所述接收单元第一时长内未接收来自所述第一设备的信息,则在所述第一时长的结束时刻到达时,确定所述第一设备未处于所述被控制状态,所述信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态。
可选的,所述发送单元,还用于向所述客户端发送第三指示信息,所述第三指示信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或用于指示第一设备未处于所述被控制状态。
可选的,所述处理器,还用于在所述发送单元将所述控制信息转发给所述第一设备之后,在所述接收单元第一时长内未接收来自所述第一设备的信息,则在所述第一时长的结束时刻到达时,确定所述第一设备未处于所述被控制状态,所述信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态。
第四方面,提供了一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面或第一方面的任一种可选的实施方式中所述的方法。
第五方面,提供一种包含指令的计算机程序产品,所述计算机程序产品中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种可能的设计中所述的方法。
通过采用本申请实施例提供的方法,在客户端要对第一设备进行控制时,如果服务器确定第一设备未处于被控制状态,则服务器可以将控制信息转发给第一设备,以使得客户端完成对第一设备的控制。例如,服务器确定第一设备处于被控制状态,则服务器可以不向第一设备转发控制信息,相当于,如果第一设备正在被其他客户端所控制,则该客户端就无法控制第一设备。通过这种方式,尽量避免一个设备同时被多个客户端控制的情况出现,避免了冲突,可以确保设备的实际工作状态和客户端所知晓的该设备的工作状态一致,也可以减少设备出现无法响应或故障等事件的概率。
附图说明
图1为本申请实施例的一种应用场景的示意图;
图2为本申请实施例针对一种控制设备方法的流程图;
图3为本申请实施例中服务器的一种结构示意图;
图4为本申请实施例中服务器的一种硬件架构图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
另外,本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)服务器(server),是提供计算服务的设备,具有处理能力强、稳定性、可靠性、安全性、可扩展性、以及可管理性好等特点。服务器主要包括处理器、硬盘、内存、系统总线等。服务器作为网络的节点,可以存储和处理网络上的数据和信息。根据服务器提供的服务类型不同,可以将其划分为文件服务器、数据库服务器、应用程序服务器或网络(web)服务器等,或根据服务器的用途不同,可以将其划分为国内服务器、云服务器或免备案服务器等。
本申请实施例所涉及的服务器,可以包括APP对应的服务器,可以理解为,该APP的功能通过该服务器来支撑。
(2)客户端(client),是与服务器相对应,为客户提供本地服务的程序或设备。客户端可以只在本地运行,或者也可以通过网络与服务器配合运行。客户端可以是终端设备本身,终端设备例如为手机、个人计算机(personal computer,PC)、平板电脑或智能手表等;或者,客户端也可以是安装在终端设备上的第三方应用,例如,APP或小程序等;或者,客户端也可以是终端设备可以访问的网页等。
请参考图1,为本申请实施例的一种应用场景的示意图。图1包括服务器、客户端和第一设备。其中,服务器和客户端之间可以通信,第一设备和服务器之间可以通信,而第一设备和客户端需要通过服务器来实现通信,相当于,第一设备和客户端之间传输的消息,需要通过服务器来转发。
图1中以两个客户端为例,分别为客户端1和客户端2。在实际应用中,客户端的数量不限于此。当然在实际应用中,被控设备的数量也不限于只有第一设备,可能还有多个设备。第一设备例如为家电设备,例如电视机、电冰箱、空调或电饭煲等。或者,被控设备也不限于只有家电设备,其他的一些设备也能够通过客户端进行控制,例如工业设备或其他类型的设备等。
另外,在被控设备有多个时,所使用的客户端可能是同一个,例如有些客户端可以实现对多种设备的控制,或者,也可能不同的设备对应不同的客户端。具体的不做限制。
下面结合说明书附图对本申请实施例作进一步详细描述。
本申请实施例提供一种控制设备的方法,请参考图2,为该方法的流程。
S21、客户端向服务器发送控制信息,服务器接收来自客户端的控制信息。
用户如果需要控制第一设备,可以通过客户端进行操作。例如,用户位于一个房间,需要对另一个房间内的设备进行控制,则可以采用本申请实施例的控制方式,例如,用户在卧室时,需要提前打开客厅的空调,则用户可以通过客户端控制客厅的空调开启,使得用户无需走到另一个房间才能进行控制;或者,用户不在家中,但需要对家中的家电设备进行控制,例如用户在到家前,需要烧水壶提前烧好水,则用户可以在到家前通过客户端控制烧水壶开启烧水功能,或者通过客户端预约烧水壶的开启时间;或者,用户不在办公室,但需要对办公室中的设备进行控制,例如用户在到达公司之前,通过客户端打开办公室的窗帘,等等。如上的这些场景,用户都可以使用本申请实施例所提供的方法来对相应的设备进行控制。
以客户端是安装在用户手机中的APP为例,介绍用户对第一设备进行控制的过程。例如,用户调用手机中的该APP,手机的显示屏可以显示该APP的界面。用户在该APP的界面中点击相应的功能按键(可能是软件按键或硬件按键),则该APP可以生成对应的控制信息,该控制信息就可以用于控制第一设备执行第一操作。
例如,用户要控制的第一设备是空调,用户在APP中选择的功能是“开启”功能,则用户点击该功能对应的功能按键后,该APP可以生成用于控制空调执行开启操作的控制信息。再例如,用户要控制的第一设备是洗衣机,用户在APP中选择的功能是“快速洗涤”功能,则用户点击该功能对应的功能按键后,该APP可以生成用于控制洗衣机进入快速洗涤模式的操作的控制信息。
在生成控制信息后,客户端可以将控制信息发送给服务器,则服务器就可以接收来自客户端的该控制信息。
S22、服务器确定第一设备是否处于被控制状态。如果第一设备处于被控制状态,执行S23,或者,如果第一设备未处于被控制状态,执行S24。
服务器接收来自客户端的控制信息之后,根据控制信息可以确定需要被控制的第一设备,从而确定第一设备是否处于被控制状态。例如,控制信息可以携带第一设备的标识,服务器根据第一设备的标识就可以确定第一设备。第一设备的标识例如包括第一设备的身份号(ID)、第一设备的名称或第一设备的编号中的一种或多种。例如,第一设备的标识包括第一设备的ID,或者,第一设备的标识包括第一设备的名称和第一设备的编号,或者,第一设备的标识包括第一设备的ID、第一设备的名称和第一设备的编号,等等。
例如,当一个设备首次成功连接客户端后,用户可以通过客户端为该设备设置名称,或者,当一个设备首次成功连接服务器后,服务器可以为该设备分配ID或编号。设备连接客户端的方式可以是有线或者无线的方式,无线方式例如包括无线局域网或蓝牙等方式。以客户端是安装在用户手机中的APP为例,例如用户家中新添置了一台空调,该空调通电后,通过连接家中的无线局域网与该APP进行连接,用户即可通过APP查看或控制该空调。
服务器要确定第一设备是否处于被控制状态,可能有不同的确定方式。下面进行介绍。
1、服务器确定第一设备是否处于被控制状态的第一种方式。
如果有客户端向服务器发送用于控制第一设备的控制信息,例如为控制信息1,且服务器将控制信息1转发给了第一设备,则服务器可以记录该事件。如果后续第一设备执行该控制信息1所指示的操作完毕,则第一设备可以向服务器发送消息,该消息用于指示第一设备已受控完毕,或指示第一设备未处于被控制状态,或指示第一设备已对来自客户端的控制信息1响应完毕。服务器接收该消息后,就可以确定第一设备不再处于被控制状态,其他客户端可以对第一设备进行控制。则服务器可以删除所记录的事件。
或者,第一设备可能未向服务器发送消息,如果在服务器将控制信息1发送给第一设备后的第一时长到达时,服务器仍未接收来自第一设备的消息,则服务器也可以确定第一设备已受控完毕,也就是确定第一设备不再处于被控制状态。则服务器也可以删除所记录的事件。
而在第一设备未向服务器发送消息之前,或者在第一时长未到达之前,服务器都确定第一设备处于被控制状态,可以继续维持所记录的事件。
则服务器通过查询第一设备是否对应有所记录的事件,就可以确定第一设备是否处于被控制状态。
2、服务器确定第一设备是否处于被控制状态的第二种方式。
如果有客户端向服务器发送用于控制第一设备的控制信息,例如为控制信息1,且服务器将控制信息1转发给了第一设备,则服务器可以为第一设备添加互斥锁,例如,服务器可以为本地存储的第一设备的标识添加互斥锁。互斥锁可以有两种状态,“上锁(lock)”和“解锁(unlock)”。例如,为第一设备的标识添加互斥锁,可以理解为,将第一设备的标识对应的互斥锁的状态设置为“上锁”。互斥锁是一种避免同时访问共享资源的方式。在本申请实施例中,服务器通过添加互斥锁,可以避免多个客户端同时控制同一个设备。
如果后续第一设备执行该控制信息1所指示的操作完毕,则第一设备可以向服务器发送消息,该消息用于指示第一设备已受控完毕,或指示第一设备未处于被控制状态,或指示第一设备已对来自客户端的控制信息1响应完毕。服务器接收该消息后,就可以确定第一设备不再处于被控制状态,其他客户端可以对第一设备进行控制。则服务器可以为第一设备的标识解除互斥锁。例如,为第一设备的标识解除互斥锁,可以理解为,将第一设备的标识对应的互斥锁的状态设置为“解锁”。
或者,第一设备可能未向服务器发送消息,如果在服务器将控制信息1发送给第一设备后的第一时长到达时,服务器仍未接收来自第一设备的消息,则服务器也可以确定第一设备已受控完毕,也就是确定第一设备不再处于被控制状态。则服务器也可以为第一设备的标识解除互斥锁。
以第一设备是电视机,客户端是APP为例,介绍服务器通过第二种方式确定第一设备是否处于被控制状态的过程。例如,用户对该APP进行操作,点击了该APP提供的用于开启电视机的按键,则该APP生成对应的控制信息a,该APP将控制信息a发送给服务器,控制信息a用于令电视机执行开启电视机的操作。该APP向服务器发送控制信息a,控制信息a携带要控制的电视机的ID。服务器接收来自APP的控制信息a,并根据控制信息a中的电视机的ID,确定APP需要控制的电视机。服务器检查该电视机的标识对应的互斥锁的状态,如果互斥锁的当前状态是“上锁”,则APP无权对该电视机进行控制,如果互斥锁的当前状态是“解锁”,则服务器将控制信息a转发给该电视机,则服务器为该电视机添加互斥锁,即,服务器将该电视机的标识对应的互斥锁的状态设置为“上锁”。如果该电视机执行完毕开启电视机的操作,则该电视机向服务器发送消息,该消息指示该电视机已受控完毕,或指示该电视机未处于被控制状态,或指示该电视机已对来自APP的控制信息a响应完毕。服务器接收到该消息后,就可以确定该电视机不再处于被控制状态,其他客户端可以对该电视机进行控制。则服务器为该电视机解除互斥锁,即,该电视机对应的互斥锁的状态设置为“解锁”。
或者,该电视机未向服务器发送消息,例如第一时长为100秒。则,如果在服务器将控制信息a发送给电视机后的100秒到达时,服务器仍未接收来自该电视机的消息,则服务器确定该电视机已受控完毕,或该电视机不再处于被控制状态。则服务器为该电视机解除互斥锁,即,该电视机对应的互斥锁的状态设置为“解锁”。
而在第一设备未向服务器发送消息之前,或者在第一时长未到达之前,第一设备的标识对应的互斥锁的状态都是“上锁”,表明第一设备处于被控制状态。
则服务器通过查询第一设备的标识对应的互斥锁的状态就可以确定第一设备是否处于被控制状态。
3、服务器确定第一设备是否处于被控制状态的第三种方式。
如果有客户端向服务器发送用于控制第一设备的控制信息,例如为控制信息1,且服务器将控制信息1转发给了第一设备,则服务器可以开启定时器,该定时器的定时时长例如为第一时长。该定时器的定时时长可以由服务器设置,或者由用户通过客户端设置,或者也可以通过协议或行业标准规定。
在该定时器超时之前,如果第一设备执行该控制信息1所指示的操作完毕,则第一设备可以向服务器发送消息,该消息用于指示第一设备已受控完毕,或指示第一设备未处于被控制状态,或指示第一设备已对来自客户端的控制信息1响应完毕。服务器接收该消息后,就可以确定第一设备不再处于被控制状态,其他客户端可以对第一设备进行控制。在这种情况下,服务器可以关闭该定时器。
或者,如果在该定时器超时时,服务器仍未接收来自第一设备的消息,则服务器也可以确定第一设备已受控完毕,也就是确定第一设备不再处于被控制状态。
而在第一设备未向服务器发送消息之前,或者在该定时器超时之前,该定时器是处于运行状态,服务器都确定第一设备处于被控制状态。
则服务器通过查询该定时器是否处于运行状态,就可以确定第一设备是否处于被控制状态。
如上的三种确定方式,都是由服务器自行确定即可,无需询问第一设备,可以减轻第一设备的负担,也减少设备之间的信息交互,节省信令开销。
4、服务器确定第一设备是否处于被控制状态的第四种方式。
服务器可以向第一设备询问第一设备是否处于被控制状态。例如,有客户端向服务器发送了用于控制第一设备的控制信息,则服务器可以向第一设备发送消息,例如称为第一消息,第一消息用于查询第一设备是否处于被控制状态。
第一设备接收第一消息后可以向服务器发送第二消息,第二消息用于指示第一设备处于被控制状态或未处于被控制状态。则服务器根据第二消息就可以确定第一设备是否处于被控制状态。
这种确定方式较为简单,服务器无需维护过多的状态,只需直接向第一设备查询即可。
服务器可以通过如上的任意一种方式来确定第一设备是否处于被控制状态。或者,关于服务器确定第一设备是否处于被控制状态,还可能有其它的确定方式,本申请实施例不做限制。
S23、当第一设备未处于被控制状态时,服务器将控制信息转发给第一设备,第一设备接收来自服务器的控制信息。
如果在S22中服务器确定第一设备未处于被控制状态,则服务器可以将所述的控制信息转发给第一设备,第一设备可以根据该控制信息执行第一操作。
例如,用户要控制的第一设备是空调,客户端是安装在用户手机中的APP。用户在APP中选择的功能是空调的“开启”功能,用户点击该功能对应的功能按键后,APP向服务器发送控制空调执行开启操作的控制信息b,控制信息b携带要控制的空调的编号(例如为空调的序列号)。服务器根据控制信息b中的空调的编号,确定用户需要控制的空调。例如服务器采用如前所述的第二种方式来确定空调是否处于被控制状态,服务器确定该空调的标识对应的互斥锁的状态为“解锁”,也就是说,该空调未处于被控制状态,则服务器将控制信息b转发给该空调。该空调接收来自服务器的控制信息b后,可以根据控制信息b,执行开启该空调的操作。而服务器在将控制信息b转发给该空调时,会将该空调的标识对应的互斥锁的状态设置为“上锁”。
一般来说,第一设备执行一个控制信息结束后,会向服务器发送信息,以指示第一设备已执行控制信息完毕,或者指示第一设备未处于被控制状态。因此,服务器将控制信息转发给第一设备后,可以等待接收来自第一设备的信息,从而可以根据所接收的信息确定第一设备已受控完毕,也就是确定第一设备不再处于被控制状态。如果服务器在第一时长结束前接收了来自第一设备的信息,就可以确定第一设备不再处于被控制状态,其他客户端可以对第一设备进行控制。例如服务器采用的是如上所述的第二种方式确定第一设备是否处于被控制状态,则服务器可以将该空调的标识对应的互斥锁的状态设置为“解锁”。
或者,服务器等待了第一时长,在第一时长的结束时刻到达时仍然未接收来自第一设备的指示信息,则服务器也可以确定第一设备已受控完毕,也就是确定第一设备不再处于被控制状态。例如服务器采用的是如上所述的第二种方式确定第一设备是否处于被控制状态,则服务器可以将该空调的标识对应的互斥锁的状态设置为“解锁”。
S24、当第一设备处于被控制状态时,服务器向客户端发送第一指示信息。
如果在S22中服务器确定第一设备处于被控制状态,则第一设备不能再接受其他客户端的控制。因此,服务器不将控制信息发送给第一设备,这样可以保证第一设备在受控时不再接受其他客户端的控制,避免第一设备出现误响应或故障等。
而服务器不向第一设备发送该控制信息,也就表明不能对所述的客户端发送的控制信息进行响应。作为对该客户端的回复,服务器可以向该客户端发送第一指示信息,第一指示信息可以指示第一设备处于被控制状态,或指示当前无法控制第一设备,或指示第一设备正在被其他客户端所控制。该客户端接收第一指示信息后,就可以确定当前无法控制第一设备。
之后,第一设备被控制完毕后,可能向服务器发送第二指示信息,即表示第一设备不再处于被控制状态,其他客户端可以对第一设备进行控制。则服务器可以再向客户端发送第三指示信息,即,指示第一设备已对来自其他客户端的控制信息响应完毕,或指示第一设备未处于被控制状态。
或者,可能服务器等待第一时长后,即第一时长的结束时刻到达时,仍未收到来自第一设备的第二指示信息,则服务器确定第一设备被控制完毕。服务器可以再向客户端发送第三指示信息,即,指示第一设备已对来自其他客户端的控制信息响应完毕,或指示第一设备未处于所述被控制状态。
例如,用户要控制的第一设备是空调,客户端是安装在用户手机中的APP。用户在APP中选择的功能是空调的“关闭”功能。用户点击该功能对应的功能按键后,APP生成用于控制空调关闭的控制信息c,APP将向服务器发送控制信息c,控制信息c携带要控制的空调的ID。服务器根据控制信息c中的空调的ID,确定用户需要控制空调。例如服务器采用如前所述的第二种方式来确定空调是否处于被控制状态,服务器确定该空调的标识对应的互斥锁的状态为“上锁”,也就是说,该空调可能正在执行来自某个客户端的“上下扫风”操作的控制信息d,不能再接受其他客户端的控制。此时,服务器不会向该空调转发控制信息c,而是向APP发送空调处于被控制状态的指示信息,或当前无法控制空调的指示信息。
当空调执行完成控制信息d之后,空调向服务器发送控制指令d执行完毕的信息,即,表示空调不再处于被控制状态,其他客户端可以对空调进行控制。则服务器向APP发送空调已对来自其他客户端的控制信息响应完毕的信息,也就是空调未处于被控制状态的信息。服务器可以将该空调的标识对应的互斥锁的状态设置为“解锁”。
或者,服务器设置为等待100秒,如果在100秒内,服务器未收到来自空调的控制指令d执行完毕的信息,则在100秒结束时刻,服务器确定空调已受控完毕,也就是确定空调未处于被控制状态。则服务器向APP发送空调已对来自其他客户端的控制信息响应完毕的信息,也就是空调未处于被控制状态的信息。服务器可以将该空调的标识对应的互斥锁的状态设置为“解锁”。
此时,APP接收来自服务器的空调未处于被控制状态的信息,由使用APP的用户决定是否再向空调发送控制指令c。如果用户通过APP再一次选择了空调的“关闭”功能,用户点击该功能对应的功能按键后,APP向服务器发送控制信息c。服务器根据控制信息c中的空调的ID,确定用户需要控制的空调。例如,服务器确定该空调的标识对应的互斥锁的状态为“解锁”,也就是说,空调未处于被控制状态,则服务器将控制信息c转发给该空调。空调接收来自服务器的控制信息c后,可以根据控制信息c,执行开启该空调的操作。而服务器在将控制信息c转发给该空调时,会将该空调的标识对应的互斥锁的状态设置为“上锁”。如果用户不再通过APP控制该空调,则APP接收来自服务器的空调未处于被控制状态的信息后,不做进一步响应。
在本申请实施例中,在客户端要对第一设备进行控制时,如果服务器确定第一设备未处于被控制状态,则服务器可以将控制信息转发给第一设备,以使得客户端完成对第一设备的控制。例如,服务器确定第一设备处于被控制状态,则服务器可以不向第一设备转发控制信息,相当于,如果第一设备正在被其他客户端所控制,则该客户端就无法控制第一设备。通过这种方式,尽量避免一个设备同时被多个客户端控制的情况出现,避免了冲突,可以确保设备的实际工作状态和客户端所知晓的该设备的工作状态一致,也可以减少设备出现无法响应或故障等事件的概率。
基于同一发明构思,本申请实施例提供一种服务器,该服务器能够实现前述的控制设备的方法对应的功能。该服务器可以是硬件结构、软件模块、或硬件结构加软件模块。该服务器可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请继续参考图3,该服务器包括发送模块301、接收模块302和处理模块303。其中:
发送模块301,用于当第一设备未处于被控制状态时,将控制信息转发给所述第一设备,所述控制信息用于令所述第一设备执行第一操作,所述被控制状态是指所述第一设备处于根据其他客户端的控制信息进行操作的过程中;
接收模块302,用于接收来自所述客户端的所述控制信息;
处理模块303,用于确定所述第一设备是否处于所述被控制状态。
在一些可能的实施方式中,
发送模块301,还用于当所述第一设备处于所述被控制状态时,向所述客户端发送第一指示信息,所述第一指示信息用于指示所述第一设备处于所述被控制状态,或用于指示当前无法控制所述第一设备。
在一些可能的实施方式中,
接收模块302,还用于接收来自所述第一设备的第二指示信息,所述第二指示信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态;或,
处理模块303,还用于在接收模块302第一时长内未接收来自所述第一设备的信息,则在所述第一时长的结束时刻到达时,确定所述第一设备未处于所述被控制状态,所述信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态。
在一些可能的实施方式中,发送模块301,还用于向所述客户端发送第三指示信息,所述第三指示信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或用于指示第一设备未处于所述被控制状态。
在一些可能的实施方式中,
处理模块303,还用于在发送模块301将所述控制信息转发给所述第一设备之后,在接收模块302第一时长内未接收来自所述第一设备的信息,则在所述第一时长的结束时刻到达时,确定所述第一设备未处于所述被控制状态,所述信息用于指示所述第一设备已对来自其他客户端的控制信息响应完毕,或指示所述第一设备未处于所述被控制状态。
基于同一发明构思,本申请实施例提供一种服务器,请参见图4所示,该服务器包括至少一个处理器401,以及与至少一个处理器401连接的存储器402,本申请实施例中不限定处理器401与存储器402之间的具体连接介质,图4中是以处理器401和存储器402之间通过总线400连接为例。总线400在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线400可以分为地址总线、数据总线、控制总线等,为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器401也可以称为控制器401,对于名称不做限制。
在本申请实施例中,存储器402存储有可被至少一个处理器401执行的指令,至少一个处理器401通过执行存储器402存储的指令,可以执行前述的应用程序升级的方法中所包括的步骤。处理器401可以实现图3所示的服务器的标记模块的功能。
另外,该服务器还可以包括与至少一个处理器401连接的发送单元403和接收单元404,发送单元403和接收单元404例如可通过传感器等功能模块实现。发送单元403可以实现图3所示的服务器的发送模块的功能。接收单元404可以实现图3所示的服务器的接收模块的功能。图4中是以处理器401、发送单元403和接收单元404之间通过总线400连接为例。
其中,处理器401是服务器的控制中心,可以利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的指令以及调用存储在存储器402内的数据,服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理单元,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。在一些实施例中,处理器401和存储器402可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器401可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的应用程序升级的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器402可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器402还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器401进行设计编程,可以将前述实施例中介绍的控制设备的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图2所示的实施例所述的控制设备的方法的步骤。如何对处理器401进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行图2所示的实施例所述的控制设备的方法的步骤。
在一些可能的实施方式中,本申请提供的控制设备的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在服务器上运行时,所述程序代码用于使该服务器执行本说明书上述描述的根据本申请各种示例性实施方式的控制设备的方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。