设备控制方法及装置与流程

文档序号:14390871阅读:158来源:国知局
设备控制方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种设备控制方法及装置。



背景技术:

随着通信技术的发展,蓝牙已日益普遍,蓝牙是一种短距离、低成本的无线通信技术,基于蓝牙技术,两个设备之间可以实现蓝牙控制功能,其中一个设备称为遥控设备,另一个设备成为被控设备,用户可以使用遥控设备对被控设备进行控制。

相关技术中,遥控设备对被控设备的控制过程包括:遥控设备将遥控数据携带在无定向(undirected)广播数据包中进行发送,无定向是指该广播数据包并不是针对某一个被控设备发送的,而是一定范围内的被控设备都可以接收到该广播数据包。为了防止数据包的丢失,确保被控设备能够接收到广播数据包,遥控设备会针对每个广播数据包重传数次,被控设备在接收到该广播数据包后,会对该广播数据包中携带的遥控数据进行处理,从而实现相应的控制功能。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

上述技术中遥控设备发送的每一个数据包,无论被控设备是否接收到,均需要进行多次重传,造成了资源浪费,增大了电池消耗。



技术实现要素:

本发明实施例提供了一种设备控制方法及装置,可以解决现有技术资源浪费以及电池消耗大的问题。所述技术方案如下:

第一方面,提供了一种设备控制方法,应用于遥控设备,所述方法包括:

接收遥控指令,所述遥控指令携带用于实现所述遥控设备对被控设备进行控制的遥控数据;

发送广播数据包,所述广播数据包中携带所述遥控数据;

当接收到所述被控设备发送的扫描请求包时,停止发送所述广播数据包,所述扫描请求包用于指示所述被控设备已经接收到所述广播数据包。

在第一方面的第一种实现方式中,所述发送广播数据包,包括:连续发送所述广播数据包;

相应地,所述当接收到扫描请求包时,停止发送所述广播数据包,包括:

在连续发送所述广播数据包的过程中,当接收到所述扫描请求包时,停止发送所述广播数据包。

在第一方面的第二种实现方式中,所述发送广播数据包,包括:

发送一次所述广播数据包;

相应地,所述当接收到扫描请求包时,停止发送所述广播数据包,包括:

当预设时间段内接收到所述扫描请求包时,不再重新发送所述广播数据包。

在第一方面的第三种实现方式中,所述发送一次所述广播数据包之后,所述方法还包括:

当所述预设时间段内未接收到所述扫描请求包时,再一次发送所述广播数据包。

在第一方面的第四种实现方式中,所述遥控数据为第一类数据,所述第一类数据的数据量小于预设阈值。

在第一方面的第五种实现方式中,所述第一类数据包括按键数据。

在第一方面的第六种实现方式中,所述方法还包括:

当接收到所述扫描请求包时,向所述被控设备发送扫描响应包。

在第一方面的第七种实现方式中,当所述遥控数据为第二类数据时,所述扫描响应包中携带另一部分遥控数据,所述第二类数据的数据量大于或等于所述预设阈值。

在第一方面的第八种实现方式中,所述第二类数据包括语音数据和空鼠数据。

第二方面,提供了一种设备控制方法,应用于被控设备,所述方法包括:

接收广播数据包,所述广播数据包中携带遥控设备的遥控数据,所述遥控设备为发送所述广播数据包的设备;

向所述遥控设备发送扫描请求包,所述扫描请求包用于指示所述被控设备接收到所述广播数据包;

对所述遥控数据进行处理,实现所述遥控设备对所述被控设备的控制。

在第二方面的第一种实现方式中,所述遥控数据为第一类数据,所述第一类数据的数据量小于预设阈值。

在第二方面的第二种实现方式中,所述第一类数据包括按键数据。

在第二方面的第三种实现方式中,所述对所述遥控数据进行处理,包括:

当接收到所述遥控设备的扫描响应包时,对所述遥控数据进行处理。

在第二方面的第四种实现方式中,当所述遥控数据为第二类数据时,所述扫描响应包中携带另一部分遥控数据,所述第二类数据的数据量大于或等于所述预设阈值。

在第二方面的第五种实现方式中,所述当接收到所述遥控设备的扫描响应包时,对所述遥控数据进行处理包括:

当接收到所述扫描响应包时,获取所述扫描响应包中携带的另一部分遥控数据;

对所述遥控数据和所述另一部分遥控数据进行组包;

对组包后的遥控数据进行处理。

在第二方面的第六种实现方式中,所述第二类数据包括语音数据和空鼠数据。

第三方面,提供了一种设备控制装置,所述装置包括:

接收模块,用于接收遥控指令,所述遥控指令携带用于实现所述遥控设备对被控设备进行控制的遥控数据;

发送模块,用于发送广播数据包,所述广播数据包中携带所述遥控数据;

所述发送模块,还用于当接收到所述被控设备发送的扫描请求包时,停止发送所述广播数据包,所述扫描请求包用于指示所述被控设备已经接收到所述广播数据包。

