Distributed and synchronized bluetooth scan across multiple devices for faster bluetooth discovery

Some aspects of this disclosure include apparatuses and methods for implementing a synchronized short range communication protocol scan mechanism across multiple devices. Some aspects relate to an electronic device including a transceiver configured to communicate based on a short range communication protocol and a processor communicatively coupled to the transceiver. The processor receives one or more parameters from a peripheral electronic device and determines, based at least on the one or more parameters, one or more synchronization parameters. The processor further transmits the one or more synchronization parameters to the peripheral electronic device. The one or more synchronization parameters can include at least a scan offset associated with the peripheral electronic device.

BACKGROUND

Field

This disclosure generally relates to techniques for implementing a synchronized Bluetooth™ scan mechanism across multiple devices.

Related Art

Bluetooth™ devices can use advertising and scanning (and/or paging and scanning) to find each other and establish connections. A listening Bluetooth™ device is configured to scan different channels to determine whether any of the channels include advertising packets and/or packets addressed to the listening Bluetooth™ device. A tradeoff exists between how fast the listening Bluetooth™ device can connect to another Bluetooth™ device and the battery life of the listening Bluetooth™ device. For example, for the listening device to connect faster to the other device, the listening device scans the channels more often and therefore more battery of the listening device is used. On the other hand, to preserve the battery, the listening device can scan the channels less often, which can result in added delay in connecting to the transmitting device.

If multiple devices belong to a group and would like to connect a remote device, each device in the group will be scanning independently from the other devices of the group. In this case, the scanning windows of the devices of the group will overlap that will result in inefficiencies in finding the remote device and in inefficiencies of power budgets at the devices of the group.

SUMMARY

Some aspects of this disclosure include apparatuses and methods for implementing a synchronized short range communication protocol scan mechanism across multiple devices. For example, some aspects of this disclosure include apparatuses and methods for implementing a synchronized Bluetooth™ scan mechanism across multiple devices. It is noted that although some examples of this disclosure are discussed with respect to a Bluetooth™ protocol, a Bluetooth™ Low Energy protocol, or a Bluetooth™ Low Energy Long Range protocol, the aspects of this disclosure can be applied to any short range communication protocol and/or other communication protocols.

By distributing and synchronizing the short range communication protocol (such as, but not limited to, Bluetooth™) scanning across multiple devices, the connection time between the multiple devices and a remote device can be reduced. Additionally, or alternatively, the power budget at the multiple devices can also be reduced.

Some aspects relate to an electronic device. The electronic device includes a transceiver configured to communicate based on a short range communication protocol and a processor communicatively coupled to the transceiver. The processor is configured to receive one or more parameters from a peripheral electronic device and determine, based at least on the one or more parameters, one or more synchronization parameters. The processor is further configured to transmit the one or more synchronization parameters to the peripheral electronic device. The one or more synchronization parameters can include at least a scan offset associated with the peripheral electronic device.

In some examples, the one or more parameters can include at least one of a usage indicator associated with the peripheral electronic device, a power indicator associated with the peripheral electronic device, a priority indicator associated with the peripheral electronic device, scan configuration associated with the peripheral electronic device, or a clock drift associated with the peripheral electronic device.

In some examples, to determine the one or more synchronization parameters, the processor is configured to determine the one or more synchronization parameters based at least on the one or more parameters received from the peripheral electronic device and one or more parameters of the electronic device.

In some examples, the scan offset associated with the peripheral electronic device includes a time period measured from a beginning of a scan interval to a beginning of a scan window of the peripheral electronic device. In some examples, the scan offset associated with the peripheral electronic device includes a time period measured from a beginning of a scan interval to a beginning of a scan window of the peripheral electronic device. In some examples, the one or more synchronization parameters further includes at least one of a scan interval or a scan window.

In some examples, the processor is further configured to determine whether a condition for re-synchronization has occurred and in response to determining that the condition has occurred, determine updated one or more synchronization parameters.

In some examples, the processor is further configured to receive, using the transceiver and during a scan window associated with the electronic device, one or more messages from a second electronic device. The processor is further configured to determine information associated with the second electronic device and communicate the determined information with the peripheral electronic device.

In some examples, the one or more messages from the second electronic device includes one or more advertising messages and the information associated with the second electronic device includes an offset between the one or more advertising messages.

In some examples, the electronic device and the peripheral electronic device belong to a group of electronic devices determined based on a policy.

Some aspects relate to a method. The method includes receiving, by an electronic device, one or more parameters from a peripheral electronic device. The method further includes determining, by the electronic device and based at least on the one or more parameters, one or more synchronization parameters. The method also includes transmitting, by the electronic device, the one or more synchronization parameters to the peripheral electronic device. The one or more synchronization parameters can include at least a scan offset associated with the peripheral electronic device. The electronic device and the peripheral electronic device belong to a group of electronic devices determined based on a policy.

Some aspects relate to a non-transitory computer-readable medium storing instructions. When the instructions are executed by a processor of a electronic device, the instructions cause the processor to perform operations including receiving one or more parameters from a peripheral electronic device. The one or more parameters can include at least one of a usage indicator associated with the peripheral electronic device and/or a power indicator associated with the peripheral electronic device. The operations further include determining, based at least on the one or more parameters, one or more synchronization parameters. The operation also include transmitting the one or more synchronization parameters to the peripheral electronic device. The one or more synchronization parameters includes at least a scan offset associated with the peripheral electronic device.

