基于蓝牙的数据通信方法、存储介质和电子设备与流程

文档序号:18619331发布日期:2019-09-06 22:20阅读:172来源:国知局
本发明实施例涉及无线通信技术,尤其涉及一种基于蓝牙的数据通信方法、存储介质和电子设备。
背景技术
::低功耗蓝牙(ble)的广播具有可连接(connectable)、可扫描(scannable)、是否定向(directed)等三种属性。这些属性相互组合,构成了低功耗蓝牙的以下七种广播事件:·可连接可扫描非定向(aconnectableandscannableundirectedevent);·可连接非定向(aconnectableundirectedevent);·可连接定向(aconnectabledirectedevent);·不可连接不可扫描非定向(anon-connectableandnon-scannableundirectedevent);·不可连接不可扫描定向(anon-connectableandnon-scannabledirectedevent);·可扫描非定向(ascannableundirectedevent);·可扫描定向(ascannabledirectedevent)。其中,对于可扫描广播,发送方的流程为:1.发送可扫描广播;2.等待一定时间间隔(t_ifs);3.在同一信道上尝试接收扫描请求;4.如果收到了扫描请求,并且符合过滤条件,则发送扫描响应数据包。可扫描广播的扫描方(处于activescanning模式下)在接收到可扫描广播后的处理流程为:1.等待一定时间间隔(t_ifs);2.在同一信道上发送扫描请求;3.等待一定时间间隔(t_ifs);4.在同一信道上尝试开始接收扫描响应。蓝牙网状规范(bluetoothmeshprofile)提供了一种基于低功耗蓝牙的网状网络解决方案。在蓝牙网状规范中,一个节点可以有中继(relay)、代理(proxy)、低功耗(lowpower)、好友(friend)等4种特性。除代理(proxy)及基于gatt的配网(provision)使用连接模式传输数据以外,在其它情况下均使用不可连接不可扫描非定向的广播传输数据。低功耗节点可以与支持好友特性的节点建立好友关系,然后低功耗节点即可进入低功耗工作模式,期间由好友节点缓存其它节点要发送给该低功耗节点的消息。由此,低功耗节点可以较低的频率发送轮询请求从好友获取数据,不再需要长时间监听来自其它节点的消息,降低了功耗。然而,现有的方案存在这样的问题:低功耗节点在发送轮询请求后,仍需要在一定时间内(由接收窗口参数决定,范围为1~255ms)处于扫描模式,由此将继续产生功耗。技术实现要素:本发明实施例的目的在于,提供一种基于广播的数据通信方案,以在低功耗节点和好友节点之间实现双向数据通信,节省功耗。根据本发明实施例的第一方面,提供一种基于蓝牙的数据通信方法,包括:通过蓝牙模块接收定向给本设备的广播消息;确定所述广播消息发自符合白名单过滤规则的外部设备;构建附有数据载荷字段的扫描请求数据包,将待传输给所述外部设备的待传输消息写入构建的扫描请求数据包中的数据载荷字段,并且将所述扫描请求数据包发送给所述外部设备。可选地,所述待传输消息中含有指示是否存在其他待传输消息的数据标记;所述将待传输给所述外部设备的待传输消息写入构建的扫描请求数据包中的数据载荷字段,还包括:确定是否存在待传输给所述外部设备的其他待传输消息;根据是否存在待传输给所述外部设备的其他待传输消息的确定结果,在所述待传输消息中写入所述数据标记的值。可选地,所述符合白名单过滤规则的外部设备为蓝牙网状网中与本设备具有好友关系的低功耗设备,所述广播消息为friendpoll消息,所述待传输消息为friendupdate消息,所述数据标记为所述friendupdate消息中的md域。可选地,所述构建附有数据载荷字段的扫描请求数据包,将待传输给所述外部设备的待传输消息写入构建的扫描请求数据包中的数据载荷字段,并且将所述扫描请求数据包发送给所述外部设备,包括:如果确定网络安全参数正在更新或已更新,则构建附有数据载荷字段的扫描请求数据包,将相应的friendupdate消息作为待传输消息写入构建的扫描请求数据包中的数据载荷字段,并且将所述扫描请求数据包发送给所述外部设备,其中,根据本设备缓存的待传输给所述外部设备的消息队列是否为空,写入所述friendupdate消息中的md域的值。可选地,所述构建附有数据载荷字段的扫描请求数据包,将待传输给所述外部设备的待传输消息写入构建的扫描请求数据包中的数据载荷字段,并且将所述扫描请求数据包发送给所述外部设备,还包括:如果确定当前网络安全参数没有正在更新或没有已被更新,且所述消息队列不为空,则执行以下消息发送处理:构建附有数据载荷字段的扫描请求数据包;从所述消息队列取出一条friendupdate消息;将该friendupdate消息的flags域设置为0;如果取出的friendupdate消息不是所述消息队列中的最后一条消息,则该friendupdate消息的md域设置为1;如果取出的friendupdate消息是所述消息队列中的最后一条消息,则该friendupdate消息的md域设置为0;将该friendupdate消息写入构建的扫描请求数据包中的数据载荷字段,并且将所述扫描请求数据包发送给所述外部设备。根据本发明实施例的第二方面,提供一种基于蓝牙的数据通信方法,包括:通过蓝牙模块发送定向给符合白名单过滤规则的外部设备的第一广播消息;接收第一扫描请求数据包;如果确定接收到的第一扫描请求数据包发自符合白名单过滤规则的外部设备,则发送与所述第一扫描请求数据包相应的第一扫描响应数据包,并且如果所述第一扫描请求数据包附有数据载荷字段,则从所述第一扫描请求数据包中的所述数据载荷字段提取第一待处理消息,并且对所述第一待处理消息进行处理。可选地,所述第一待处理消息中含有指示是否存在其他待处理消息的数据标记;所述对所述第一待处理消息进行处理,包括:获取所述第一待处理消息中的数据标记的数据;如果所述数据标记的数据指示存在其他待处理消息,则通过蓝牙模块再次发送定向给所述外部设备的第二广播消息,并且从接收的第二扫描请求数据包中的所述数据载荷字段提取第二待处理消息,直到所述第二待处理消息中的数据标记指示不存在其他待处理消息为止。可选地,所述符合白名单过滤规则的外部设备为蓝牙网状网中与本设备具有好友关系的设备,所述广播消息为friendpoll消息,所述第一待处理消息和第二待处理消息均为friendupdate消息,所述friendupdate消息中含有指示是否存在其他待处理消息的md域。根据本发明实施例的第三方面,提供一种第一计算机可读存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时实现前述第一方面的任一基于蓝牙的数据通信方法的步骤。根据本发明实施例的第四方面,提供一种第二计算机可读存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时实现前述第二方面的任一基于蓝牙的数据通信方法的步骤。根据本发明实施例的第五方面,提供一种第一电子设备,包括:处理器、存储器、通信元件和通信总线,所述处理器、所述存储器和所述通信元件通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行前述第一方面的任一基于蓝牙的数据通信方法对应的操作。根据本发明实施例的第六方面,提供一种第二电子设备,包括:处理器、存储器、通信元件和通信总线,所述处理器、所述存储器和所述通信元件通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行前述第二方面的任一基于蓝牙的数据通信方法对应的操作。根据本发明实施例提供的基于蓝牙的数据通信方案,能够在蓝牙网络的低功耗设备自省电状态进入工作状态时,在从低功耗设备接收到定向给好友设备的广播消息之后,在低功耗设备及其好友设备之间实现双向的数据通信,从而提高数据通信的效率,为低功耗设备节省功耗。在此基础上,通过在附送的网络更新消息中设置的用于指示是否存在更多待发送的数据的字段,低功耗设备可获知是否已结束接收好友设备缓存的消息,从而低功耗设备无需再继续进行广播扫描,而及时进入省电状态,进一步节省了功耗。附图说明图1是示出低功耗蓝牙(ble)的扫描请求数据包的载荷的示意图;图2示出根据本发明一些实施例提出的附有数据载荷字段的扫描请求数据包的载荷的示例性格式;图3是根据本发明一些实施例的基于蓝牙的数据通信方法的流程图;图4是示出根据本发明另一些实施例的基于蓝牙的数据通信方法的流程图;图5是示出根据本发明又一些实施例的基于蓝牙的数据通信方法的流程图;图6是示出根据本发明又一些实施例的基于蓝牙的数据通信方法的流程图;图7是示出根据本发明一些实施例的第一电子设备的结构示意图;图8是示出根据本发明另一些实施例的第二电子设备的结构示意图。具体实施方式下面结合附图详细描述本发明实施例的示例性实施例。在本申请中,“多个”指两个或两个以上,“至少一个”指一个、两个或两个以上。对于本申请中提及的任一部件、数据或结构,在没有明确限定一个的情况下,可理解为一个或多个。在本申请的
背景技术
:部分,已简要地描述了在蓝牙网状网络解决方案中,低功耗节点在与相关的节点建立了好友关系后,即可进入低功耗工作模式,其好友节点缓存网络中其他节点发送给该低功耗节点的消息。此后,该低功耗节点可以较低的频率唤醒,向好友节点发送轮询请求,好友节点通过向该低功耗节点发送扫描请求数据包进行响应。此后,好友节点向该低功耗节点发送缓存的这些消息。然而,在此过程中,低功耗节点在发送轮询请求后,仍需要在一定时间内处于扫描模式,由此将继续产生功耗。好友节点发送的扫描请求数据包分为两种,scan_req和aux_scan_req,这两种数据包的载荷相同,包括scana和adva两个字段,如图1所示。可以看出,好友节点无法在发送扫描请求数据包时一并发送其缓存的网络消息,而必须另行进行发送。对此,根据本发明的总体发明构思,提出一种改良的扫描请求数据包中的载荷的结构,如图2所示,其中,在scana和adva两个字段的基础上,增加了数据载荷字段,该新增加的字段可用于承载扫描方意图发送的任何数据。该载荷的结构可适用于scan_req和aux_scan_req扫描请求数据包,在此将增加了数据载荷字段的扫描请求数据包分别定义为new_scan_req和new_aux_scan_req。其中,对于使用旧广播数据格式(legacyadvertisingevents)的低功耗节点设备,扫描请求数据包指的是new_scan_req,否则指的是new_aux_scan_req。该数据载荷字段可设置为固定长度,也可设置为可变长度。例如,可将该数据载荷字段的最大长度设定为25字节,由此整个载荷的长度不超过37个字节,符合蓝牙核心规范5.0及以下版本关于广播包(advertising)的协议数据单元(pdu)的长度定义。此外,可将该字段设置在扫描请求数据包的载荷部分的任何位置,为了尽可能与现有的扫描请求数据包的载荷兼容,优选地将该数据载荷字段配置在scana和adva两个字段之后。通过在扫描请求数据包的载荷部分添加数据载荷字段,使得在扫描请求数据包中附送例如缓存的消息成为可能。此外,还能够通过附送的数据载荷字段的内容进行更为有效的信息处理。在一个示例性场景中,使用电池供电的支持蓝牙mesh功能的传感器(低功耗设备)在遵循已有的蓝牙mesh协议完成配网等初始化操作后,遵循已有的蓝牙mesh协议与附近的一个节点(如使用市电的支持mesh功能的灯具)建立好友关系,然后进入低功耗工作模式,以较低的频率(如每天一次)从省电状态进入工作状态。该传感器进入工作状态时,采用可扫描定向广播发送例如friendpoll的广播消息,定向地址为好友节点的设备地址,同时设置广播过滤策略,以仅接收来自好友节点的扫描请求消息。好友节点在收到定向地址为自身设备地址的可扫描定向广播后,执行如图3或图4示出的数据通信方法的处理。传感器如果未收到符合广播过滤条件的扫描请求,即视为未收到friendpoll消息的响应,采用规范既有流程进行后续处理;如果收到符合广播过滤条件的扫描请求,发送扫描响应,并执行如图5示出的数据通信方法的处理。以下将参照图3~图5详细描述在蓝牙设备中执行的基于蓝牙的数据通信方法的处理。这里,相对于本设备来说,将与其交互的其他设备称为外部设备。其中,图3和图4示出的数据通信方法由同一蓝牙设备执行,将相对于该蓝牙设备的外部设备称为第一外部设备;图5示出的数据通信方法由与前述蓝牙设备交互的另一设备执行,将相对于该另一设备的外部设备称为第二外部设备,以便于进行区分。图3是根据本发明一些实施例的基于蓝牙的数据通信方法的流程图。可在蓝牙网络中的设备(如前述的使用市电的支持mesh功能的灯具)中执行该数据通信方法。参照图3,在步骤s310,通过蓝牙模块接收定向给本设备的广播消息。例如,当一蓝牙设备进入工作状态时,发送定向给与其具有好友关系的设备的广播消息。相应地,该好友设备通过其蓝牙模块接收到定向给本设备的广播消息。在步骤s320,确定所述广播消息是否发自符合白名单过滤规则的第一外部设备。在接收到该广播消息之后,可根据该广播消息的信息确定该广播消息的发送方是否为符合白名单过滤规则的第一外部设备(如低功耗设备)。例如,通常来讲,蓝牙设备均维护记录有允许与其通信(如与其具有好友关系)的设备的信息的白名单,在该步骤,可根据该广播消息中的发送设备的信息(如设备标识、设备地址等),与前述白名单中的设备的信息进行匹配,以确定广播消息的发送者为发自符合白名单过滤规则的第一外部设备(如低功耗设备)。如果在步骤s320,确定广播消息发自符合白名单过滤规则的第一外部设备,则继续执行步骤s330及后续步骤的处理;否则,如果确定广播消息不是发自符合白名单过滤规则的第一外部设备,则可返回执行步骤s310的处理,以继续接收来自第一外部设备(如低功耗设备)的广播消息,或者,也可结束该数据通信方法的处理。在确认了从符合白名单过滤规则的第一外部设备接收到广播消息之后,在步骤s330,构建附有数据载荷字段的扫描请求数据包。具体地,在构建附有数据载荷字段的扫描请求数据包的处理中,可按照现有的协议处理方式生成除数据载荷字段以外的信息。在步骤s340,将待传输给所述第一外部设备的待传输消息写入构建的扫描请求数据包中的数据载荷字段。在步骤s350,将写入有数据载荷字段的扫描请求数据包发送给所述第一外部设备(如低功耗设备)。通过前述步骤s310~s350的处理,能够在例如蓝牙网络的低功耗设备进入工作状态时,在从低功耗设备接收到定向给好友设备的广播消息之后,在两个设备(如低功耗设备及其好友设备)之间实现双向的数据通信,从而提高数据通信的效率,节省功耗。图4是示出根据本发明另一些实施例的基于蓝牙的数据通信方法的流程图。图4示出的数据通信方法是图3中示出的数据通信方法的具体实施方式,其中的步骤s410~s430分别与前述步骤s310~s330对应,在此不予赘述。参照图4,在确定接收到的广播消息发自符合白名单过滤规则的第一外部设备之后,执行以下步骤s440~s470的处理,以有效地处理存在一条或多条待发送给第一外部设备的待传输消息的情形。这里,待传输消息中含有指示是否存在其他待传输消息的数据标记。在步骤s440,确定是否存在待传输给所述第一外部设备的其他待传输消息。可例如,通过当前本设备是否缓存有至少两条待传输消息来确定是否存在待传输给所述第一外部设备的其他待传输消息。在步骤s450,根据是否存在待传输给所述第一外部设备的其他待传输消息的确定结果,在所述待传输消息中写入所述数据标记的值。例如,如果确定不存在待传输给所述第一外部设备的其他待传输消息,则在待传输消息中写入指示不存在其他待传输消息的数据标记的值(如0);如果确定存在待传输给所述第一外部设备的其他待传输消息,则在待传输消息中写入指示还存在其他待传输消息的数据标记的值(如1或其他非0的值)。在步骤s460,将待传输给所述第一外部设备的待传输消息写入构建的扫描请求数据包中的数据载荷字段。在步骤s470,将写入有数据载荷字段的扫描请求数据包发送给所述第一外部设备(如低功耗设备)。步骤s460~s470的处理与前述步骤s340~s350的处理分别类似,在此不予赘述。通过步骤s410~s470的处理,能够在蓝牙网络中的两个设备(之间实现双向的数据通信,并且在通信过程中,向外部设备传递其是否还有更多待传输消息的信息,以使外部设备确定是否进一步发送广播消息,从而进一步提高数据通信的效率,节省功耗。图5是示出根据本发明另一些实施例的基于蓝牙的数据通信方法的流程图。图5示出的数据通信方法是图3中示出的数据通信方法的另一具体实施方式。其中,所述符合白名单过滤规则的第一外部设备为蓝牙网状网中与本设备具有好友关系的低功耗设备,所述待传输消息为friendupdate消息,所述数据标记为所述friendupdate消息中的md(moredata)域。需要指出,根据本发明实施例的数据通信方法不仅限于适用蓝牙低功耗(ble)技术,其也适用于任何支持前述好友关系、广播消息和扫描请求数据包的通信架构。参照图5,在步骤s510,通过蓝牙模块接收定向给本设备的friendpoll消息。例如,当低功耗设备(如使用电池供电的传感器)自省电状态进入工作状态时,发送定向给与其具有好友关系的设备的friendpoll消息。相应地,该好友设备通过其蓝牙模块接收到定向给本设备的广播消息。在步骤s520,确定接收到的friendpoll消息是否发自蓝牙网状网中与本设备具有好友关系的低功耗设备。可根据在本设备与低功耗设备建立好友关系时记录的关于低功耗设备的信息来确定接收到的friendpoll消息是否发自与本设备具有好友关系的低功耗设备。在步骤s530,确定当前网络安全参数是否正在更新或已被更新。通常,当正在发生网络安全参数更新时或在已发生网络安全参数更新的有限时间内,将从蓝牙网状网接收到相应的friendupdate(网络更新)消息。如果在步骤s530,确定当前网络安全参数正在更新或已被更新,则执行步骤s540~s560的处理。在步骤s540,构建附有数据载荷字段的扫描请求数据包。在步骤s550,将与网络安全参数更新相应的friendupdate消息作为待传输消息写入构建的扫描请求数据包中的数据载荷字段,其中,根据要更新的参数(key或者/和iv参数),将所述friendupdate消息中的flags域的相应比特位置为1或0;根据本设备缓存的待传输给所述第一外部设备的消息队列是否为空,写入所述friendupdate消息中的md域的值。例如,如果确定消息队列为空,则在friendupdate消息中写入指示不存在其他待传输消息的md域的值(如0);如果确定消息队列不为空,则在friendupdate消息中写入指示还存在其他待传输消息的md域的值(如1或其他非0的值)。在步骤s560,将写入了friendupdate消息的扫描请求数据包发送给所述低功耗设备。通过步骤s510~s560的处理,能够在蓝牙网状网中的两个设备(如低功耗设备及其好友设备)之间实现双向的数据通信,并且在通信过程中,向低功耗设备传递其是否还有更多待传输的friendupdate消息的信息,从而进一步提高数据通信的效率,节省功耗。根据本发明的可选实施方式,如果在步骤s530,确定当前网络安全参数没有正在更新或没有已被更新,则执行步骤s570~s575的处理。如前所述,在低功耗设备处于省电状态(即休眠状态)时,如果与其建立了好友关系的好友设备从蓝牙网络接收到需要发送给该低功耗设备的消息(如friendupdate消息),则该好友设备通常将接收到的消息缓存到待传输的消息队列中。相应地,在步骤s570,确定本设备缓存的待传输给所述低功耗设备的消息队列是否为空。如果在s570,确定本设备缓存的待传输给所述低功耗设备的消息队列不为空,则执行迭代地步骤s571~s575,直到将该消息队列清空为止。在步骤s571,构建附有数据载荷字段的扫描请求数据包。在步骤s572,从所述消息队列取出一条friendupdate消息。具体地,从消息队列提取一条friendupdate消息,并且从消息队列移除提取的friendupdate消息。在步骤s573,将该friendupdate消息的flags域设置为0。在步骤s574,根据取出的friendupdate消息是否为所述消息队列中的最后一条消息来设置该friendupdate消息的md域的值。具体地,如果取出的friendupdate消息不是所述消息队列中的最后一条消息,则该friendupdate消息的md域设置为1;如果取出的friendupdate消息是所述消息队列中的最后一条消息,则该friendupdate消息的md域设置为0。在步骤s575,将该friendupdate消息写入构建的扫描请求数据包中的数据载荷字段,并且在步骤s576,将写入friendupdate消息的扫描请求数据包发送给所述第一外部设备。步骤s575~s576的处理与前述步骤s340~s350的处理分别类似,在此不予赘述。另一方面,如果在s570,确定本设备缓存的待传输给所述低功耗设备的消息队列为空,则可结束该数据通信方法的处理。通过前述步骤s510~s576的处理,能够在蓝牙网络的低功耗设备自省电状态进入工作状态时,在从低功耗设备接收到定向给好友设备的friendpoll消息之后,在低功耗设备及其好友设备之间实现双向的数据通信。此外,通过在附送的待传输消息中设置用于指示是否存在更多待发送的数据的字段,通知低功耗设备是否已结束发送缓存的待传输消息,从而低功耗设备无需再继续进行广播扫描,而及时返回省电状态,进一步节省了功耗。根据本发明实施例还提供一种第一计算机可读存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时实现前述任一基于蓝牙的数据通信方法的步骤。该第一计算机可读存储介质用于实现前述图3~图5示出的任一方法实施例中相应的基于蓝牙的数据通信方法,并具有相应的方法实施例的有益效果,在此不再赘述。图6是示出根据本发明又一些实施例的基于蓝牙的数据通信方法的流程图。可在蓝牙网络中与执行图3~图5中的数据通信方法的蓝牙设备以外的另一设备(如使用电池供电的传感器)中执行该数据通信方法。参照图6,在步骤s610,通过蓝牙模块发送定向给符合白名单过滤规则的第二外部设备的第一广播消息。例如,如前所述,当低功耗设备(如使用电池供电的传感器)自省电状态进入工作状态时,通过其蓝牙模块发送定向给符合白名单过滤规则的设备的广播消息。在步骤s620,接收第一扫描请求数据包。如果在步骤s620,接收到第一扫描请求数据包,则在步骤s630,确定第一扫描请求数据包是否发自符合白名单过滤规则的第二外部设备。通常来讲,蓝牙设备均维护记录有其好友关系的设备的信息的白名单,在该步骤,可根据该第一扫描请求数据包中的发送设备的信息(如设备标识、设备地址等),与前述白名单中的设备的信息进行匹配,以确定第一扫描请求数据包的发送者为符合白名单过滤规则的第二外部设备。如果在步骤s630,确定第一扫描请求数据包发自符合白名单过滤规则的第二外部设备,则在步骤s640,向所述第二外部设备发送与接收到的第一扫描请求数据包相应的第一扫描响应数据包。此后,执行步骤s650~670。在步骤s650,确定所述第一扫描请求数据包是否附有数据载荷字段。例如,可通过第一扫描请求数据包的载荷部分的长度或者数据载荷字段的起始标记来确定第一扫描请求数据包是否附有数据载荷字段。如前所述,在第一扫描请求数据包的载荷部分附的数据载荷字段中写有待传输消息(在此称为第一待处理消息,以与下文中的第二待处理消息进行区分)。如果在步骤s630,确定第一扫描请求数据包发自符合白名单过滤规则的第二外部设备,且在步骤s650,确定所述第一扫描请求数据包附有数据载荷字段,则在步骤s660,从所述第一扫描请求数据包中的所述数据载荷字段提取第一待处理消息,并且在步骤s670,对所述第一待处理消息进行处理。根据本发明的一种可选实施方式,所述第一待处理消息中含有指示是否存在其他待处理消息的数据标记。相应地,在步骤s670,除了根据第一待处理消息中的数据进行必要的网络设置以外,还执行以下处理:获取所述第一待处理消息中的数据标记的数据;如果所述数据标记的数据指示存在其他待处理消息,则通过蓝牙模块再次发送定向给所述第二外部设备的第二广播消息,并且从接收的第二扫描请求数据包中的所述数据载荷字段提取第二待处理消息,直到所述第二待处理消息中的数据标记指示不存在其他待处理消息为止。另一方面,如果未接收到发自符合白名单过滤规则的第二外部设备的第一扫描请求数据包,则可结束该数据通信方法的处理或者返回执行步骤s620。如果确定接收到的第一扫描请求数据包未附有数据载荷字段,则可按照现有的扫描请求数据包的处理方式对该第一扫描请求数据包进行处理。如前所述,所述符合白名单过滤规则的第二外部设备为蓝牙网状网中与本设备具有好友关系的设备,所述广播消息为friendpoll消息,所述第一待处理消息和第二待处理消息均为friendupdate消息,所述friendupdate消息中含有指示是否存在其他待处理消息的md域。通过前述处理,能够在蓝牙网络的低功耗设备自省电状态进入工作状态时,在从低功耗设备接收到定向给好友设备的广播消息之后,在低功耗设备及其好友设备之间实现双向的数据通信,从而提高数据通信的效率,为低功耗设备节省功耗。在此基础上,通过在附送的网络更新消息中设置的用于指示是否存在更多待发送的数据的字段,低功耗设备可获知是否已结束接收好友设备缓存的消息,从而低功耗设备无需再继续进行广播扫描,而及时进入省电状态,进一步节省了功耗。根据本发明实施例还提供一种第二计算机可读存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时实现前述任一基于蓝牙的数据通信方法的步骤。该第二计算机可读存储介质用于实现前述图6示出的任一方法实施例中相应的基于蓝牙的数据通信方法,并具有相应的方法实施例的有益效果,在此不再赘述。图7是示出根据本发明一些实施例的第一电子设备的结构示意图。本发明实施例还提供了一种第一电子设备,例如可以是移动终端、个人计算机(pc)、平板电脑、服务器等。下面参考图7,其示出了适于用来实现本发明实施例的终端设备或服务器的第一电子设备700的结构示意图。如图7所示,第一电子设备700包括一个或多个第一处理器、第一通信元件等,所述一个或多个第一处理器例如:一个或多个第一中央处理单元(cpu)701,和/或一个或多个第一图像处理器(gpu)713等,第一处理器可以根据存储在第一只读存储器(rom)702中的可执行指令或者从第一存储部分708加载到第一随机访问存储器(ram)703中的可执行指令而执行各种适当的动作和处理。第一通信元件包括第一通信组件712和第一通信接口709。其中,第一通信组件712可包括但不限于网卡,所述网卡可包括但不限于ib(infiniband)网卡,第一通信接口1409包括诸如lan卡、调制解调器等的网络接口卡的通信接口,第一通信接口1409经由诸如因特网的网络执行通信处理。第一处理器可与第一只读存储器1402和/或第一随机访问存储器1430中通信以执行可执行指令,通过第一总线1404与第一通信组件1412相连、并经第一通信组件1412与其他目标设备通信,从而完成本发明实施例提供的任一项方法对应的操作,例如,通过蓝牙模块接收定向给本设备的广播消息;确定所述广播消息发自符合白名单过滤规则的外部设备;构建附有数据载荷字段的扫描请求数据包,将待传输给所述外部设备的待传输消息写入构建的扫描请求数据包中的数据载荷字段,并且将所述扫描请求数据包发送给所述外部设备。此外,在第一ram703中,还可存储有装置操作所需的各种程序和数据。第一cpu701、第一rom702以及第一ram703通过第一总线704彼此相连。在有第一ram703的情况下,第一rom702为可选模块。第一ram703存储可执行指令,或在运行时向第一rom702中写入可执行指令,可执行指令使第一处理器701执行上述通信方法对应的操作。第一输入/输出(i/o)接口705也连接至第一总线704。第一通信组件712可以集成设置,也可以设置为具有多个子模块(例如多个ib网卡),并在总线链接上。以下部件连接至第一i/o接口705:包括键盘、鼠标等的第一输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的第一输出部分707;包括硬盘等的第一存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的第一通信接口709。第一驱动器710也根据需要连接至第一i/o接口705。第一可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在第一驱动器710上,以便于从其上读出的计算机程序根据需要被安装入第一存储部分708。需要说明的是,如图7所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图7的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如gpu和cpu可分离设置或者可将gpu集成在cpu上,第一通信组件712可分离设置,也可集成设置在cpu或gpu上,等等。这些可替换的实施方式均落入本发明的保护范围。特别地,根据本发明实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码,程序代码可包括对应执行本发明实施例提供的方法步骤对应的指令,例如,用于通过蓝牙模块接收定向给本设备的广播消息的可执行代码;用于确定所述广播消息发自符合白名单过滤规则的外部设备的可执行代码;用于构建附有数据载荷字段的扫描请求数据包,将待传输给所述外部设备的待传输消息写入构建的扫描请求数据包中的数据载荷字段,并且将所述扫描请求数据包发送给所述外部设备的可执行代码。在这样的实施例中,该计算机程序可以通过通信元件从网络上被下载和安装,和/或从第一可拆卸介质711被安装。在该计算机程序被第一中央处理单元(cpu)701执行时,执行本发明实施例的方法中限定的上述功能。本发明实施例提供的第一电子设备,能够在例如蓝牙网络的低功耗设备进入工作状态时,在从低功耗设备接收到定向给好友设备的广播消息之后,在两个设备(如低功耗设备及其好友设备)之间实现双向的数据通信,从而提高数据通信的效率,节省功耗。图8是示出根据本发明另一些实施例的第二电子设备的结构示意图。本发明实施例还提供了一种第二电子设备,例如可以是移动终端、个人计算机(pc)、平板电脑、服务器等。下面参考图8,其示出了适于用来实现本发明实施例的终端设备或服务器的第二电子设备800的结构示意图。如图8所示,第二电子设备800包括一个或多个第二处理器、第二通信元件等,所述一个或多个第二处理器例如:一个或多个第二中央处理单元(cpu)801,和/或一个或多个第二图像处理器(gpu)813等,第二处理器可以根据存储在第二只读存储器(rom)802中的可执行指令或者从第二存储部分808加载到第二随机访问存储器(ram)803中的可执行指令而执行各种适当的动作和处理。第二通信元件包括第二通信组件812和第二通信接口809。其中,第二通信组件812可包括但不限于网卡,所述网卡可包括但不限于ib(infiniband)网卡,第二通信接口809包括诸如lan卡、调制解调器等的网络接口卡的通信接口,第二通信接口809经由诸如因特网的网络执行通信处理。第二处理器可与第二只读存储器802和/或第二随机访问存储器830中通信以执行可执行指令,通过第二总线804与第二通信组件812相连、并经第二通信组件812与其他目标设备通信,从而完成本发明实施例提供的任一项方法对应的操作,例如,通过蓝牙模块发送定向给符合白名单过滤规则的外部设备的第一广播消息;接收第一扫描请求数据包;如果确定接收到的第一扫描请求数据包发自符合白名单过滤规则的外部设备,则发送与所述第一扫描请求数据包相应的第一扫描响应数据包,并且如果所述第一扫描请求数据包附有数据载荷字段,则从所述第一扫描请求数据包中的所述数据载荷字段提取第一待处理消息,并且对所述第一待处理消息进行处理。此外,在第二ram803中,还可存储有装置操作所需的各种程序和数据。第二cpu801、第二rom802以及第二ram803通过第二总线804彼此相连。在有第二ram803的情况下,第二rom802为可选模块。第二ram803存储可执行指令,或在运行时向第二rom802中写入可执行指令,可执行指令使第二处理器801执行上述通信方法对应的操作。第二输入/输出(i/o)接口805也连接至第二总线804。第二通信组件812可以集成设置,也可以设置为具有多个子模块(例如多个ib网卡),并在总线链接上。以下部件连接至第二i/o接口805:包括键盘、鼠标等的第二输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的第二输出部分807;包括硬盘等的第二存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的第二通信接口809。第二驱动器810也根据需要连接至第二i/o接口805。第二可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在第二驱动器810上,以便于从其上读出的计算机程序根据需要被安装入第二存储部分808。需要说明的是,如图8所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图8的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如gpu和cpu可分离设置或者可将gpu集成在cpu上,第二通信组件812可分离设置,也可集成设置在cpu或gpu上,等等。这些可替换的实施方式均落入本发明的保护范围。特别地,根据本发明实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码,程序代码可包括对应执行本发明实施例提供的方法步骤对应的指令,例如,用于通过蓝牙模块发送定向给符合白名单过滤规则的外部设备的第一广播消息的可执行代码;接收第一扫描请求数据包;用于如果确定接收到的第一扫描请求数据包发自符合白名单过滤规则的外部设备,则发送与所述第一扫描请求数据包相应的第一扫描响应数据包,并且如果所述第一扫描请求数据包附有数据载荷字段,则从所述第一扫描请求数据包中的所述数据载荷字段提取第一待处理消息,并且对所述第一待处理消息进行处理的可执行代码。在这样的实施例中,该计算机程序可以通过通信元件从网络上被下载和安装,和/或从第二可拆卸介质811被安装。在该计算机程序被第二中央处理单元(cpu)801执行时,执行本发明实施例的方法中限定的上述功能。本发明实施例提供的第二电子设备,能够在蓝牙网络的低功耗设备自省电状态进入工作状态时,在从低功耗设备接收到定向给好友设备的广播消息之后,在低功耗设备及其好友设备之间实现双向的数据通信,从而提高数据通信的效率,为低功耗设备节省功耗。在一些情况下,通过在附送的网络更新消息中设置的用于指示是否存在更多待发送的数据的字段,低功耗设备可获知是否已结束接收好友设备缓存的消息,从而低功耗设备无需再继续进行广播扫描,而及时进入省电状态,进一步节省了功耗。需要指出,根据实施的需要,可将本申请中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。可能以许多方式来实现本发明的方法和装置、设备。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明实施例的方法和装置、设备。用于方法的步骤的上述顺序仅是为了进行说明,本发明实施例的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明实施例的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。本发明实施例的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1