在第三方面的第一种实现方式中,所述发送模块用于连续发送所述广播数据包;在连续发送所述广播数据包的过程中,当接收到所述扫描请求包时,停止发送所述广播数据包。

在第三方面的第二种实现方式中,所述发送模块用于发送一次所述广播数据包;当预设时间段内接收到所述扫描请求包时,不再重新发送所述广播数据包。

在第三方面的第三种实现方式中,所述发送模块还用于当所述预设时间段内未接收到所述扫描请求包时,再一次发送所述广播数据包。

在第三方面的第四种实现方式中,所述遥控数据为第一类数据,所述第一类数据的数据量小于预设阈值。

在第三方面的第五种实现方式中,所述第一类数据包括按键数据。

在第三方面的第六种实现方式中,所述发送模块还用于当接收到所述扫描请求包时,向所述被控设备发送扫描响应包。

在第三方面的第七种实现方式中,当所述遥控数据为第二类数据时,所述扫描响应包中携带另一部分遥控数据,所述第二类数据的数据量大于或等于所述预设阈值。

在第三方面的第八种实现方式中,所述第二类数据包括语音数据和空鼠数据。

第四方面,提供了一种设备控制装置,所述装置包括:

接收模块,用于接收广播数据包,所述广播数据包中携带遥控设备的遥控数据,所述遥控设备为发送所述广播数据包的设备;

发送模块,用于向所述遥控设备发送扫描请求包,所述扫描请求包用于指示所述被控设备接收到所述广播数据包;

处理模块,用于对所述遥控数据进行处理,实现所述遥控设备对所述被控设备的控制。

在第四方面的第一种实现方式中,所述遥控数据为第一类数据,所述第一类数据的数据量小于预设阈值。

在第四方面的第二种实现方式中,所述第一类数据包括按键数据。

在第四方面的第三种实现方式中,所述处理模块用于当接收到所述遥控设备的扫描响应包时,对所述遥控数据进行处理。

在第四方面的第四种实现方式中,当所述遥控数据为第二类数据时,所述扫描响应包中携带另一部分遥控数据,所述第二类数据的数据量大于或等于所述预设阈值。

在第四方面的第五种实现方式中,所述处理模块用于当接收到所述扫描响应包时,获取所述扫描响应包中携带的另一部分遥控数据;对所述遥控数据和所述另一部分遥控数据进行组包;对组包后的遥控数据进行处理。

在第四方面的第六种实现方式中,所述第二类数据包括语音数据和空鼠数据。

第五方面,提供了一种遥控设备,包括处理器和存储器;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的计算机程序,实现第一方面任一种实现方式所述的方法步骤。

第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一种实现方式所述的方法步骤。

第七方面,提供了一种被控设备,包括处理器和存储器;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的计算机程序,实现第一方面任一种实现方式所述的方法步骤。

第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一种实现方式所述的方法步骤。

本发明实施例提供的技术方案带来的有益效果是:

遥控设备可以在发送广播数据包后,通过被控设备回复的扫描请求包得知广播数据包已被成功接收,因而,遥控设备可以无需对同一个广播数据包进行数次重传,避免了资源浪费,减少了电池消耗。

附图说明

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

图1是本发明实施例提供的一种设备控制方法的流程图;

图2是本发明实施例提供的一种设备控制方法的流程图;

图3是本发明实施例提供的一种设备控制方法的流程图;

图4是本发明实施例提供的一种蓝牙规范中启动主动扫描的过程示意图;

图5是本发明实施例提供的一种蓝牙规范中启动广播包的发送过程的示意图;

图6是本发明实施例提供的一种被控设备接收并记录mac地址的过程示意图;

图7是本发明实施例提供的一种数据包传输以及处理的流程图;

图8是本发明实施例提供的一种设备控制装置的结构示意图;

图9是本发明实施例提供的一种设备控制装置的结构示意图;

图10是本发明实施例提供的一种遥控设备1000的结构示意图;

图11是本发明实施例提供的一种被控设备1100的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种设备控制方法的流程图。参见图1,该方法包括:

101、接收遥控指令,该遥控指令携带用于实现该遥控设备对被控设备进行控制的遥控数据。

102、发送广播数据包,该广播数据包中携带该遥控数据。

103、当接收到该被控设备发送的扫描请求包时,停止发送该广播数据包,该扫描请求包用于指示该被控设备已经接收到该广播数据包。

本发明实施例提供的方法,遥控设备可以在发送广播数据包后,通过被控设备回复的扫描请求包得知广播数据包已被成功接收,因而遥控设备无需对同一个广播数据包进行数次重传,避免了资源浪费,减少了电池消耗。

可选地,该发送广播数据包,包括:连续发送该广播数据包;

相应地,该当接收到扫描请求包时,停止发送该广播数据包,包括:

在连续发送该广播数据包的过程中,当接收到该扫描请求包时,停止发送该广播数据包。

可选地,该发送广播数据包,包括:

发送一次该广播数据包;

相应地,该当接收到扫描请求包时,停止发送该广播数据包,包括:

当预设时间段内接收到该扫描请求包时,不再重新发送该广播数据包。

可选地,该发送一次该广播数据包之后,该方法还包括:

当该预设时间段内未接收到该扫描请求包时,再一次发送该广播数据包。

可选地,该遥控数据为第一类数据,该第一类数据的数据量小于预设阈值。

可选地,该第一类数据包括按键数据。

可选地,该方法还包括:

当接收到该扫描请求包时,向该被控设备发送扫描响应包。

可选地,当该遥控数据为第二类数据时,该扫描响应包中携带另一部分遥控数据,该第二类数据的数据量大于或等于该预设阈值。

可选地,该第二类数据包括语音数据和空鼠数据。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

图2是本发明实施例提供的一种设备控制方法的流程图。参见图2,该方法包括:

201、接收广播数据包,该广播数据包中携带遥控设备的遥控数据,该遥控设备为发送该广播数据包的设备。

202、向该遥控设备发送扫描请求包,该扫描请求包用于指示该被控设备接收到该广播数据包。

203、对该遥控数据进行处理,实现该遥控设备对该被控设备的控制。

本发明实施例提供的方法,被控设备在接收到遥控设备发送的广播数据包时,通过向遥控设备回复扫描请求包的方式,告知遥控设备其发送的广播数据包已被成功接收,使得遥控设备无需对同一个广播数据包进行数次重传,避免了资源浪费,减少了电池消耗。

可选地,该遥控数据为第一类数据,该第一类数据的数据量小于预设阈值。

可选地,该第一类数据包括按键数据。

可选地,该对该遥控数据进行处理,包括:

当接收到该遥控设备的扫描响应包时,对该遥控数据进行处理。

可选地,当该遥控数据为第二类数据时,该扫描响应包中携带另一部分遥控数据,该第二类数据的数据量大于或等于该预设阈值。

可选地,该当接收到该遥控设备的扫描响应包时,对该遥控数据进行处理包括:

当接收到该扫描响应包时,获取该扫描响应包中携带的另一部分遥控数据;

对该遥控数据和该另一部分遥控数据进行组包;

对组包后的遥控数据进行处理。

可选地,该第二类数据包括语音数据和空鼠数据。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

本发明实施例可以应用于遥控场景,具体可以应用于用户使用遥控设备对被控设备进行控制的场景。其中,遥控设备可以是蓝牙遥控器,被控设备可以是具有蓝牙功能的电视,蓝牙遥控器和电视之间可以基于蓝牙技术实现数据传输,进而实现设备控制功能。当然,遥控器和电视只是遥控设备和被控设备的一个示例,实际上,遥控设备和被控设备还可以是其他设备,如遥控设备还可以是ble(bluetoothlowenergy,蓝牙低能耗)鼠标、键盘、手柄等,被控设备还可以是android(安卓)手机等,本发明实施例对此不做限定。

图3是本发明实施例提供的一种设备控制方法的流程图。基于遥控设备和被控设备之间的交互,参见图3,该方法包括:

301、被控设备启动主动扫描模式,在该主动扫描模式下,监听广播包。

本发明实施例中,被控设备可以发起主动扫描,实时监听遥控器的无定向(undirected)广播包。处于主动扫描模式的被控设备可以接收广播信道的广播包,通过扫描可以监听哪些遥控设备正在广播。

参见图4,提供了一种蓝牙规范中启动主动扫描的过程示意图,被控设备和遥控设备均可以分为host(主机)和ll(linklayer,链路层),其中,host可以是指设备的软件部分,ll可以是指设备的硬件或固件部分。图4中的设备a是指被控设备,设备b是指遥控设备,hosta是指被控设备的host,lla是指被控设备的ll,hostb是指遥控设备的host,llb是指遥控设备的ll。

在遥控设备发送广播包的过程中,被控设备进行主动扫描。如图4所示,被控设备启动主动扫描的过程可以包括:hosta向lla发送设置扫描参数的命令,如“lesetscanparameters”,扫描参数包括主动扫描(activescanning)的扫描窗口和扫描间隔;lla向hosta响应命令完成的响应,如“commandcomplete”;hosta向lla发送启动扫描的命令,如“lesetscanenable”;lla向hosta发送命令完成,如“commandcomplete”。

302、遥控设备在预设时长内连续发送广播包,该广播包携带遥控设备的mac(mediaaccesscontrol,媒体访问控制)地址。

本发明实施例中,用户可以长按遥控设备上任意的单个按键或组合按键,来触发遥控设备在一段时间内连续发送undirected广播包,当然,该广播包的发送也可以通过其他方式来触发,本发明实施例对此不做限定。