This Summary is provided merely for purposes of illustrating some aspects to provide an understanding of the subject matter described herein. Accordingly, the above-described features are merely examples and should not be construed to narrow the scope or spirit of the subject matter in this disclosure. Other features, aspects, and advantages of this disclosure will become apparent from the following Detailed Description, Figures, and Claims.

DETAILED DESCRIPTION

Some aspects of this disclosure include apparatuses and methods for implementing a synchronized Bluetooth™ scan mechanism across multiple devices. It is noted that although some examples of this disclosure are discussed with respect to a Bluetooth™ protocol, a Bluetooth™ Low Energy protocol, or a Bluetooth™ Low Energy Long Range protocol, the aspects of this disclosure can be applied to any short range communication protocol and/or other communication protocols.

FIG. 1illustrates an example system100implementing a synchronized short range communication protocol scan mechanism across multiple devices, according to some aspects of the disclosure. Example system100is provided for the purpose of illustration only and does not limit the disclosed aspects. System100may include, but it not limited to, a group of devices120a-120c(also collectively referred to herein as device120or a plurality of devices120) and a device110. The plurality of devices120a-120cand device110may include, but are not limited to, wireless communication devices, smart phones (e.g., user equipment), laptops, desktops, tablets, personal assistants, monitors, multimedia devices (e.g., televisions), human interface devices, speaker devices, headphone devices, wearable devices, medical sensors, gaming devices, vehicle multimedia centers, and the like.

The connections140a-140care illustrated inFIG. 1as possible connections between the plurality of devices120a-120cand device110. Additionally, or alternatively, based on the disclosure herein, a person of ordinary skill in art will understand that each of the plurality of devices120a-120ccan form one or more connections with other devices120a-120c. As one example, device120acan form a connection (not shown inFIG. 1) with either or both of the devices120band120c. One or all of the connections140a-140c(and other connections between other devices120a-120c) may be wireless and may include, but are not limited to, a cellular network connection (such as, but not limited to, Universal Mobile Telecommunications System (UMTS), the Long-Term Evolution (LTE), connection based on 3G/4G/5G networks), a wireless local network connection (such as but not limited to Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard, which is sometimes referred to as Wi-Fi), or based on Bluetooth™ protocol, Bluetooth™ Low Energy protocol, or a Bluetooth™ Low Energy Long Range protocol (from the Bluetooth Special Interest Group of Kirkland, Wash.), or any other wireless connections using standardized and/or proprietary protocols. In some aspect, one, multiple, or all of connections140a-140cmay be implemented as wired connections between each of the respective devices.

According to some aspects, the plurality of devices120a-120cbelong to a group of devices. The group of devices120a-120ccan be defined based on a policy. In a non-limiting example, the policy can define the group of devices120a-120cas the devices that belong to one user. For example, the group of devices120a-120ccan include a personal smart phone, a corporate smart phone, a smart watch, and a wireless headphone belonging to the one user. As another non-limiting example, the policy can define the group of devices120a-120cas the devices that belong to two or more users in a family. As another example, the policy can define the group of devices120a-120cas the devices associated with a firm, corporation, company, etc. As another example, the policy can define the group of devices120a-120cas the devices associated with a cloud account. As another example, the policy can define the group of devices120a-120cas the devices associated with a key (or other information) of device110. As another example, the policy can define the group of devices120a-120cas the devices associated with a key (or other information) of a group of devices that are associated with each other. It is noted that these policies are provided as examples and the aspects of this disclosure are not limited to these examples. Other policies can be used to group the plurality of devices120a-120cfor implementing a synchronized short range communication protocol scan mechanism across the plurality of devices120a-120c.

As a non-limiting example, the group of devices120a-120ccan establish wireless connections140a-140c, respectively, with device110. The wireless connections140a-140ccan be based on short range communication protocols, such as, but not limited to, any of the Bluetooth™ protocol, a Bluetooth™ Low Energy protocol, or a Bluetooth™ Low Energy Long Range protocol. To establish the connection140afor the first time, devices120aand110may perform a pairing operation. According to some aspects, the paring operation may include an advertising and/or a paging from device110and scanning from device120a. For example, device110can send one or more advertising messages (e.g., one or more advertising packets) such that device120acan detect the one or more advertising messages during device120ascanning and can find and connect to device110. Additionally, or alternatively, device110can transmit one or more page messages (e.g., with an identifier of device120a) and device120acan scan and detect the one or more page messages.

If each one of the plurality of devices120a-120cthat wants to connect device110scans independently from the other devices of the plurality of devices120a-120c, the scanning windows of the plurality of devices120a-120cmay overlap, which will result in inefficiencies in finding device110. The overlap of the scanning windows can also result in inefficiencies of power budgets at the plurality of devices120a-120cand/or a power budget across the plurality of devices120a-120c. Some aspects of this disclosure include apparatuses and methods for implementing a synchronized Bluetooth™ scan mechanism across the plurality of devices120a-120cto reduce the connection time and the power budget for the connections. For example, by spreading the scan windows across the plurality of devices120a-120c, the plurality of devices120a-120ccan detect (and connect to) device110faster and with using less energy and power. Additionally, the scan windows spread across the plurality of devices120a-120ccan have different lengths for different devices based on, for example, the power of the respective device.