可选地,该广播包中还可以携带其他信息,如该遥控设备的设备标识,该设备标识可以为名称、型号或厂商等,本发明实施例对此不做限定。

参见图5,提供了一种蓝牙规范中启动广播包的发送过程的示意图,如图5所示,遥控设备启动广播包的发送过程可以包括:hostb向llb发送设置广播参数的命令,如“lesetadvertisingparameters”;llb向hostb发送命令完成的响应,如“commandcomplete”;hostb向llb发送读取广播信道的命令,如“lesetadvertisingchanneltx”;llb向hostb发送命令完成的响应,如“commandcomplete”;hostb向llb发送设置广播数据的命令,如“lesetadvertisingdata”;llb向hostb发送命令完成的响应,如“commandcomplete”;hostb向llb发送设置扫描响应数据的命令,如“lesetscanresponsedata”;llb向hostb发送命令完成的响应,如“commandcomplete”;hostb向llb发送启动广播的命令,如“lesetadvertisingenable”;llb向hostb发送命令完成,如“commandcomplete”。遥控设备启动广播包的发送后,llb可以向lla发送广播包,如图5中的“advert”。

需要说明的是,上述步骤302与步骤301并没有固定的先后顺序,也即是,步骤302也可以在步骤301之后进行,例如,被控设备启动主动扫描之后,遥控设备开始进行广播包的连续发送,如用户先开启被控设备,再对遥控设备进行操作的场景。步骤302可以在步骤301之前进行,例如,在被控设备启动蓝牙功能和主动扫描之前,遥控设备已经处于广播包的连续发送状态,如用户先对遥控设备进行操作触发广播包的发送,再启动被控设备的场景。

303、当接收到广播包时,被控设备获取该广播包的rssi(receivedsignalstrengthindication,接收信号强度指示)值。

本发明实施例中,在主动扫描模式下,当被控设备监听到遥控设备的广播包时,被控设备可以接收该广播包,并测量接收该广播包时的信号强度,得到该广播包的rssi值。

304、当该广播包的rssi值大于或等于预设阈值时,被控设备记录该广播包中携带的mac地址。

本发明实施例中,当被控设备接收到的广播包的rssi值大于或等于预设阈值,被控设备可以认为遥控设备与其的距离在可控制范围内,例如,被控设备与遥控设备的距离小于或等于蓝牙技术支持的最大通信距离。

进一步地,被控设备可以记录下广播包中携带的遥控设备的mac地址。在后续的数据包传输过程中,被控设备可以根据已记录的mac地址,对接收到的广播数据包进行过滤,如当接收到的广播数据包不包括该已记录的mac地址时,被控设备可以直接丢弃该广播数据包;当接收到的广播数据包包括该已记录的mac地址时,被控设备可以对该广播数据包中携带的数据进行处理。

可选地,针对步骤302中遥控设备发送的广播包中还可以携带设备标识,在该步骤304中,除了进行rssi值的比较以外,被控设备还可以进行设备标识的比较,当广播包的rssi值大于或等于预设阈值,且广播包中携带的设备标识(如名称)与预设设备标识相同时,被控设备执行记录广播包中携带的mac地址的步骤。

上述步骤302至步骤304是被控设备记录遥控设备的mac地址的过程,以被控设备为电视,遥控设备为遥控器、设备标识为名称为例,该过程的一个示例场景如下:在遥控器和电视距离较近的情况下,遥控器可以进行广播包的发送,电视收到这个广播包后,会进行名称和信号强度匹配,如果名称是a,同时信号强度大于-50db,则电视认为当前的遥控器可以进行使用,同时记录这个遥控器的mac地址。

需要说明的是,被控设备可以只记录一个遥控设备的mac地址,该情况下,当被控设备第一次记录某个遥控设备的mac地址后,如果再次接收到其他遥控设备的广播包,且该广播包的rssi值大于或等于预设阈值时,被控设备可以用当前接收到的广播包中携带的mac地址替换已记录的mac地址。这种情况适用于一个被控设备对应一个遥控设备的控制场景,该场景下用户可以使用一个遥控设备来控制该被控设备。

或者,被控设备也可以记录多个遥控设备的mac地址,该情况下,当被控设备第一次记录某个遥控设备的mac地址后,如果再次接收到其他遥控设备的广播包,且该广播包的rssi值大于或等于预设阈值时,被控设备可以在保留已记录的mac地址的基础上,记录当前接收到的广播包中携带的其他遥控设备的mac地址。这种情况适用于一个被控设备对应多个遥控设备的控制场景,该场景下用户可以使用多个遥控设备来控制该被控设备,实现了多个遥控设备对一个被控设备的控制。

可见,本发明实施例提供的技术方案,可以根据需要,实现一个遥控设备对多个被控设备的同时控制(多个被控设备均记录了同一个遥控设备的mac地址),也可以实现多个遥控设备对一个被控设备的控制(一个被控设备记录了多个遥控设备的mac地址),灵活方便。

当然,被控设备也可以不记录任何遥控设备的mac地址,该情况下,用户可以通过任何遥控设备来控制该被控设备,本发明实施例对此不做限定。

305、被控设备显示记录成功界面,该记录成功界面用于指示已成功记录该遥控设备的mac地址。

本发明实施例中,被控设备在成功记录遥控设备的mac地址后,可以通过记录成功界面来提示其已成功记录遥控设备的mac地址。这样,用户在看到该提示后,可以对遥控设备进行相应操作,以触发遥控设备向被控设备发送携带遥控数据的广播数据包,从而实现对遥控设备的控制。

上述步骤303至步骤305是被控设备接收遥控设备的广播包并记录遥控设备的mac地址的过程。为了便于更直观的理解上述过程,下面将结合图6提供的一种被控设备接收并记录mac地址的过程示意图,对上述步骤303至步骤305进行解释说明。下面以被控设备为电视、遥控设备为遥控器为例,举出本发明的一个实际应用场景。在该实际应用场景中,电视在发起主动扫描后,可以接收遥控器的广播包,然后比较该广播包的rssi值与预设阈值的大小,当广播包的rssi值小于该预设阈值时,电视可以继续接收遥控器的广播包;当广播包的rssi值大于或等于该预设阈值时,电视可以记录该广播包中携带的遥控器的mac地址,并通过ui(userinterface,用户界面)提示记录成功。

306、遥控设备接收遥控指令,该遥控指令携带用于实现遥控设备对被控设备进行控制的遥控数据。

本发明实施例中,当用户想要通过遥控设备来控制被控设备,以实现某种控制功能时,用户可以对遥控设备进行相应操作,以触发携带遥控数据的遥控指令,当遥控设备接收到该遥控指令时,可以获取该遥控数据。

307、遥控设备连续发送广播数据包,该广播数据包中携带该遥控设备的mac地址和遥控数据。

本发明实施例中,遥控设备在获取待发送的遥控数据后,可以将遥控数据和遥控设备的mac地址携带在undirected广播包中进行发送。进而,遥控设备可以根据蓝牙规范中规定的数据包格式,对遥控数据和mac地址进行打包后,以undirected广播包的形式进行发送。

以遥控设备为遥控器、被控设备为电视为例,当用户想要调高电视的音量时,用户可以按下遥控器上的“音量+”按键,使得遥控器将该按键数据携带在undirected广播包中进行发送。用户可以通过按下不同按键,触发电视发送不同的广播数据包来携带不同的遥控数据。

针对相关技术中遥控设备和被控设备进行配对连接后使用时,由于需要维持链路,因此遥控设备实际和被控设备还需要进行大量的通信,从而导致遥控设备大量耗电的问题。本发明实施例中,遥控器在不使用时,可以与被控设备不进行数据交互,只有在使用的过程中,才会进行广播数据包的发送,因此功耗会非常低,可以达到类似红外的功耗效果。

在一种可能实现方式中,该遥控数据可以为第一类数据,该第一类数据的数据量小于预设阈值,该第一类数据包括但不限于按键数据。由于第一类数据的数据量较小,故可以通过该广播数据包携带这类数据。

在一种可能实现方式中,该遥控数据可以为第二类数据,该第二类数据的数据量大于或等于该预设阈值,该第二类数据包括但不限于语音数据和空鼠数据。由于第二类数据的数据量较大,遥控设备可以通过该广播数据包携带一部分遥控数据,而在后续过程中接收到被控设备的扫描请求包时,通过回复给被控设备的扫描响应包携带另一部分遥控数据。

308、当接收到广播数据包时,被控设备获取该广播数据包中携带的mac地址。

本发明实施例中,当被控设备在主动扫描模式下,监听到遥控设备的广播数据包时,被控设备可以接收该广播数据包,并从该广播数据包中获取遥控设备的mac地址。例如,被控设备可以对该广播数据包进行解析,得到遥控数据和遥控设备的mac地址。

309、当该mac地址与已记录的mac地址匹配时,被控设备向该遥控设备发送扫描请求包,该扫描请求包用于指示该被控设备已经接收到该广播数据包。

其中,该扫描请求包携带该被控设备和该遥控设备的mac地址。

本发明实施例中,被控设备可以将当前接收到的广播数据包中携带的mac地址与已记录的mac地址进行比较。如果已记录的mac地址为多个,被控设备可以将当前接收到的mac地址与已记录的多个mac地址一一比较,当该mac地址与已记录的任一个mac地址相同时,被控设备可以确定当前接收到的mac地址与已记录的mac地址匹配。

如果已记录的mac地址为一个,被控设备可以将当前接收到的mac地址与已记录的唯一mac地址进行比较,当它们相同时,被控设备可以确定当前接收到的mac地址与已记录的mac地址匹配。