According to some aspects, one device in the group of devices120a-120c(e.g., device120a) can operate as a central device to implement the synchronized Bluetooth™ scan mechanism across the group of the devices120a-120c. In one example, central device120acan detect the presence of peripheral devices120band120c. In a non-limiting example, central device120acan detect the presence of peripheral devices120band120cbased on messages (e.g., advertising messages) transmitted by the peripheral devices120band120c. However, the aspects of this disclosure are not limited to this example, and central device120acan detect the presence of peripheral devices120band120cusing other methods and messages. Also, although three devices120a-120care illustrated as part of the group of devices, the group can include any number of devices.

According to some aspects, after detecting the presence of peripheral devices120band120c, central device120acan receive one or more parameters from peripheral devices120band120c. In one example, central device120acan establish a connection with one or more of peripheral devices120band120cto receive the one or more parameters. Central device120acan determine one or more synchronization parameters based, at least, on the received one or more parameters. Central device120acan communicate the one or more synchronization parameters to peripheral devices120b-120c. After communicating the one or more synchronization parameters to peripheral devices120b-120c, central device120acan disable the connection with peripheral devices120band120c. In some examples, the connection between central device120aand peripheral devices120band120ccan include a short range connection (e.g., Bluetooth™), a cellular network connection, and/or a wireless local network connection.

According to some aspects, the one or more parameters that central device120areceives from peripheral devices120band120ccan include, but is not limited to, peripheral devices' usage indicator, peripheral devices' power indicator, peripheral devices' priority indicator, peripheral devices' scan configuration, peripheral devices' clock drift, and the like. It is noted that aspects of this disclosure are not limited to these examples, and the one or more parameters that central device120areceives from peripheral devices120band120ccan include less parameters and/or other parameters.

In some examples, the peripheral device's usage indicator can include a parameter indicating how much the peripheral device is being used. For example, peripheral device's usage indicator can specify whether the peripheral device is being highly used (e.g., is being used for a phone call, to stream video, etc.) or the peripheral device is being moderately used. In some examples, the peripheral device power indicator can include a parameter indicating how much power (e.g., battery) is left at the peripheral device.

In some examples, peripheral device's priority indicator can include a parameter indicating the priority of the peripheral device and/or the priority of one or more applications/programs that are being run on the peripheral device. In some examples, the peripheral device's scan configuration can include scan configuration set for the peripheral device. For example, the scan configuration can include scan window (e.g., a time period that the peripheral device can scan for advertising messages and/or for pages). The scan configuration can also include scan interval (e.g., a time period between scan windows).

In some examples, the peripheral device's clock drift (e.g., measured in parts per million (ppm)) can indicate how much peripheral device's clock can drift. In some examples, the synchronization between the devices in the group of devices120a-120ccan make the devices120a-120cto have a reliable clock. In one example, if devices120a-120cdo not exchange their clock drift, devices120a-120ccan assume a predetermined value for the clock drift (e.g., in a non-limiting example, 500 ppm).

According to some aspects, after receiving the one or more parameters from peripheral devices120b-120c, central device120acan determine one or more synchronization parameters based, at least, on the received one or more parameters. For example, depending on the usage indicator, power indicator, priority indicator, scan configuration, clock drift and the like received from each of peripheral devices120b-120c, similar parameters for central device120a, the number of devices in the group of devices120a-120c, and/or other parameters, central device120acan determine one or more synchronization parameters to synchronize the scan mechanism across the plurality of devices120a-120c. According to some aspects, the one or more synchronization parameters can indicate for each device in the plurality of device120a-120cwhen and for how long to scan.

According to some aspects, the one or more synchronization parameters can include a scan offset for each of the plurality of devices120a-120c. In some examples, central device120acan determine a scan offset specific for each one of the plurality of devices120a-120c. The scan offset can include a time period measured with respect to the beginning of a scan interval such that device120can open its scan window after that scan offset. In some examples, the scan offsets are determined such that the scan windows of the plurality of devices120a-120cdo not overlap in time.

Additionally, or alternatively, the one or more synchronization parameters can include one or more scan intervals. For example, central device120acan determine one or more scan intervals for the plurality of devices120a-120c. For example, central device120acan determine a first scan interval for central device120a, a second scan interval for peripheral device120b, and/or a third scan interval for peripheral device120c. Alternatively, central device120acan determine its scan interval and each of the peripheral devices determines its scan interval. In some examples, the scan intervals are the same for each device in the group of devices120a-120c. In some examples, scan intervals are different for each device in the group of devices120a-120c.

Additionally, or alternatively, the one or more synchronization parameters can include one or more scan windows. For example, central device120acan determine one or more scan windows for the plurality of devices120a-120c. For example, central device120acan determine a first scan window for central device120a, a second scan window for peripheral device120b, and/or a third scan window for peripheral device120c. Alternatively, central device120acan determine its scan window and each of the peripheral devices determines its scan window. In some examples, the scan windows are the same for each device in the group of devices120a-120c. In some examples, scan windows are different for each device in the group of devices120a-120c. In some examples, peripheral devices are responsible to set their respective scan window and/or scan interval based on the scan offset to avoid their respective scan windows colliding with the scan window of central device120aand/or other peripheral devices.

After determining the one or more synchronization parameters, central device120acan communicate the one or more synchronization parameters to peripheral device120b-120cto synchronize the scan mechanism across the plurality of devices120a-120c. In some examples, the one or more synchronization parameters can also include central device120a's clock drift. In some examples, central device120acan communicate all the scan offsets to all the devices in the group of devices120a-120c. In these example, each device in the group of devices120a-120cidentifies its scan offset and the scan offsets associated with other devices in the group of devices120a-120c.

According to some aspects, the synchronization between the group of devices120a-120c(e.g., determining and communicating the one or more synchronization parameters to synchronize the scan mechanism across the plurality of devices120a-120cas discussed above) can include a dynamic synchronization. In other words, the plurality of devices120a-120ccan re-synchronize based, at least, on a predetermined condition. In a non-limiting example, the group of devices120a-120ccan perform the synchronization process discussed above at predetermined times. In a non-limiting example of 500 ppm for clock drift, the synchronizations can happen at, for example, but not limited to, every 100 seconds such that the clock drift between devices120a-120care still in synchronization. In a non-limiting example, the synchronization can assume a 50 ms resolution and 500 ppm drift. However, other values for the resolution and drift can be used. For example, the resolution can be reduced to perform the synchronization more often or the resolution can be increased to perform the synchronization less often. In another example, if central device120aand peripheral devices120b-120cexchange their clock drift, the clock drifts can be used to determine the times for synchronization.

In some examples, the re-synchronization can be initiated by central device120a. Additionally, or alternatively, the re-synchronization can be initiated by one or more of peripheral devices120b-120c. In some examples, a table stored in a database can include the one or more parameters sent by peripheral device120b-120cto central device120a, the one or more synchronization parameters, the time(s) of last synchronization(s), and the like. In some examples, the table stored in the database can include the list of device120a-120cand/or other information associated with these devices.

According to some aspects, the re-synchronization process can be triggered by other conditions. In a non-limiting example, if one or more devices leaves the group of devices120a-120cand/or one or more devices are added to the group of devices120a-120c, the re-synchronization process can be triggered. In another non-limiting example, if central device120acan no longer perform the re-synchronization process, another device in the group of devices120a-120ccan be selected as the central device and/or can perform the re-synchronization process. The aspects of this disclosure are not limited to these examples and other conditions can be used for dynamic synchronization and re-synchronization between the group of devices120a-120c.

According to some aspects, after synchronization (or re-synchronization) between the group of devices120a-120c, the group of devices120a-120ccan efficiently detect and connect to device110. As a non-limiting example, central device120acan detect (e.g., receive and analyze) one or more advertising messages from device110during its scan window. In this example, central device120acan further establish a connection with device110. Continuing with this examples, central device120acan inform peripheral devices120b-120cof the detection of device110and/or information associated with device110such that peripheral devices120b-120ccan more efficiently detect and/or connect to device110. For example, central device120acan determine advertisement interval associated with device110, and using, at least, the scan offsets and/or scan windows of peripheral devices120b-120ccan share the advertisement interval associated with device110with peripheral devices120b-120c. In this example, peripheral devices120b-120ccan save power by optimally opening their scan windows based on the information they have received from central device120ato receive, for example, advertising message(s) from device110.

FIG. 2illustrates a block diagram of an example wireless system200of an electronic device implementing the synchronized short range communication protocol scan mechanism across multiple devices, according to some aspects of the disclosure. System200may be any of the electronic devices (e.g., devices110and120) of system100. System200includes processor210, one or more transceivers (e.g., transceiver220), communication infrastructure240, memory250, operating system252, application254, and antenna260. Illustrated systems are provided as exemplary parts of wireless system200, and system200can include other circuit(s) and subsystem(s). Also, although the systems of wireless system200are illustrated as separate components, the aspects of this disclosure can include any combination of these, less, or more components.

Memory250may include random access memory (RAM) and/or cache, and may include control logic (e.g., computer software) and/or data. Memory250may include other storage devices or memory such as, but not limited to, a hard disk drive and/or a removable storage device/unit. According to some examples, operating system252can be stored in memory250. Operating system252can manage transfer of data from memory250and/or one or more applications254to processor210and/or transceiver220. In some examples, operating system252maintains one or more network protocol stacks (e.g., Internet protocol stack, cellular protocol stack, and the like) that can include a number of logical layers. At corresponding layers of the protocol stack, operating system252includes control mechanism and data structures to perform the functions associated with that layer.

According to some examples, application254can be stored in memory250. Application254can include applications (e.g., user applications) used by wireless system200and/or a user of wireless system200. The applications in application254can include applications such as, but not limited to, Siri™, FaceTime™, radio streaming, video streaming, remote control, gaming application(s), health applications, one or more applications associated with a vehicle, and/or other user applications.

System200can also include communication infrastructure240. Communication infrastructure240provides communication between, for example, processor210, transceiver220, and memory250. In some implementations, communication infrastructure240may be a bus. Processor210together with instructions stored in memory250performs operations enabling wireless system200to implement the synchronized short range communication protocol scan mechanism across multiple devices as described herein. Additionally, or alternatively, transceiver220performs operations enabling wireless system200to implement the synchronized short range communication protocol scan mechanism across multiple devices as described herein.

Transceiver220transmit and receive communications signals that support the synchronized short range communication protocol scan mechanism across multiple devices, according to some aspects, and may be coupled to antenna260. (Herein, transceivers can also be referred to as radios). Antenna260may include one or more antennas that may be the same or different types. Transceiver220allow system200to communicate with other devices that may be wired and/or wireless. In some examples, transceiver220can include processors, controllers, radios, sockets, plugs, buffers, and like circuits/devices used for connecting to and communication on networks. According to some examples, transceivers220includes one or more circuits to connect to and communicate on wired and/or wireless networks.