本发明实施例中,当接收到的mac地址与已记录的mac地址匹配时,被控设备可以将被控设备的mac地址和遥控设备的mac地址以扫描请求包的形式,发送给遥控设备,使得遥控设备可以通过该扫描请求包确定被控设备已经接收到其发送的广播数据包。通过向遥控设备回复扫描请求包的方式,实现了被控设备和遥控设备的双向通信。

可选地,除了向被控设备发送扫描请求包以外,被控设备也可以向遥控设备发送广播数据包,实现被控设备对遥控设备的数据通信,通过实现双向通信可以达到查询电量等目的。

需要说明的是,该步骤309仅是被控设备向遥控设备发送扫描请求包的一种可能实现方式,该方式下,需要进行mac地址匹配,只有在匹配时,被控设备才向遥控设备发送扫描请求包。实际上,被控设备也可以直接向遥控设备发送扫描请求包,而无需进行mac地址匹配,本发明实施例对此不做限定。

310、当接收到被控设备发送的扫描请求包时,遥控设备停止发送该广播数据包,向该被控设备发送扫描响应包。

本发明实施例中,遥控设备在连续发送该广播数据包的过程中,一旦接收到被控设备发送的扫描请求包,则遥控设备可以根据被控设备回复的扫描请求包,得知被控设备已经接收到了其发送的广播数据包,则遥控设备可以停止发送该广播数据包,以避免不必要的资源浪费。

需要说明的是,上述步骤307至步骤310是遥控设备连续发送广播数据包,直至接收到被控设备的扫描请求包时才停止发送广播数据包的过程。上述步骤307仅是遥控设备发送广播数据包的一种可能实现方式,实际上,考虑到广播数据包以及扫描请求包传输需要一定时间,有可能被控设备接收到了遥控设备第一次发送的广播数据包,但由于扫描请求包从被控设备发出到遥控设备接收需要一定时间,所以导致遥控设备在广播数据包发出到扫描请求包接收这段时间内,又重新发送了一次广播数据包,从而造成资源的浪费。

因此,步骤307中遥控设备也可以先发送一次该广播数据包,当预设时间段内接收到被控设备的扫描请求包时,则不再重新发送该广播数据包;当预设时间段内未接收到被控设备的扫描请求包时,则再一次发送该广播数据包。其中,该预设时长可以根据广播数据包以及扫描请求包传输时所需要的时间进行设定,本发明实施例对此不做限定。

针对步骤307中遥控数据为第二类数据时,遥控设备需要将遥控数据进行分包携带的情况,遥控设备可以在步骤307中的广播数据包中携带一部分遥控数据的基础上,在该步骤310中的扫描响应包中携带另一部分遥控数据。通过分包携带的方式,使得遥控设备和被控设备之间不仅可以传输按键数据等数据量较小的简单数据,也可以传输空鼠、语音等数据量较大的复杂数据。通过将数据量较大的复杂数据进行分包携带,可以提高传送效率。

需要说明的是,本发明实施例仅以当遥控设备接收到被控设备的扫描请求包时,向被控设备发送扫描响应包为例进行说明,实际上,遥控设备也可以不向被控设备发送扫描响应包,例如,遥控数据为第一类数据时,该类数据仅通过广播数据包携带即可,遥控设备可以无需向被控设备发送扫描响应包。

311、当接收到该遥控设备的扫描响应包时,被控设备对该遥控数据进行处理,实现该遥控设备对该被控设备的控制。

本发明实施例中,当被控设备接收到遥控设备的扫描响应包时,被控设备和遥控设备都已确认广播数据包被成功接收,此时,被控设备可以对该广播数据包中的遥控数据进行处理。

在一种可能实现方式中,被控设备对遥控数据进行处理,包括:根据该遥控数据和预定义映射表,确定该遥控数据对应的控制指令,该预定义映射表用于记录遥控数据与控制指令之间的映射关系;执行该控制指令。其中,该预定义映射表可以由开发人员根据遥控设备的遥控数据以及被控设备可提供功能之间的对应关系进行定义,并配置在该被控设备中。例如,当遥控数据为是“音量+”的按键数据时,控制指令为调高音量,被控设备可以执行该调高音量的指令,达到不需要配对连接情况下的蓝牙按键控制功能。

本发明实施例提供的技术方案,由于不存在配对连接的过程,因此不会出现断连接、丢失配对等情况而导致用户需要重新配对的过程。而且,上述技术方案整个架构比较简单,因此不需要蓝牙协议栈等过多的部分进行参与,上述技术方案对linux等机型都可以实现移植。

针对步骤307中的广播数据包和步骤310中的扫描响应包均携带遥控数据的情况,在该步骤311中,当接收到该遥控设备的扫描响应包时,被控设备可以获取扫描响应包中携带的另一部分遥控数据,对广播数据包中携带的一部分遥控数据和扫描响应包中携带的另一部分遥控数据进行组包,对组包后的遥控数据进行处理。通过主动扫描发送扫描请求包给遥控设备,并通过遥控设备返回的扫描响应包获取额外的数据。