According to some aspects of this disclosure, transceiver220can include a cellular subsystem, a WLAN subsystem, and/or a Bluetooth™ subsystem, each including its own radio transceiver and protocol(s) as will be understood by those skilled arts based on the discussion provided herein. In some implementations, transceiver220can include more or fewer systems for communicating with other devices.

In some examples, transceiver220can include one or more circuits (including a cellular transceiver) for connecting to and communicating on cellular networks. The cellular networks can include, but are not limited to, 3G/4G/5G networks such as Universal Mobile Telecommunications System (UMTS), Long-Term Evolution (LTE), and the like. Additionally, or alternatively, transceiver220can include one or more circuits (including a Bluetooth™ transceiver) to enable connection(s) and communication based on, for example, Bluetooth™ protocol, the Bluetooth™ Low Energy protocol, or the Bluetooth™ Low Energy Long Range protocol. Additionally, transceiver220can include one or more circuits (including a WLAN transceiver) to enable connection(s) and communication over WLAN networks such as, but not limited to, networks based on standards described in IEEE 802.11.

According to some aspects of this disclosure, processor210, alone or in combination with computer instructions stored within memory250, and/or transceiver220implements the synchronized short range communication protocol scan mechanism across multiple devices as discussed herein. As discussed in more detail below with respect toFIGS. 3-6, processor210can implement the synchronized short range communication protocol scan mechanism across multiple devices ofFIGS. 1 and 2.

FIG. 3illustrates one exemplary communication300between central device310and peripheral device320to synchronize for short range communication protocol scan, according to some aspects of the disclosure. In this example, central device310can include central device120aofFIG. 1and peripheral device320can include peripheral device120bor120cofFIG. 1. Although some examples of synchronization for short range communication protocol scan across multiple devices are discussed with respect to central device310and peripheral device320, the aspects of this disclosure are not limited to these devices and other devices in a group of devices can be configured to implement the synchronization step between the devices. Also, although exemplary communication300is discussed with respect to two devices, the aspects of this disclosure are not limited to these examples and can include any number of devices.

Exemplary communication300can be part of initial synchronization between central device310and peripheral device320. Additionally, or alternatively, exemplary communication300can be part of re-synchronization (e.g., dynamic synchronization) between central device310and peripheral device320.

According to some aspects, communication300between central device310and peripheral device320to synchronize these devices for short range communication protocol scan can include establishing connection between central device310and peripheral device320. In some examples, establishing connection301can include central device310detecting the presence of peripheral device320based on, for example, messages (e.g., advertising messages) transmitted by the peripheral device320. However, the aspects of this disclosure are not limited to this example, and central device310can detect the presence of peripheral device320using other methods and messages. It is noted that establishing connection301can be an optional step and central device310and peripheral device320can exchange information and parameters without establishing connection301.

After establishing connection301or without establishing connection301, central device310can receive one or more parameters from peripheral device320at303. Central device310can determine one or more synchronization parameters based, at least, on the received one or more parameters from peripheral device320and/or one or more parameters of central device310. Central device310can communicate the one or more synchronization parameters to peripheral device320at304. After communicating the one or more synchronization parameters to peripheral device320, central device310can disable the connection with peripheral device320. In some examples, the connection between central device310and peripheral device320can include a short range connection (e.g., Bluetooth™), a cellular network connection, and/or a wireless local network connection. Alternatively, central device310and peripheral device320can exchange information and parameters without establishing connection301but by using one or more procedures associated with a short range protocol (e.g., Bluetooth™), a cellular network protocol, and/or a wireless local network protocol.

After the central device310and peripheral device320are synchronized by, for example, calculating and communicating the one or more synchronization parameters, central device310and peripheral device320can start their synchronized scanning. For example, as illustrated inFIG. 3, central device310and peripheral device320can use scan interval313to perform their synchronized scanning. In some examples, scan interval313can include a time period in which each of central device310and peripheral device320can have one scan window307and311, respectively. Scan window307can include a time period during which central device310can scan for (e.g., “listen”) for messages (e.g., advertising messages, pages, etc.) from other devices. In some examples, scan window307can be defined as a percentage of scan interval313. Scan window311can include a time period during which peripheral device320can scan for (e.g., “listen”) for messages (e.g., advertising messages, pages, etc.) from other devices. In some examples, scan window311can be defined as a percentage of scan interval313.

In some examples, scan windows307and311can have the same duration. Alternatively, scan windows307and311can have different durations. In some examples, central device310can determine scan windows307and311based, at least, on the one or more parameters associated with central device310and/or the one or more parameters associated with peripheral device320received at303.

As illustrated inFIG. 3, scan intervals307and311are synchronized by, for example at least, scan offsets305and309. As discussed above, central device310can determine scan offsets305and309based, at least, on the one or more parameters associated with central device310and/or the one or more parameters associated with peripheral device320received at303. Central device310can communicate one or more of scan offsets305and309during304to peripheral device320. In one example, scan offset305can include time period from beginning315of scan interval313to beginning of scan window307of central device310. In one example, scan offset309can include time period from beginning315of scan interval313to beginning of scan window311of peripheral device320. In some examples, scan offsets305and309are determined such that the scan windows307and311do not overlap in time. By spreading scan windows307and311across central device310and peripheral device320, central device310and peripheral device320can detect (and connect to) a remote device (e.g., device110ofFIG. 1) faster and with using less energy and power. In other words, since central device310and peripheral device320do not scan at the same time, they can share the task of scanning for the remote device, which can result in power savings for central device310and peripheral device320and can decrease the time for finding and/or connecting to the remote device. In some examples, scan offsets305and309are determined such that the scan windows307and311overlap in time for a small period of time such that the spread of scan windows does not leave a gap in scan interval313not scanned.

FIG. 4illustrates an example method400for a central device to synchronize with a peripheral device for short range communication protocol scan, according to some aspects of the disclosure. As a convenience and not a limitation,FIG. 4may be described with regard to elements ofFIGS. 1-3. Method400may represent the operation of an electronic device (e.g., a central device as discussed in this disclosure) implementing a synchronized short range communication scan mechanism across multiple devices. Method400may also be performed by system200ofFIG. 2and/or computer system700ofFIG. 7. But method400is not limited to the specific aspects depicted in those figures and other systems may be used to perform the method as will be understood by those skilled in the art. It is to be appreciated that not all operations may be needed, and the operations may not be performed in the same order as shown inFIG. 4.

Exemplary method400can be part of initial synchronization between a central device (e.g., device120aofFIG. 1and/or device310ofFIG. 3) and a peripheral device (e.g., device120b/120cofFIG. 1and/or device320ofFIG. 3). Additionally, or alternatively, exemplary method400can be part of re-synchronization (e.g., dynamic synchronization) between the central device and the peripheral device.

At402, a connection is established between the central device and the peripheral device. For example, central device310and peripheral device320establish connection301as discussed with respect toFIG. 3. It is noted that402can be optional and the central device and the peripheral device can exchange information and parameters without establishing a connection.

At404, the central device receives one or more parameters from the peripheral device. According to some aspects, the one or more parameters can include, but is not limited to, peripheral device's usage indicator, peripheral device's power indicator, peripheral device's priority indicator, peripheral device's scan configuration, peripheral device's clock drift, and the like. It is noted that aspects of this disclosure are not limited to these examples, and the one or more parameters from the peripheral device can include less parameters and/or other parameters.

At406, one or more synchronization parameters are determined. For example, the central device determines the one or more synchronization parameters. In some examples, the central device can determine the one or more synchronization parameters based, at least, on the one or more parameters received from the peripheral device, one or more parameters associated with the central device, or a combination thereof. In some examples, the one or more parameters associated with the central device can include, but is not limited to, central device's usage indicator, central device's power indicator, central device's priority indicator, central device's scan configuration, central device's clock drift, the number of devices in the group determined based on the policy, and the like.

According to some aspects, the one or more synchronization parameters can include a scan offset for each of the central and peripheral devices. Additionally, or alternatively, the one or more synchronization parameters can include one or more scan intervals. For example, the central device can determine one or more scan intervals for the central and peripheral devices. Alternatively, the central device can determine its scan interval and each of the peripheral devices determines its scan interval. In some examples, the scan intervals are the same for the central device and the peripheral device. In some examples, scan intervals are different for the central device and the peripheral device.

Additionally, or alternatively, the one or more synchronization parameters can include one or more scan windows. For example, the central device can determine one or more scan windows for the central device and the peripheral device. Alternatively, the central device can determine its scan window and each of the peripheral devices determines its scan window. In some examples, the scan windows are the same for the central device and the peripheral device. In some examples, scan windows are different for the central device and the peripheral device. In a non-limiting example, the scan window can be determined based at least on usage indicator. For example, a device with a high usage (e.g., a large usage indicator) can have a shorter scan window than a device with a low usage (e.g., a small usage indicator). In another example, a device with a high usage (e.g., a large usage indicator) can have a longer scan window than a device with a low usage (e.g., a small usage indicator). In some examples, peripheral devices are responsible to set their respective scan window and/or scan interval based on the scan offset to avoid their respective scan windows colliding with the scan window of the central device and/or other peripheral devices. In some examples, the one or more synchronization parameters can also include central device's clock drift.

At408, the one or more synchronization parameters are transmitted. For example, the central device transmits the one or more synchronization parameters to the peripheral device such that the central device and the peripheral device can synchronize the scan mechanism between them.

According to some aspects, the synchronization between the central and peripheral devices (e.g., determining one or more synchronization parameters to synchronize the scan mechanism across the plurality of devices as discussed above) can include a dynamic synchronization. In other words, the central and peripheral devices can re-synchronize based, at least, on a predetermined condition. For example, at410, it is determined whether one or more conditions for re-synchronization has occurred.

In a non-limiting example, the central and peripheral devices can perform the synchronization process discussed above at predetermined times. In one example, predetermined time periods can be used as the one or more conditions for re-synchronization. Alternatively, dynamically determined time periods can be used as the one or more conditions for re-synchronization. The re-synchronization process can be triggered by other conditions. In a non-limiting example, if one or more devices leaves the group of devices and/or one or more devices are added to the group of devices, the re-synchronization process can be triggered. In another non-limiting example, if the central device can no longer perform the synchronization and/or the re-synchronization process, another device in the group of devices can be selected as the central device and/or can perform the re-synchronization process. In another non-limiting example, if the one or more parameters of the central device and/or the peripheral devices change, the re-synchronization process can be triggered. The aspects of this disclosure are not limited to these examples and other conditions can be used for dynamic synchronization and re-synchronization between the group of devices.