在一种可能实现方式中,被控设备对遥控数据进行处理的过程包括:将遥控数据上报到hid(humaninterfacedevice,人机接口设备)节点,通过hid节点将该遥控数据提供给linux进行处理。

其中,该hid节点是被控设备和遥控设备之间进行数据传输的节点。例如,被控设备可以在开机时,自动启动蓝牙功能,被控设备可以默认使用蓝牙遥控设备,因此在蓝牙启动初期,被控设备可以即时建立该hid节点。当然,被控设备也可以在其他时机建立hid节点,本发明实施例对此不做限定。

该方式下,被控设备的主机(如图4和图5中的hosta)可以将该遥控数据上报到hid节点,或者,针对扫描响应包中携带另一部分遥控数据的情况,hosta可以对广播数据包中携带的一部分遥控数据和扫描响应包中携带的另一部分遥控数据进行组包后,将组包后的遥控数据上报到hid节点,通过hid节点将该遥控数据提供给linux进行处理。

上述方式是针对被控设备建立hid节点的情况,被控设备可以将该hid节点作为数据的通路,在该被控设备内部实现数据的转发,如通过该hid节点将遥控数据提供给上层应用,以对该遥控数据进行处理,以实现相应的控制功能。

实际上,被控设备也可以不建立hid节点,而通过其他方式对该遥控数据进行处理,例如,接收到遥控数据后,被控设备可以通过回调函数,将该遥控数据传递到系统的数据处理部分进行处理。其中,系统可以是android系统,也可以是linux、windows、ios等系统,以android系统为例,该数据处理部分可以是android系统的蓝牙应用程序(bluetooth.apk)、底层(frameworks层)等;以linux系统为例,该数据处理部分可以是linux系统的dfb(directfb),本发明实施例对此不做限定。

另外,该步骤309中,被控设备必须在接收到遥控设备的扫描响应包时,才对该遥控数据进行处理,实际上,被控设备也可以在向遥控设备发送扫描请求包后,直接对遥控数据进行处理,本发明实施例对此不做限定。

上述步骤307至步骤311以遥控设备和被控设备为执行主体,对遥控设备和被控设备之间进行数据包传输以及处理的过程进行了说明。实际上,上述步骤307至步骤311可以通过遥控设备和被控设备内的主机(host)和链路层(ll)完成。

参见图7,提供了一种数据包传输以及处理的流程图,如图7所示,步骤307中广播数据包的发送实际上可以由遥控设备的链路层(图7中的llb)完成,如llb向遥控设备的主机(图7中的hostb)发送“undirectedadv”,该广播数据包可以携带遥控设备的遥控数据(如按键数据),llb可以连续发送广播数据包n次,n为不小于1的正整数。步骤308中广播数据包的接收实际上可以由被控设备的链路层(图7中的lla)完成,lla接收到广播数据包后,可以发送给被控设备的主机(图7中的hosta)进行解析,得到广播数据包中携带的遥控数据,如lla向hosta发送“undirectedadvreceive(无定向广播接收)”。步骤309中扫描请求包的发送实际上可以由被控设备的链路层完成,如lla向llb发送“scanrequest”。步骤310中扫描请求包的接收实际上可以由遥控设备的链路层完成,遥控设备的链路层接收到广播数据包后,可以上报给遥控设备的主机(图7中的hostb),如llb向hostb发送“scanrequestreceive(扫描请求接收)”。步骤310中扫描响应包的发送实际上可以由遥控设备的链路层完成,如hostb向hosta发送“scanresponse”。步骤311中扫描响应包的接收实际上可以由被控设备的链路层完成,被控设备的链路层接收到扫描响应包后,可以上报给被控设备的主机,如lla向hosta发送“scanresponsereceive(扫描响应接收)”,进而hosta可以确定广播数据包已被接收,进而将广播数据包中携带的遥控数据上报到hid节点,例如,主机可以将按键数据上报到hid节点,也可以将提供广播数据包和扫描响应包分包携带的语音数据在蓝牙软件层进行数据组包后,再上报到hid节点,后续执行数据处理流程。

本发明实施例提供的方法,遥控设备可以在发送广播数据包后,通过被控设备回复的扫描请求包得知广播数据包已被成功接收,因而,遥控设备无需对同一个广播数据包进行数次重传,避免了资源浪费,减少了电池消耗。

另外,遥控设备向被控设备回复的扫描响应包中也可以携带有效的遥控数据,这种通过广播数据包和扫描响应包分包携带遥控数据的方式,在实现数据包发送过程中的确认的同时,提高了传送效率。

图8是本发明实施例提供的一种设备控制装置的结构示意图。参照图8,该装置包括:

接收模块801,用于接收遥控指令,该遥控指令携带用于实现该遥控设备对被控设备进行控制的遥控数据;

发送模块802,用于发送广播数据包,该广播数据包中携带该遥控数据;