If it is determined that the one or more conditions for re-synchronization has occurred, the re-synchronization process can be performed at412. In some examples, the re-synchronization can include determining updated one or more synchronization parameters. According to some aspect, the central device can perform the re-synchronization process, which can include, for example, one or more of402-408of method400. In another example, another device can perform the re-synchronization process, which can include, for example, one or more of402-408of method400.

FIG. 5illustrates one exemplary communication500between synchronized central and peripheral devices with a remote device based on a short range communication protocol, according to some aspects of the disclosure. In this example, central device510can include central device120aofFIG. 1and/or central device310ofFIG. 3. Peripheral device520can include peripheral device120bor120cofFIG. 1and/or peripheral device320ofFIG. 3. Remote device530can include device110ofFIG. 1. Although some examples of synchronized short range communication protocol scan across multiple devices are discussed with respect to central device510, peripheral device520, and remote device530, the aspects of this disclosure are not limited to these devices and other devices in a group of devices can be configured to implement the synchronized short range communication protocol scan. Also, although exemplary communication500is discussed with respect to three devices, the aspects of this disclosure are not limited to these examples and can include any number of devices.

Exemplary communication500can be performed after initial synchronization (or re-synchronization) between central device510and peripheral device520, as discussed above, for example, with respect toFIGS. 3 and 4.

According to some aspects, after initial synchronization (or re-synchronization) process between central device510and peripheral device520, central device510and peripheral device520can efficiently detect and connect to remote device530. As a non-limiting examples, central device510can open its scan window507after scan offset505from the start of scan interval513. As discussed above, at least scan offset505has been determined during the initial synchronization (or re-synchronization) process. During scan window507, central device510can detect (e.g., receive and analyze) one or more advertising messages501from remote device530during its scan window. In some examples, detecting one or more advertising messages501can include a discovery process of a Bluetooth™ protocol, a Bluetooth™ Low Energy protocol, or a Bluetooth™ Low Energy Long Range protocol. During the discovery process, central device510can perform a passive scanning or an active scanning.

According to some aspects, after the discovery (e.g., advertising and scanning) process, central device510and remote device530can perform a connection process to establish a connection. In a non-limiting example, central device510can transmit one or more connection request messages503to establish connection504with remote device530. It is noted that although the connection between central device510and remote device530are discussed as a connection based on a short range communication protocol, the aspects of this disclosure are not limited to these examples and the connection between central device510and remote device530can be based on other communication protocols.

Continuing with this examples, central device510can inform peripheral device520of the detection of remote device530and/or information associated with remote device530such that peripheral device520can more efficiently detect and/or connect to remote device530. In one example, central device510can inform peripheral device520of the detection of remote device530and/or information associated with remote device530using one or more messages517. In some examples, central device510can send the one or more messages517during scan window511of peripheral device520. In this example, since central device510knows its scan offset505, its scan window507, peripheral device520's scan offset509, and/or peripheral device520's scan window511, such that central device510can determine when to send one or more messages517. For example, central device510can determine advertisement interval associated with remote device530. Then using, at least, the scan offsets and/or scan windows of peripheral device520, central device510can share the advertisement interval associated with remote device530with peripheral device520. In this example, peripheral device520can save power by optimally adjust the opening of its scan window511based on the information peripheral device520have received from central device510to receive, for example, advertising message(s) remote device530.

Additionally, or alternatively, central device520can send one or more messages517in response to one or more messages515from peripheral device515. In one example, one or more messages515can include information associated with scan offset509of peripheral device520.

According to some aspects, by receiving information associated with remote device530from central device510, peripheral device can determine when to detect (e.g., receive and analyze) one or more advertising messages519from remote device530during its scan window. As discussed above, information associated with remote device530can include advertisement interval associated with remote device530(e.g., one or more offsets between advertising messages, channel(s) associated with advertising message(s), and the like). In some examples, detecting one or more advertising messages519can include a discovery process of a Bluetooth™ protocol, a Bluetooth™ Low Energy protocol, or a Bluetooth™ Low Energy Long Range protocol. During the discovery process, peripheral device520can perform a passive scanning or an active scanning. According to some aspects, after the discovery (e.g., advertising and scanning) process, peripheral device520and remote device530can perform a connection process to establish a connection. In a non-limiting example, central device510can transmit one or more connection request messages521to establish the connection with remote device530.

FIG. 6illustrates an example method600for communication between synchronized central and peripheral devices with a remote device based on a short range communication protocol, according to some aspects of the disclosure. As a convenience and not a limitation,FIG. 6may be described with regard to elements ofFIGS. 1-5. Method600may represent the operation of an electronic device (e.g., a central device as discussed in this disclosure) implementing a synchronized short range communication scan mechanism across multiple devices. Method600may also be performed by system200ofFIG. 2and/or computer system700ofFIG. 7. But method600is not limited to the specific aspects depicted in those figures and other systems may be used to perform the method as will be understood by those skilled in the art. It is to be appreciated that not all operations may be needed, and the operations may not be performed in the same order as shown inFIG. 6.

Although method600is discussed with respect to the operation of a central device, the aspects of this disclosure are not limited to these examples and method600can be performed by a peripheral device.

At602, one or more advertising messages from a remote device (e.g., a remote peripheral device) is received. For example, a central device, which is synchronized with a peripheral device, receives the one or more advertising messages from the remote device.