该发送模块802,还用于当接收到该被控设备发送的扫描请求包时,停止发送该广播数据包,该扫描请求包用于指示该被控设备已经接收到该广播数据包。

可选地,该发送模块802用于连续发送该广播数据包;在连续发送该广播数据包的过程中,当接收到该扫描请求包时,停止发送该广播数据包。

可选地,该发送模块802用于发送一次该广播数据包;当预设时间段内接收到该扫描请求包时,不再重新发送该广播数据包。

可选地,该发送模块802还用于当该预设时间段内未接收到该扫描请求包时,再一次发送该广播数据包。

可选地,该遥控数据为第一类数据,该第一类数据的数据量小于预设阈值。

可选地,该第一类数据包括按键数据。

可选地,该发送模块802还用于当接收到该扫描请求包时,向该被控设备发送扫描响应包。

可选地,当该遥控数据为第二类数据时,该扫描响应包中携带另一部分遥控数据,该第二类数据的数据量大于或等于该预设阈值。

可选地,该第二类数据包括语音数据和空鼠数据。

本发明实施例中,遥控设备可以在发送广播数据包后,通过被控设备回复的扫描请求包得知广播数据包已被成功接收,因而遥控设备无需对同一个广播数据包进行数次重传,避免了资源浪费,减少了电池消耗。

图9是本发明实施例提供的一种设备控制装置的结构示意图。参照图9,该装置包括:

接收模块901,用于接收广播数据包,该广播数据包中携带遥控设备的遥控数据,该遥控设备为发送该广播数据包的设备;

发送模块902,用于向该遥控设备发送扫描请求包,该扫描请求包用于指示该被控设备接收到该广播数据包;

处理模块903,用于对该遥控数据进行处理,实现该遥控设备对该被控设备的控制。

可选地,该遥控数据为第一类数据,该第一类数据的数据量小于预设阈值。

可选地,该第一类数据包括按键数据。

可选地,该处理模块903用于当接收到该遥控设备的扫描响应包时,对该遥控数据进行处理。

可选地,当该遥控数据为第二类数据时,该扫描响应包中携带另一部分遥控数据,该第二类数据的数据量大于或等于该预设阈值。

可选地,该处理模块903用于当接收到该扫描响应包时,获取该扫描响应包中携带的另一部分遥控数据;对该遥控数据和该另一部分遥控数据进行组包;对组包后的遥控数据进行处理。

可选地,该第二类数据包括语音数据和空鼠数据。

本发明实施例中,被控设备在接收到遥控设备发送的广播数据包时,通过向遥控设备回复扫描请求包的方式,告知遥控设备其发送的广播数据包已被成功接收,使得遥控设备无需对同一个广播数据包进行数次重传,避免了资源浪费,减少了电池消耗。

需要说明的是:上述实施例提供的设备控制装置在设备控制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的设备控制装置与设备控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图10是本发明实施例提供的一种遥控设备1000的结构框图。该遥控设备1000可以是遥控器、手机等设备。通常,遥控设备1000包括有:处理器1001和存储器1002。

处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1001所执行以实现本申请中方法实施例提供的设备控制方法。

在一些实施例中,遥控设备1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:收发器1004和显示屏1005中的至少一种。

外围设备接口1003可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

收发器1004用于接收和发射信号,收发器1004可以集成有蓝牙芯片,以实现本发明实施例中的数据包发送。

显示屏1005用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005可以为一个,设置遥控设备1000的前面板;在另一些实施例中,显示屏1005可以为至少两个,分别设置在遥控设备1000的不同表面或呈折叠设计;在再一些实施例中,显示屏1005可以是柔性显示屏,设置在遥控设备1000的弯曲表面上或折叠面上。甚至,显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。显示屏1005可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

本领域技术人员可以理解,图10中示出的结构并不构成对遥控设备1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

图11是本发明实施例提供的一种被控设备1100的结构框图。该被控设备1100可以是智能电视、空调等。通常,被控设备1100包括有:处理器1101和存储器1102。

处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1101所执行以实现本申请中方法实施例提供的设备控制方法。

在一些实施例中,被控设备1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:收发器1004、显示屏1105和音频电路1106中的至少一种。

外围设备接口1103可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

收发器1004用于接收和发射信号,收发器1004可以集成有蓝牙芯片,以实现本发明实施例中的数据包接收。

显示屏1105用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置被控设备1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在被控设备1100的不同表面或呈折叠设计;在再一些实施例中,显示屏1105可以是柔性显示屏,设置在被控设备1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

音频电路1106可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在被控设备1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1106还可以包括耳机插孔。

本领域技术人员可以理解,图11中示出的结构并不构成对被控设备1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,例如存储有计算机程序的存储器,上述计算机程序被处理器执行时实现上述图1、图2或图3对应的实施例中的设备控制方法。例如,该计算机可读存储介质可以是只读内存(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上该仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1