At604, the central device can establish a connection with the remote device. Establish the connection can include the central device transmitting one or more connection request messages to the remote device. It is noted that although the connection is discussed as a connection based on a short range communication protocol, the aspects of this disclosure are not limited to these examples and the connection between the central device and the remote device can be based on other communication protocols.

At606, information associated with the remote device and/or with the connection with the remote device can be determined. For example, before establishing the connection at604, the central device can determine the information associated with the remote device. Additionally, or alternatively, the central device can determine the information associated with the remote device after establishing the connection. In some examples, the information associated with the remote device can include advertisement interval associated with the remote device (e.g., one or more offsets between advertising messages, channel(s) associated with advertising message(s), and the like).

At608, the information associated with the remote device can be transmitted to a synchronized peripheral device. For example, the central device can inform the peripheral device of the detection of the remote device and/or the information associated with the remote device. Using this information, the peripheral device can more efficiently detect and/or connect to the remote device. In some examples, the central device can transmit the information associated with the remote device to the peripheral device based on the synchronization parameter(s) determined during the (re-)synchronization process and/or the parameter(s) the central device had received/receives from the peripheral device.

In some examples, the central device can send additional information or parameters to the synchronized peripheral device based on the information associated with the remote device. For example, the central device can change the duration of the scan window of the synchronized peripheral device based on the information associated with the remote device, and transmit the changed duration to the synchronized peripheral device. Additionally, or alternatively, the central device can move the scan window of the synchronized peripheral device (e.g., change the scan offset of the synchronized peripheral device) based on the information associated with the remote device, and transmit the changed scan offset to the synchronized peripheral device.

According to some aspects, using the received information associated with the remote device from the central device, the peripheral device can determine when to detect (e.g., receive and analyze) one or more advertising messages from the remote device. According to some aspects, after the discovery (e.g., advertising and scanning) process, the peripheral device and the remote device can perform a connection process to establish a connection.

Various aspects can be implemented, for example, using one or more computer systems, such as computer system700shown inFIG. 7. Computer system700can be any well-known computer capable of performing the functions described herein such as devices110,120ofFIGS. 1, 200ofFIG. 2, 310, 320ofFIG. 3, 510, 520, 530ofFIG. 5. Computer system700includes one or more processors (also called central processing units, or CPUs), such as a processor704. Processor704is connected to a communication infrastructure706(e.g., a bus.) Computer system700also includes user input/output device(s)703, such as monitors, keyboards, pointing devices, etc., that communicate with communication infrastructure706through user input/output interface(s)702. Computer system700also includes a main or primary memory708, such as random access memory (RAM). Main memory708may include one or more levels of cache. Main memory708has stored therein control logic (e.g., computer software) and/or data.

Computer system700may also include one or more secondary storage devices or memory710. Secondary memory710may include, for example, a hard disk drive712and/or a removable storage device or drive714. Removable storage drive714may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.

Removable storage drive714may interact with a removable storage unit718. Removable storage unit718includes a computer usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage unit718may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/any other computer data storage device. Removable storage drive714reads from and/or writes to removable storage unit718in a well-known manner.

According to some aspects, secondary memory710may include other means, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system700. Such means, instrumentalities or other approaches may include, for example, a removable storage unit722and an interface720. Examples of the removable storage unit722and the interface720may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

Computer system700may further include a communication or network interface724. Communication interface724enables computer system700to communicate and interact with any combination of remote devices, remote networks, remote entities, etc. (individually and collectively referenced by reference number728). For example, communication interface724may allow computer system700to communicate with remote devices728over communications path726, which may be wired and/or wireless, and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system700via communication path726.

The operations in the preceding aspects can be implemented in a wide variety of configurations and architectures. Therefore, some or all of the operations in the preceding aspects may be performed in hardware, in software or both. In some aspects, a tangible, non-transitory apparatus or article of manufacture includes a tangible, non-transitory computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system700, main memory708, secondary memory710and removable storage units718and722, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system700), causes such data processing devices to operate as described herein.

While the disclosure has been described herein with reference to exemplary aspects for exemplary fields and applications, it should be understood that the disclosure is not limited thereto. Other aspects and modifications thereto are possible, and are within the scope and spirit of the disclosure. For example, and without limiting the generality of this paragraph, aspects are not limited to the software, hardware, firmware, and/or entities illustrated in the figures and/or described herein. Further, aspects (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.

Aspects have been described herein with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined as long as the specified functions and relationships (or equivalents thereof) are appropriately performed. In addition, alternative aspects may perform functional blocks, steps, operations, methods, etc. using orderings different from those described herein.

References herein to “one aspect,” “an aspect,” “some aspects,” “an example,” “some examples” or similar phrases, indicate that the aspect described may include a particular feature, structure, or characteristic, but every aspect may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same aspect. Further, when a particular feature, structure, or characteristic is described in connection with an aspect, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other aspects whether or not explicitly mentioned or described herein.

The breadth and scope of the disclosure should not be limited by any of the above-described exemplary aspects, but should be defined only in accordance with the following claims and their equivalents.

As described above, aspects of the present technology may include the gathering and use of data available from various sources, e.g., to improve or enhance functionality. The present disclosure contemplates that in some instances, this gathered data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data can include demographic data, location-based data, telephone numbers, email addresses, Twitter ID's, home addresses, data or records relating to a user's health or level of fitness (e.g., vital signs measurements, medication information, exercise information), date of birth, or any other identifying or personal information. The present disclosure recognizes that the use of such personal information data, in the present technology, may be used to the benefit of users.