Devices and methods for synchronizing transceiver devices for simultaneously collecting data across multiple advertising channels
Patent Information
- Application Number
- DE112023004445
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-04
- Publication Date
- 2025-08-07
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] Digital technology is rapidly taking over today's industrial location services networks. Those companies that are able to leverage this technology will generally have a performance advantage over their competitors. More specifically, location data visibility has quickly become a necessary component for companies seeking to track the locations and status of their assets, improve employee productivity, and generally optimize workflows. Therefore, the development of devices that reliably provide cost-effective, proximity-based asset visibility solutions that are also simple to implement, easy to manage, and secure is a topic of great interest in the field of industrial networking.
[0002] However, conventional location-determining devices / systems suffer from drawbacks that prevent them from providing such reliable, effective, and secure location-determining services. That is, conventional location-determining devices / systems are unable to reliably detect advertising packets from beacon devices. These beacon devices typically transmit data via a rotation of multiple advertising channels during an advertising period of relatively short duration. Receiving these advertising signals therefore requires the receiving device to scan on the same advertising channel over which the advertisement was being transmitted at the moment the advertising signal reaches the receiving device. The relatively short duration of advertising periods, combined with the strict timing / channel requirements for the receiving device to receive the advertising packet, poses a significant challenge for conventional location-determining devices / systems.Consequently, conventional location determining devices suffer from problems that reduce the efficiency and overall timeliness of information delivery between devices and also reduce the robustness of data collection possible from beacon devices, resulting in a less effective location determining system.
[0003] Therefore, there is a need for apparatus and methods for synchronizing transceiver devices to simultaneously collect data across multiple advertising channels in a manner that enables fast, efficient, and reliable network data transmission across a wide variety of user devices within a network system. DESCRIPTION
[0004] In one embodiment, the present invention is a transceiver device. The transceiver device may comprise: at least one processor; a plurality of radio transceivers; and a memory storing instructions that, when executed by the at least one processor, cause the transceiver device to: cause the plurality of radio transceivers to scan over each of a plurality of advertising channels during a first period of a scan period, such that each of the plurality of radio transceivers scans over one of the plurality of advertising channels during the first period that is different from other advertising channels scanned by other radio transceivers; during a second period of the scan period, cause the plurality of radio transceivers to scan over each of the plurality of advertising channels during the second period,such that each of the plurality of radio transceivers scans during the second period over a second of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers, and receiving, by the plurality of radio transceivers, a beacon data packet containing beacon information associated with a beacon device located proximate the transceiver device, the beacon data packet containing beacon information acquired during the first period and the second period.
[0005] In a variation of this embodiment, the instructions, when executed, further cause the transceiver device to: during a third period of the scanning period, cause the plurality of radio transceivers to scan each of the plurality of advertising channels such that each of the plurality of radio transceivers scans a third of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the third period; and receive, by the plurality of radio transceivers, the beacon data packet containing beacon information associated with the beacon device located proximate the transceiver device, the beacon data packet containing beacon information acquired during the first period, the second period, and the third period.Furthermore, in this variation, the plurality of radio transceivers includes a first Bluetooth Low Energy (BLE) radio transceiver, a second BLE transceiver, and a third BLE transceiver; and the plurality of advertising channels includes a first BLE advertising channel, a second BLE advertising channel, and a third BLE advertising channel.
[0006] In another variation of this embodiment, the instructions, when executed, further cause the transceiver device to: generate, by a first radio transceiver at a beginning of the first period, a synchronization pulse that is transmitted to other radio transceivers of the plurality of radio transceivers; and upon receipt of the synchronization pulse at a second radio transceiver, activate a timer configured to expire at a beginning of the second period.Further in this variation, the scanning period includes a third period, the plurality of radio transceivers includes a third radio transceiver, and the instructions, when executed, further cause the transceiver device to: upon receipt of the synchronization pulse at the third radio transceiver, activate a second timer configured to expire at a beginning of the third period; at the beginning of the second period and synchronously with the expiration of the timer, scan with the second radio transceiver an advertising channel previously scanned by the first radio transceiver during the first period; and at the beginning of the third period and synchronously with the expiration of the second timer, scan with the third radio transceiver the advertising channel previously scanned by the first radio transceiver during the first period and the second radio transceiver during the second period.Still further in this variation, the instructions, when executed, further cause the transceiver device to: generate, by the second radio transceiver at an end of the second period, an end pulse for transmission to the first radio transceiver; and automatically adjust, by the first radio transceiver, the beginning of the first period during a subsequent iteration of the scan period based on delays indicated by the end pulse.
[0007] In yet another variation of this embodiment, the instructions, when executed, further cause the transceiver device to: generate, by each of the plurality of radio transceivers, an updated beacon data packet including (i) the beacon information acquired during the first period or the second period, and (ii) a channel marker indicating which advertising channel of the plurality of advertising channels was scanned by each of the plurality of radio transceivers when each of the plurality of radio transceivers acquired the beacon information; and adjust (i) an antenna gain profile for at least one radio transceiver of the plurality of radio transceivers or (ii) a gain profile of the beacon data packet based on the updated beacon data packet.
[0008] In yet another variation of this embodiment, the scan period includes a third period; the scan period is 500 milliseconds (ms); and each of the first period, the second period, and the third period is one-third of 500 ms.
[0009] In another embodiment, the present invention is a method for synchronizing transceiver devices for simultaneously acquiring data across multiple advertising channels. The method may include: causing a plurality of radio transceivers to scan across each of a plurality of advertising channels during a first period of a scanning period, such that each of the plurality of radio transceivers scans across one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the first period; during a second period of the scanning period, causing the plurality of radio transceivers to scan across each of the plurality of advertising channels such that each of the plurality of radio transceivers scans across a second of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the second period;and receiving, by the plurality of radio transceivers, a beacon data packet containing beacon information associated with a beacon device located proximate the transceiver device, the beacon data packet containing beacon information acquired during the first period and the second period;
[0010] In a variation of this embodiment, the method further comprises: during a third period of the scanning period, causing the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a third of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the third period, and receiving, by the plurality of radio transceivers, the beacon data packet containing beacon information associated with the beacon device located proximate the transceiver device, the beacon data packet containing beacon information acquired during the first period, the second period, and the third period.Furthermore, in this variation, the plurality of radio transceivers includes a first Bluetooth Low Energy (BLE) radio transceiver, a second BLE transceiver, and a third BLE transceiver; and the plurality of advertising channels includes a first BLE advertising channel, a second BLE advertising channel, and a third BLE advertising channel.
[0011] In another variation of this embodiment, the method further comprises: generating, by a first radio transceiver at a beginning of the first period, a synchronization pulse that is transmitted to other radio transceivers of the plurality of radio transceivers; and upon receipt of the synchronization pulse at a second radio transceiver, activating a timer configured to expire at a beginning of the second period.Furthermore, in this variation, the scanning period includes a third period, the plurality of radio transceivers includes a third radio transceiver, and the method further comprises: upon receipt of the synchronization pulse at the third radio transceiver, activating a second timer configured to expire at a beginning of the third period; at the beginning of the second period and synchronous with the expiration of the timer, scanning, by the second radio transceiver, an advertising channel previously scanned by the first radio transceiver during the first period; and at the beginning of the third period and synchronous with the expiration of the second timer, scanning, by the third radio transceiver, the advertising channel previously scanned by the first radio transceiver during the first period and the second radio transceiver during the second period.Still further in this variation, the method further comprises: generating, by the second radio transceiver at an end of the second period, an end pulse for transmission to the first radio transceiver; and automatically adjusting, by the first radio transceiver, the beginning of the first period during a subsequent iteration of the scan period based on delays indicated by the end pulse.
[0012] In yet another variation of this embodiment, the method further comprises: generating, by each of the plurality of radio transceivers, an updated beacon data packet including (i) the beacon information acquired during the first period or the second period, and (ii) a channel marker indicating which advertising channel of the plurality of advertising channels was scanned by each of the plurality of radio transceivers when each of the plurality of radio transceivers acquired the beacon information; and adjusting (i) an antenna gain profile for at least one radio transceiver of the plurality of radio transceivers or (ii) a gain profile of the beacon data packet based on the updated beacon data packet.
[0013] In yet another embodiment, the present invention is an accessible machine-readable medium comprising instructions for synchronizing transceiver devices to simultaneously collect data across multiple advertising channels that, when executed, cause a machine to at least: cause a plurality of radio transceivers to scan across each of a plurality of advertising channels during a first period of a scanning period, such that each of the plurality of radio transceivers scans across one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the first period;during a second period of the scanning period, causing the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a second one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the second period; and receiving, by the plurality of radio transceivers, a beacon data packet containing beacon information associated with a beacon device located proximate the transceiver device, the beacon data packet containing beacon information acquired during the first period and the second period;
[0014] In a variation of this embodiment, the instructions, when executed, further cause the machine to: during a third period of the scanning period, cause the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a third of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the third period; and receive, by the plurality of radio transceivers, the beacon data packet containing beacon information associated with the beacon device disposed proximate the transceiver device, the beacon data packet containing beacon information acquired during the first period, the second period, and the third period.
[0015] In another variation of this embodiment, the instructions, when executed, further cause the machine to: generate, by a first radio transceiver, at a beginning of the first period, a synchronization pulse that is transmitted to other radio transceivers of the plurality of radio transceivers; upon receipt of the synchronization pulse at a second radio transceiver, activate a timer configured to expire at a beginning of the second period; generate, by the second radio transceiver, at an end of the second period, an end pulse for transmission to the first radio transceiver; and automatically adjust, by the first radio transceiver, the beginning of the first period during a subsequent iteration of the scan period based on delays indicated by the end pulse.Further in this variation, the scanning period includes a third period, the plurality of radio transceivers includes a third radio transceiver, and the instructions, when executed, further cause the machine to: upon receipt of the synchronization pulse at the third radio transceiver, activate a second timer configured to expire at a beginning of the third period; at the beginning of the second period and synchronously with the expiration of the timer, scan by the second radio transceiver an advertising channel previously scanned by the first radio transceiver during the first period; and at the beginning of the third period and synchronously with the expiration of the second timer, scan by the third radio transceiver the advertising channel previously scanned by the first radio transceiver during the first period and the second radio transceiver during the second period.
[0016] In yet another variation of this embodiment, the instructions, when executed, further cause the machine to: generate, by each of the plurality of radio transceivers, an updated beacon data packet including (i) the beacon information acquired during the first period or the second period, and (ii) a channel marker indicating which advertising channel of the plurality of advertising channels was scanned by each of the plurality of radio transceivers when each of the plurality of radio transceivers acquired the beacon information; and adjust (i) an antenna gain profile for at least one radio transceiver of the plurality of radio transceivers or (ii) a gain profile of the beacon data packet based on the updated beacon data packet. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The accompanying figures, in which like reference characters refer to identical or functionally similar elements throughout the several views, together with the following detailed description, are incorporated in and constitute a part of the specification and serve to further illustrate embodiments of concepts incorporating the claimed invention and to explain various principles and advantages of such embodiments. Fig. 1 illustrates an exemplary environment in which systems and methods for synchronizing transceiver devices to simultaneously collect data across multiple advertising channels may be implemented, in accordance with embodiments described herein. Fig. 2 illustrates a high-level timing diagram for synchronizing transceiver devices to simultaneously collect data across multiple advertising channels, in accordance with embodiments described herein. Fig. 3 is a flowchart illustrating a method for synchronizing transceiver devices to simultaneously collect data across multiple advertising channels, in accordance with embodiments described herein. Fig. 4 is a block diagram of an example logic circuit for implementing example methods and / or operations described herein.
[0018] Those skilled in the art will appreciate that elements in the figures are illustrated for simplicity and clarity and are not necessarily drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help enhance understanding of embodiments of the present invention.
[0019] The apparatus and method components have been represented, where appropriate, by conventional symbols in the drawings showing only those specific details relevant to an understanding of the embodiments of the present invention, so as not to obscure the disclosure with details that would be readily apparent to one of ordinary skill in the art having recourse to the description herein. DETAILED DESCRIPTION
[0020] As previously mentioned, conventional location determination systems suffer from a general lack of flexibility and robustness, so users typically do not receive accurate, reliable location determination functionality from a conventional location determination system. Many of these problems are the result of such conventional location determination devices / systems being unable to reliably detect advertising packets (also referred to herein as "beacon data packets") from beacon devices. Beacon devices typically transmit data via a rotation of multiple advertising channels during an advertising period of relatively short duration. Receiving these advertising signals therefore requires the receiving device to scan on the same advertising channel over which the advertisement was being transmitted at the moment the advertising signal reaches the receiving device.However, conventional receiving devices can similarly rotate between advertising channels while scanning for advertising packet transmissions. The relatively short duration of advertising periods, the rotation between multiple advertising channels for both advertising and receiving devices, and the stringent timing / channel requirements for the receiving device to receive the advertising packet pose a significant challenge for conventional location-determining devices / systems. In fact, these challenges result in conventional location-determining systems having difficulty even receiving advertising packets, let alone performing efficient, reliable location determination with the few advertising packets that are actually received.
[0021] For example, devices that operate according to Bluetooth ®Low Energy (BLE) standard, transmit data (e.g., via advertising and scanning) over three advertising channels: 37, 38, and 39, which may be approximately 2402 megahertz (MHz), 2426 MHz, and 2480 MHz, respectively. Therefore, a beacon transmitting an advertising packet may transmit the advertising packet sequentially over each of the three advertising channels. In an attempt to receive the transmitted advertising packets, a receiver may rotate sequentially through the same three advertising channels, but there is no guarantee that the receiver is scanning on the same channel on which a particular advertising packet was transmitted at the moment the advertising packet reaches the receiver. Consequently, receiving devices included as part of conventional BLE positioning systems suffer from the same timing issues described above.
[0022] Overall, this lack of synchronization and timing flexibility results in conventional location systems and devices providing inefficient and underwhelming performance as a result of minimized robustness of data acquisition, reducing the efficiency and overall timeliness of information delivery between devices, and creating an unpleasant user experience.
[0023] Therefore, it is an object of the present disclosure to eliminate these and other problems with conventional location determination systems and devices via a transceiver device that can simultaneously collect data across multiple advertising channels. Specifically, the transceiver device of the present disclosure mitigates the problems present with conventional systems / devices by synchronizing multiple radio transceivers to simultaneously scan across multiple advertising channels in a rotating manner, such that at least one of the multiple radio transceivers scans across each of the multiple advertising channels at any given time during a scanning period.The transceiver device of the present disclosure can therefore provide improved robustness of data acquisition compared to conventional location determination systems by at least eliminating the loss of advertising packets originating from receiving devices that are not scanning on the correct advertising channel at the time of reception.
[0024] In accordance with the above and with the disclosure herein, the present disclosure encompasses improvements in computer functionality or improvements to other technologies, at least because the present disclosure describes that, for example, location determination systems and their associated various components can be improved or enhanced with the disclosed transceiver devices and methods, providing more robust and efficient location determination services for respective users and network administrators. That is, the present disclosure describes improvements in the operation of a transceiver device itself or "any other technology or technical field" (e.g.,the field of distributed / industrial location determination systems) because the disclosed transceiver devices and methods improve and extend the operation of transceiver devices by introducing improved data transmission across multiple advertising channels to eliminate data loss and other inefficiencies typically experienced over time by location determination systems lacking such transceiver devices and methods. This improves the state of the art, at least because such prior location determination systems are inefficient and inaccurate because they lack the capability for robust data transmission across multiple advertising channels.
[0025] Additionally, the present disclosure includes applying various features and functionalities as described herein with or using a particular machine, e.g., a transceiver device, a plurality of radio transceivers, a mobile device, an asset beacon, a receiver device, and / or other hardware components as described herein.
[0026] Moreover, the present disclosure includes specific features other than what is well understood, routine, conventional activity in the art, or the addition of non-conventional steps that, in various embodiments, exhibit certain useful applications, e.g.cause the plurality of radio transceivers to scan over each of a plurality of advertising channels during a first period of a scanning period such that each of the plurality of radio transceivers scans over one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the first period, and during a second period of the scanning period, cause the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a second of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the second period.
[0027] With reference to the figures, Fig. 1 illustrates an exemplary environment 100 in which systems and methods for synchronizing transceiver devices for simultaneously capturing data across multiple advertising channels may be implemented, in accordance with embodiments described herein. The exemplary environment 100 may include, contain, and / or otherwise be part of a network environment in which the systems / devices of the present disclosure may operate. In the exemplary embodiment of Fig. 1, the example environment 100 includes a transceiver device 102 communicatively coupled to a mobile device 104, a waypoint beacon 105, an asset beacon 106a located within and / or otherwise associated with an asset 106, a receiver 108 (also referred to herein as a "receiver device"), and a gateway server 110. Generally speaking, the transceiver device 102, the mobile device 104, the waypoint beacon 105, the asset beacon 106a, the receiver 108, and / or the gateway server 110 may be capable of executing instructions to implement, for example, operations of the example methods described herein, as may be illustrated by the flowcharts of the drawings accompanying this specification.In particular, the transceiver device 102 may be connected to the mobile device 104, the waypoint beacon 105, the asset beacon 106a, the receiver 108, and / or the gateway server 110 via multiple communication channels and may be generally configured to receive and process information received from the mobile device 104, the waypoint beacon 105, the asset beacon 106a, the receiver 108, and / or the gateway server 110.
[0028] Generally speaking, transceiver device 102 may be configured to transmit and receive data corresponding to transceiver device 102, as well as data associated with nearby beacons (e.g., asset beacon 106a, waypoint beacon 105) of various types. As an example, transceiver device 102 may scan for a nearby waypoint beacon (e.g., waypoint beacon 105) and may transmit the data received from the waypoint beacon to a receiver device (e.g., receiver 108). As another example, the transceiver device 102 may operate as a fixed scanning device that scans for assets (e.g., asset 106) and / or other entities (e.g., mobile device 104 with human carrier) within range of the device 102, and the device 102 may transmit beacon information associated with the nearby beacons to a receiver device (e.g., receiver 108).
[0029] More specifically, and as referred to herein by reference to Fig. 2, the transceiver device 102 may be configured to periodically scan for nearby beacons (e.g., asset beacon 106a, mobile device 104 acting as a beacon) by synchronizing the three included radio transceivers 102a1-a3 to simultaneously scan and capture data about each of the applicable advertising channels. In certain embodiments, the transceiver device 102 may include a Bluetooth ®Low Energy (BLE) device that communicates with some / all of the devices in the environment 100 via BLE. Thus, in these embodiments, the transceiver device 102 can synchronize the three radio transceivers 102a1-a3 to simultaneously scan and capture data via each of the advertising channels 37, 38, and 39, as assigned for BLE devices. As a result of this synchronized and simultaneous scanning, the transceiver device 102 can be a key enabler for easy-to-deploy, highly accurate, and reliable radio frequency identification (RFID) location solutions.
[0030] The transceiver device 102 may also include multiple radio transceivers 102a1, 102a2, and 102a3 configured to transmit / receive data streams to / from various devices of the example environment 100. The radio transceivers 102a1-a3 may each include an antenna with an associated gain profile corresponding to the antenna of the respective transceiver 102a1-a3, which converts input power into radio waves (e.g., transmit) and / or received radio waves into electrical power (e.g., receive). In certain embodiments, the radio transceivers 102a1-a3 may receive beacon data packets from nearby beacons with a particular antenna gain profile that may be adjusted based on the beacon data packet, allowing the radio transceivers 102a1-a3 to optimally receive the beacon data packets during future scan periods.
[0031] The transceiver device 102 may also include channel timing instructions 102b1 in the memory 102b that detail the specific channel synchronization and rotation timing sequences for each of the radio transceivers 102a1-a3. In particular, the channel timing instructions 102b1 may include and / or otherwise specify the synchronization of the three radio transceivers 102a1-a3 based on a scan period during which the radio transceivers 102a1-a3 will scan for advertising packets. The channel timing instructions 102b1 may define which radio transceivers 102a1-a3 will scan on specific advertising channels at the beginning of the scan period and may also define an order in which the radio transceivers 102a1-a3 may rotate scanning to / from each of the specific advertising channels during the scan period. Specific configurations and implementations of these channel timing instructions 102b1 are described herein with reference to Fig. 2 discussed.
[0032] The transceiver device 102 may optionally include a system on a chip (SoC) 102d. The SoC 102d may include one or more radio transceivers (not shown) and / or a controller to independently receive / transmit and interpret communications without requiring instruction execution from the processor 102c and / or reception / transmission of communications by the radio transceiver 102a. Such an SoC 102d may utilize a dedicated advertising channel over which communications / signals are sent / received, and / or the SoC 102d may utilize a rotating set of advertising channels. Furthermore, the SoC 102d may include one or more SoCs such that, in certain embodiments, the transceiver device 102 may receive / transmit and interpret communications / signals by multiple independent SoCs using dedicated or rotating advertising channels.
[0033] The mobile device 104 may be any suitable device that a user may use, for example, to run a wayfinding application 104a1 and / or otherwise act as a beacon that transmits beacon data packets for reception at the transceiver device 102. In particular, the mobile device 104 may be or include a mobile phone (e.g., a smartphone), a laptop, a tablet, a smartwatch, smart glasses, and / or any other suitable computing device, or combinations thereof, capable of communicating with the transceiver device 102. The mobile device 104 includes a memory 104a, one or more processors 104b, an input / output (I / O) interface 104c, and a network interface 104d.The memory 104a includes a wayfinding application 104a1, which may generally include executable instructions that, when executed by the one or more processors 104b, cause the mobile device 104 to perform various actions that enable a user of the mobile device 104 to receive location information as a result of data obtained from the transceiver device 102 corresponding to a current location of the user while the user is within range of the transceiver device 102.The memory 104a also includes a beacon application 104a2, which may generally include executable instructions that, when executed by the one or more processors 104b, cause the mobile device 104 to perform various actions that enable a user of the mobile device 104 to transmit location information and / or other information corresponding to the mobile device 104 while the user is within range of the transceiver device 102.
[0034] The memory 104a may also store an operating system (OS) (e.g., Microsoft Windows, Linux, Unix, etc.) capable of enabling the functionalities, apps, methods, or other software as discussed herein. Additionally or alternatively, the wayfinding application 104a1 and / or the beacon application 104a2 may also be stored in an external database (e.g., gateway server 110) that is accessible or otherwise communicatively coupled to the mobile device 104. For example, at least some of the applications, software components, or application programming interfaces (APIs) may be, include, or otherwise be part of a particular application, such as the wayfinding application 104a1 and / or the beacon application 104a2, each of which may be configured to enable its various functionalities discussed herein.It is understood that one or more other applications may be contemplated to be executed by the one or more processors 104b.
[0035] The I / O interface 104c may include or implement operator interfaces configured to present information to an administrator, user, or operator and / or receive input from the administrator, user, or operator. An operator interface may provide a display screen (e.g., via the mobile device 104) that a user / operator may use to visualize any images, graphics, text, data, features, pixels, and / or other suitable visualizations or information. For example, the mobile device 104 may at least partially include, implement, access, render, or otherwise expose a graphical user interface (GUI) for displaying images, graphics, text, data, features, pixels, and / or other suitable visualizations or information on the display screen. The I / O interface 104c may also include I / O components (e.g.,Ports, capacitive or resistive touch-sensitive input pads, buttons, keys, lights, LEDs, any number of keyboards, mice, USB drives, optical drives, screens, touchscreens, etc.) that may be directly / indirectly accessible through or attached to the mobile device 104. According to some embodiments, an administrator or user / operator may access the mobile device 104 to initiate wayfinding through the wayfinding application 104a1, verify location information from the wayfinding application 104a1, transmit location information via the beacon application 104a2, make changes, enter and / or select responses, and / or perform other functions.
[0036] Waypoint beacon 105 may generally be a fixed beacon configured to define a geographic location by transmitting information corresponding to beacon 105 to nearby beacons and / or other devices. This transmitted information may include, for example, an identification tag corresponding to beacon 105, and a nearby device (e.g., mobile device 104) may use this identification tag to retrieve location information from a server and / or other database (e.g., gateway server 110), which may include a location associated with the identification tag of beacon 105.
[0037] Asset 106 may generally be any device, component, or object that an entity wishes to track and / or otherwise locate. For example, the asset may represent large and calibrated tools used in and / or for oil and gas equipment / operations, packages for delivery by a shipping company, hospital equipment located and / or capable of being moved across different floors / rooms, and the like. Asset 106 may also include an asset beacon 106a, which may be configured to transmit information associated with asset beacon 106a to, for example, transceiver device 102 via network interface 106a1.
[0038] Receiver 108 may generally be a device configured to receive data from beacon devices (e.g., transceiver device 102) and / or assets (e.g., asset 106) and transmit that data to an external / gateway server (e.g., gateway server 110). For example, receiver 108 may be a device executing and / or corresponding to any suitable software operating system (e.g., Android, iOS), a custom Internet of Things (IoT) bridge device with a BLE radio, and / or any other suitable device or combination thereof. Receiver 108 may also include a network interface 108a, which may enable receiver 108 to communicate with transceiver device 102 and gateway server 110 using any suitable communication protocol (e.g., Wi-Fi, LTE, 3G, etc.).
[0039] As previously mentioned, the gateway server 110 may generally include a tag database 110a of associations between beacon identification tags and locations, such that when the receiver 108 forwards an identification tag to the server 110, the server 110 may store / associate a location for the asset associated with the identification tag based on the device from which the identification tag is received (e.g., transceiver device 102). For example, the transceiver device 102 may transmit a detected asset beacon identification tag and / or a detected mobile device beacon identification tag to the receiver 108, which may forward the tag(s) to the gateway server 110. The gateway server 110 may query the tag database 110a to find an entry corresponding to the detected asset beacon identification tag and / or the detected mobile device beacon identification tag.When the server 110 locates a matching entry, the server 110 may save / update the location stored in the entry to reflect the proximity of the detected asset / user to the transceiver device 102 and / or forward the location to an appropriate connected device to enable tracking of the detected asset / user.
[0040] As one example, a workstation (not shown) may be communicatively coupled to the gateway server 110, and a user / operator may access the gateway server 110 to retrieve a location associated with a detected asset (e.g., mobile device 104, asset 106). The workstation may query the gateway server 110 with the identification tag of the corresponding detected asset, and the gateway server 110 may match the identification tag with a location record associated with a nearby beacon (e.g., transceiver device 102). The gateway server 110 may then forward the location record to the workstation for viewing by the user / operator.
[0041] As another example, devices using transceiver device 102 for wayfinding functionality may query gateway server 110 directly (or through receiver 108) to retrieve the location corresponding to transceiver device 102. Specifically, mobile device 104 may receive a waypoint beacon stream (WBS) from transceiver device 102 and, as a result, may receive an identification tag (e.g., a MAC ID) of transceiver device 102. Mobile device 104 may then directly / indirectly query gateway server 110, in part by transmitting the identification tag of transceiver device 102 to server 110. The gateway server 110 may retrieve a location associated with the identification tag of the transceiver device 102 and may forward the location to the mobile device 104 for use in the wayfinding application 104a1.
[0042] More generally, each of the one or more memories 102b, 104a may include one or more forms of volatile and / or non-volatile, fixed and / or removable storage, such as read-only memory (ROM), electronically programmable read-only memory (EPROM), random access memory (RAM), erasable electronically programmable read-only memory (EEPROM) and / or other hard drives, flash memory, MicroSD cards, and others. In general, a computer program or computer-based product, computer-based application, or computer-based code (e.g., wayfinding application 104a1, beacon application 104a2, and / or other computer instructions described herein) may be embodied on a computer-usable storage medium or an accessible, non-transitory computer-readable medium (e.g.,Standard Random Access Memory (RAM), an optical disk, a Universal Serial Bus (USB) drive, or the like) having such computer-readable program code or computer instructions embodied therein, wherein the computer-readable program code or computer instructions may be installed on or otherwise adapted to be executed by the one or more processors 102c, 104b (e.g., operating in conjunction with a respective operating system in the one or more memories 102b, 104a) to enable, implement, or perform the machine-readable instructions, methods, processes, elements, or constraints as illustrated, depicted, or described for the various flowcharts, diagrams, diagrams, figures, and / or other disclosures herein.
[0043] In this regard, the program code may be implemented in any desired program language, and may be implemented as machine code, assembly code, byte code, interpretable source code or the like (e.g., via Golang, Python, C, C++, C#, Objective-C, Java, Scala, ActionScript, JavaScript, HTML, CSS, XML, etc.). Moreover, the one or more memories 102b, 104a may also store machine readable instructions, including any of one or more application(s), one or more software component(s), and / or one or more APIs, which may be implemented to facilitate or perform the features, functions, or other disclosure described herein, such as any methods, processes, elements or limitations, as illustrated, depicted, or described for the various flowcharts, illustrations, diagrams, figures, and / or other disclosure herein.
[0044] The one or more processors 102c, 104b may be connected to the one or more memories 102b, 104a via a computer bus that is responsible for transferring electronic data, data packets, or other electronic signals to and from the one or more processors 102c, 104b and the one or more memories 102b, 104a to implement or perform the machine-readable instructions, methods, processes, elements, or constraints as illustrated, depicted, or described for the various flowcharts, diagrams, figures, and / or other disclosures herein.
[0045] The one or more processors 102c, 104b may be connected to the one or more memories 102b, 104a via the computer bus to execute any suitable application (e.g., pathfinding application 104a1, beacon application 104a2) or executable instructions necessary to perform any of the actions associated with the methods of the present disclosure. The one or more processors 102c, 104b may also be connected to the one or more memories 102b, 104a via the computer bus to create, read, update, delete, or otherwise access or interact with the data stored in the one or more memories 102b, 104a and / or external databases (e.g., a relational database such as Oracle, DB2, MySQL, or a NoSQL-based database such as MongoDB).The data stored in the one or more memories 102b, 104a and / or an external database may include all or part of the data or information described herein, including, for example, captured beacon information / data, MAC identifier(s), heartbeat data, and / or other suitable information or combinations thereof from any suitable stream or source.
[0046] The radio transceivers 102a1-a3 and the network interfaces 104d, 105a, 106a1, 108a may be configured to communicate (e.g., send and receive) data via one or more external / network ports to one or more networks or local terminals, as described herein. In some embodiments, the radio transceivers 102a1-a3 and / or the network interfaces 104d, 105a, 106a1, 108a may include a client-server platform technology, such as ASP.NET, Java J2EE, Ruby on Rails, Node.js, a web service, or an online API that is responsive to receiving and responding to electronic requests. The radio transceivers 102a1-a3 and / or the network interfaces 104d, 105a, 106a1, 108a may implement client-server platform technology that communicates via the computer bus with the one or more memories 102b, 104a (including the application(s), component(s), API(s), data, etc. stored therein).) to implement or perform the machine-readable instructions, methods, processes, elements, or restrictions as illustrated, depicted, or described for the various flowcharts, representations, diagrams, figures, and / or other disclosures herein.
[0047] According to some embodiments, the radio transceivers 102a1-a3 and the network interfaces 104d, 105a, 106a1, 108a may include or interact with one or more transceivers (e.g., WWAN, WLAN, and / or WPAN transceivers) that operate according to IEEE standards, 3GPP standards, or other standards and that may be used in receiving and transmitting data via external ports / network ports connected to a network. In some embodiments, the network (not shown) may comprise a private network or a local area network (LAN). Additionally or alternatively, the network may comprise a public network, such as the Internet.In some embodiments, the network may include routers, wireless switches, or other such wireless connection points that communicate with the transceiver device 102 (via the radio transceivers 102a1-a3), the mobile device 104 (via the network interface 104d), the waypoint beacon 105 (via the network interface 105a), the asset beacon 106a (via the network interface 106a1), and the receiver 108 (via the network interface 108a) via wireless communications based on one or more of various wireless standards, including, by way of non-limiting example, a BLUETOOTH standard (e.g., BLE), IEEE 802.11a / b / c / g (WIFI), or the like.
[0048] Fig. 2 illustrates a high-level timing diagram 200 for synchronizing transceiver devices (e.g., radio transceivers 102a1-a3) to simultaneously collect data across multiple advertising channels, according to embodiments described herein. Generally speaking, and as previously mentioned, radio transceivers 102a1-a3 may scan for nearby devices during a scan period. This scan period may generally be part of a larger cycle period, wherein radio transceivers 102a1-a3 may both scan for advertisement packets and subsequently broadcast the advertisement packets. For example, when the scan period for radio transceivers 102a1-a3 is complete, radio transceivers 102a1-a3 may enter a transmit period, during which radio transceivers 102a1-a3 may transmit the advertisement packets using an appropriate advertisement stream.Thus, the cycle period may generally consist of the scan period and the transmit period, and the scan period may only constitute a small percentage of the time defining the cycle period. For example, if the cycle period for radio transceivers 102a1-a3 is five minutes, then the scan period may be approximately five seconds, and the transmit period may constitute the remaining four minutes and fifty-five seconds of the cycle period.
[0049] One reason for this time difference between the scan period and the transmission period is that scanning for nearby beacons is power-consuming, so minimizing the scan period is an important consideration to extend the battery life of the transceiver device. Determining a scan period time period is also influenced by the chirp time of any nearby devices that the transceiver device can hear. Typically, asset beacons (e.g., asset beacon 106a), waypoint beacons (e.g., waypoint beacon 105), and other devices acting as a beacon (e.g., mobile device 104 running beacon application 104a2) may have a default chirp time during which the beacons broadcast an advertising packet across three advertising channels. Chirp time can generally be the time between a beacon transmission on a single advertising channel (e.g., 37, 38, 39) and the next beacon transmission on the same channel.The chirp may be the transmission period during which the beacon emits the advertising packet; and the chirp may involve transmitting an advertising packet on any suitable number of advertising channels (e.g., one, two, or three advertising channels).
[0050] More specifically, beacons can sleep for most of their chirp time and can only transmit advertising packets during a small portion of the chirp time. For example, if a beacon's chirp time is two seconds, then that beacon's sleep time may be 1.995 seconds, and the beacon may broadcast an advertising packet over three advertising channels for the remaining approximately five milliseconds (e.g., one transmission period). The three advertising channels may generally be radio frequency channels and may include channels 37, 38, and 39, which may be approximately 2402 megahertz (MHz), 2426 MHz, and 2480 MHz, respectively. To avoid collisions between / among transmitted signals on identical advertising channels and to have multiple beacons advertising synchronously, each beacon device can randomly vary its respective chirp times in addition to changing the order of the advertising channels on which the packets are transmitted.
[0051] Given this exemplary chirp time, the scan period for conventional receivers may be approximately 2 seconds to ensure that each nearby beacon can transmit an advertising packet for reception by the conventional receivers during the scan period, and that the conventional receivers can have an opportunity to receive the packet. However, even such an appropriately timed scan period may result in the conventional receivers missing transmissions from nearby beacons due to several other factors. For example, conventional receivers generally rotate through the three advertising channels during the scan period to attempt to receive transmissions on each of the channels during each cycle period, so the scan period is shared among each of the channels.Additionally, channel interference may cause transmissions on a particular advertising channel to fail to reach conventional receivers during the scan period or to be uninterpretable by conventional receivers upon reception. Taken together, these multiple considerations may cause a conventional receiver to miss transmissions from nearby beacons and may leave a user to balance battery life considerations against successful advertising packet receptions.
[0052] To solve these problems with conventional receivers and advertising channel rotations, the high-level timing diagram 200 details how the channel timing instructions 102b1 can configure the radio transceivers 102a1-a3 to rotate through three advertising channels (e.g., channel A, channel B, channel C) in a manner that achieves synchronized and simultaneous scanning on each of the three advertising channels during a scan period 201. In particular, in embodiments where the radio transceivers 102a1-a3 are BLE transceivers, the three advertising channels can be channel 37, channel 38, and channel 39. In particular, channel A can be channel 37, channel B can be channel 38, and channel C can be channel 39. Thus, as a result of the scan sequencing illustrated by high-level timing diagram 200, devices implementing the systems and methods of the present disclosure can dramatically increase advertising packet capture while remaining BLE compliant.
[0053] In any case, the high-level timing diagram 200 represents a scan period 201 of three radio transceivers (e.g., radio transceivers 102a1-a3) rotating through three advertising channels: A, B, and C. The particular channel rotation and sequencing for a first radio transceiver is represented in the first sequencing block 202a. The particular channel rotation and sequencing for a second radio transceiver is represented in the second sequencing block 202b. The particular channel rotation and sequencing for a third radio transceiver is represented in the third sequencing block 202c. Each sequencing block 202a-c is further divided into three subperiods 202a1-a3, 202b1-b3 and 202c1-c3, which are part of the scan period 201, and a fourth subperiod 202a4, 202b4 and 202c4, which represents the beginning of a subsequent scan period.The scan period 201 may be any suitable time length, such as 500 milliseconds (ms), so that each subperiod 202a1-a3, 202b1-b3 and 202c1-c3 within the scan period 201 may be one-third of 500 ms.
[0054] In addition, the high-level timing diagram 200 also includes a set of signal lines 204a, 204b, 204c representing signals generated by the respective radio transceivers. Specifically, the first signal line 204a represents signals generated by the first radio transceiver represented by the first sequencing block 202a, the second signal line 204b represents signals generated by the second radio transceiver represented by the second sequencing block 202b, and the third signal line 204c represents signals generated by the third radio transceiver represented by the third sequencing block 202c.
[0055] As in Fig. 2, the radio transceivers (e.g., radio transceivers 102a1-a3) may synchronously begin scanning (i.e., scanning) over the advertising channel. During the first sub-periods 202a1, 202b1, and 202c1, the first radio transceiver may scan over channel A, the second radio transceiver may scan over channel B, and the third radio transceiver may scan over channel C. Also, upon initiation of the first sub-periods 202a1, 202b1, and 202c1, the first radio transceiver may generate a synchronization pulse 204a1, which may cause the second and third radio transceivers to initiate timers set to expire at specific times during the scan period 201. In certain embodiments, the first radio transceiver may generate the synchronization pulse 204a1 by driving a general purpose input / output (GPIO) pin signal to a low output.For example, synchronization pulse 204a1 may cause the second radio transceiver to initiate a timer set to expire after one-third of scan period 201 (e.g., at the beginning of second subperiod 202b2) has elapsed. As another example, synchronization pulse 204a1 may cause the third radio transceiver to initiate a timer set to expire after two-thirds of scan period 201 (e.g., at the beginning of third subperiod 202c3) has elapsed.
[0056] When the timers expire, each of the radio transceivers may rotate to a new advertising channel. To illustrate, at the beginning of the second sub-periods 202a2, 202b2, and 202c2, the first radio transceiver may rotate from channel A to scan over channel C, the second radio transceiver may rotate from channel B to scan over channel A, and the third radio transceiver may rotate from channel C to scan over channel B. Further, at the beginning of the third sub-periods 202a3, 202b3, and 202c3, the first radio transceiver may rotate from channel C to scan over channel B, the second radio transceiver may rotate from channel A to scan over channel C, and the third radio transceiver may rotate from channel B to scan over channel A.Thus, the timers set by the second and third radio transceivers can keep the second sub-periods 202a2, 202b2 and 202c2 and the third sub-periods 202a3, 202b3 and 202c3 synchronized by basing the rotations between advertising channels on the individual timers.
[0057] In certain embodiments, the particular order of channel rotations at each subperiod of the respective sequencing blocks 202a, 202b, and 202c may be programmatically assigned by channel timing instructions (e.g., channel timing instructions 102b1), such that the channel rotation assignments may not be determined in real time and / or randomly. For example, the assignment of channel A to the first radio transceiver during the first subperiod 202a1, the assignment of channel B to the second radio transceiver during the first subperiod 202b1, and the assignment of channel C to the third radio transceiver during the first subperiod 202c1 may be predetermined and included as part of the channel timing instructions.Furthermore, the subsequent rotation assignments may also be predetermined, such that the first radio transceiver rotating from channel A to channel C at the second sub-period 202a2, the second radio transceiver rotating from channel B to channel A at the second sub-period 202b2, and the third radio transceiver rotating from channel C to channel B at the second sub-period 202c2 are also included as part of the channel timing instructions. Additionally or alternatively, the channel timing instructions may simply include a scan order corresponding to a single channel (e.g., channel A is scanned sequentially by the first, second, and third radio transceivers), and the rotations affecting the other channels may be determined in real time and / or randomly based on the individual channel scan order.
[0058] Furthermore, the second and third radio transceivers may generate end-period pulses 204b1 and 204c1, generally representing the second and third radio transceivers ending their respective scanning subperiods 202b2 and 202c3 on channel A. In particular, the first end-period pulse 204b1 corresponds to the second radio transceiver ending the second subperiod 202b2 and thereby rotating from scanning over channel A to scanning over channel C during the third subperiod 202b3. Similarly, the second end-period pulse 204c1 corresponds to the third radio transceiver ending the third subperiod 202c3 and thereby rotating from scanning over channel A to scanning over channel C during the fourth subperiod 202c4.
[0059] The first radio transceiver can use these end-period pulses 204b1 and 204c1 to determine when to generate a subsequent synchronization pulse 204a2. Generally, each radio transceiver may not start and / or end its respective scan subperiods (e.g., 202b2, 202c3) so that each scan subperiod overlaps perfectly without any delays. These delays are typically a result of intrinsic delays borne by the respective advertising channels.For example, the second radio transceiver illustrated in sequencing block 202b may not start the scan of the second subperiod 202b2 of channel A immediately after the scan of the first subperiod 202b1 of channel B due to an intrinsic delay of channel A and / or B, and / or the third radio transceiver illustrated in sequencing block 202c may similarly not start the scan of the third subperiod 202c3 of channel A immediately after the scan of the second subperiod 202c2 of channel B due to the intrinsic delay of channel A and / or B.Thus, to account for these potential delays and maintain synchronization of all three radio transceivers, the first radio transceiver may receive the end period pulses 204b1 and 204c1, analyze the timing information contained therein, and determine when to generate the subsequent synchronization pulse 204a2 to avoid subsequently mistimed and / or otherwise delayed execution of the channel rotations specified in the channel timing instructions. In certain embodiments, these end-period pulses 204b1 and 204c1 may correspond to the second radio transceiver and the third radio transceiver driving a GPIO line of the first radio transceiver high when the first, second, and third radio transceivers complete scanning across each of the three channels (e.g., successfully scanning through the first, second, and third subperiods 202a1-a3, 202b1-b3, and 202c1-c3).
[0060] In certain embodiments, at least one of the radio transceivers may transmit to a receiver device (e.g., receiver device 108) an updated beacon data packet that includes (i) beacon information (e.g., the beacon data packet) acquired during one of sub-periods 202a1-a3, 202b1-b3, and 202c1-c3, or more generally, scan period 201; and (ii) a channel marker indicating which advertising channel of the radio transceiver(s) was scanned when the radio transceiver(s) acquired the beacon information. Further, in these embodiments, the receiver device may include a timestamp with the beacon data packet upon receipt to indicate when the receiver device received the beacon data packet from the radio transceiver.Furthermore, in some implementations of these embodiments, the radio transceivers may include a timestamp from a radio frequency (RF) portion of the chip comprising the radio transceivers in the updated beacon data packet indicating when the radio transceiver received the beacon data packet from the nearby beacon device. In any event, the receiver device may receive the updated beacon data packet from the radio transceivers, and the receiver device 108, the gateway server (e.g., gateway server 110), and / or the transceiver device 102 may proceed to adjust (i) an antenna gain profile for at least one radio transceiver and / or (ii) a gain profile of the beacon data packet based on the updated beacon data packet.For example, the receiver device 108 and / or the gateway server 110 may adjust the received signal strength indicator (RSSI) for each beacon data packet based on transmit and / or receive antenna gain differences present on the three different advertising channels as indicated in the updated beacon data packet.
[0061] Regardless, the high-level timing diagram illustrates 200 of Fig. 2, the transceiver device (e.g., transceiver device 102) can receive beacon data packets on any advertising channel (e.g., A, B, and C) during any chirp period of any advertising device. Thus, the high-level timing diagram 200 generally illustrates a method for radio transceiver synchronization and sequential channel rotation that provides several advantages. In particular, the radio transceiver synchronization and sequential channel rotation illustrated in the high-level timing diagram 200 can significantly increase the battery life of advertising devices and can dramatically increase the data acquisition rate / amount of the transceiver device 102.
[0062] Radio transceiver synchronization and sequential channel rotation allow a user / operator to extend the battery life of an advertising device by allowing the advertising device operator to increase the periodicity of the advertising device chirps. For example, in a conventional location-finding system, the advertising device may have a chirp period (e.g., transmitted over each advertising channel A, B, C) every 500 ms, and during each chirp period, a receiver device may receive the beacon data packet once (e.g., over one of the advertising channels A, B, C).
[0063] However, with the radio transceiver synchronization and sequential channel rotation of the present disclosure, the user / operator can triple the length of the chirp frequency and receive the same amount of data as conventional systems. To illustrate, the receiver device can receive one beacon data packet in the conventional 500 ms chirp period, so the receiver device can receive three such beacon data packets over three chirp periods (1500 ms), including at least nine beacon data packet transmissions. In contrast, with the radio transceiver synchronization and sequential channel rotation of the present disclosure, the receiver device can receive three advertisement packets during each chirp period. In other words, the receiver device can receive three advertisement packets during a 1500 ms chirp period, including three beacon data packet transmissions.Thus, the advertising frequency of the advertising device can be reduced by two-thirds to preserve battery life while maintaining the same overall amount of data collection.
[0064] Furthermore, the radio transceiver synchronization and sequential channel rotation of the present disclosure may also enable the reception of three times the normal amount of data received during each chirp period of an advertising device. This may be particularly useful in situations where high data collection rates are of utmost importance, such as accurately identifying the location of a particular individual (e.g., a patient) based on a beacon device corresponding to the individual. In particular, this increased rate of data collection compared to conventional systems is particularly useful for mobile beacon devices where the location of the beacon device may change rapidly, so the increased data collection rate of the systems and methods of the present disclosure may be necessary to efficiently and accurately determine the location of the beacon device over time.
[0065] To illustrate, in conventional systems, receiving one beacon data packet per chirp period and / or scan period may be sufficient to identify the location of a beacon device, but these conventional systems provide consistently underwhelming performance. For example, if a person steps in and / or an object is located between the receiver device (e.g., transceiver device 102) and the beacon device, the conventional system may generally assume that the lack of signal is simply due to the beacon device being out of range of the receiver device. The conventional system may then change the identified location of the beacon device and / or otherwise move the beacon device away from the actual location of the beacon device.In contrast, if the transceiver device 102 of the present disclosure receives beacon data packets from a beacon device over each of the advertising channels and then suddenly does not receive a beacon data packet over one of the advertising channels, then the systems of the present disclosure (e.g., transceiver device 102, receiver device 108, and gateway server 110 of . Fig. 1) not automatically assume that the beacon device has changed location. Instead, the systems of the present disclosure may wait a predetermined period of time for subsequent beacon data packet transmissions before updating and / or otherwise changing the location of the beacon device.
[0066] Additionally, this increased data acquisition rate compared to conventional systems can assist in performing signal analysis to more accurately determine the location of the beacon device. As mentioned, each of the advertising channels may have different characteristics, such as a gain profile. These different characteristics, and in particular the gain profiles of the respective advertising channels, may enable the systems of the present disclosure to achieve a higher degree of accuracy in determining locations of beacon devices. For example, assume that the transceiver device 102 receives a first beacon data packet over a first channel (e.g., channel 37) with a first reception strength, the transceiver device 102 receives a second beacon data packet over a second channel (e.g., channel 38) with a second reception strength, and the transceiver device 102 receives a third advertising signal over a third channel (e.g.,Channel 39) with a third reception strength. In this example, the transceiver device 102, the gateway server 110, and / or other suitable device, or combinations thereof, may analyze the three reception strengths and determine that the beacon device transmitting the three beacon data packets is located at a particular location, as determined based on triangulation and / or other suitable methods that take into account the different reception strengths of the beacon data packets via the three different advertising channels.
[0067] Fig. 3 is a flowchart illustrating a method 300 for synchronizing transceiver devices (e.g., radio transceivers 102a1-a3 within transceiver device 102) to simultaneously collect data across multiple advertising channels, according to embodiments described herein. In general, and as described herein, method 300 may include a plurality of radio transceivers scanning across a plurality of advertising channels during a scan period and receiving a beacon data packet associated with a nearby beacon device during multiple sub-periods of the scan period. It should be understood that any of the steps of method 300 may be performed, for example, by transceiver device 102 and / or any other suitable components or combinations thereof discussed herein.
[0068] At block 302, the method 300 includes causing a plurality of radio transceivers to scan across each of a plurality of advertising channels during a first period of a scan period, such that each of the plurality of radio transceivers scans across one of the plurality of advertising channels during the first period that is different from other advertising channels scanned by other radio transceivers. At block 304, the method 300 includes causing the plurality of radio transceivers to scan across each of the plurality of advertising channels during a second period of the scan period, such that each of the plurality of radio transceivers scans across a second one of the plurality of advertising channels during the second period that is different from other advertising channels scanned by other radio transceivers.At block 306, method 300 includes receiving, by the plurality of radio transceivers, a beacon data packet containing beacon information associated with a beacon device located proximate the transceiver device. The beacon data packet may include beacon information acquired during the first period and the second period.
[0069] In certain embodiments, method 300 may further include: during a third period of the scanning period, causing the plurality of radio transceivers to scan across each of the plurality of advertising channels, such that each of the plurality of radio transceivers scans across a third of the plurality of advertising channels during the third period that is different from other advertising channels scanned by other radio transceivers; and receiving, by the plurality of radio transceivers, the beacon data packet containing beacon information associated with the beacon device located proximate the transceiver device. In these embodiments, the beacon data packet may include beacon information acquired during the first period, the second period, and the third period.Furthermore, in these embodiments, the plurality of radio transceivers may include a first BLE radio transceiver, a second BLE transceiver, and a third BLE transceiver; and the plurality of advertising channels may include a first BLE advertising channel, a second BLE advertising channel, and a third BLE advertising channel.
[0070] In some embodiments, method 300 may further include: generating, by a first radio transceiver at a beginning of the first period, a synchronization pulse (e.g., synchronization pulse 204a1) that is transmitted to other radio transceivers of the plurality of radio transceivers; and upon receipt of the synchronization pulse at a second radio transceiver, activating a timer configured to expire at a beginning of the second period.Furthermore, in these embodiments, the scanning period may include a third period, the plurality of radio transceivers may include a third radio transceiver, and the method 300 may further comprise: upon receipt of the synchronization pulse at the third radio transceiver, activating a second timer configured to expire at a beginning of the third period; at the beginning of the second period and synchronous with the expiration of the timer, scanning, by the second radio transceiver, an advertising channel previously scanned by the first radio transceiver during the first period; and at the beginning of the third period and synchronous with the expiration of the second timer, scanning, by the third radio transceiver, the advertising channel previously scanned by the first radio transceiver during the first period and the second radio transceiver during the second period.Still further, in these embodiments, method 300 may further comprise: generating, by the second radio transceiver at an end of the second period, an end pulse (e.g., end period pulses 204b1 and 204c1) for transmission to the first radio transceiver; and automatically adjusting, by the first radio transceiver, the beginning of the first period during a subsequent iteration of the scan period based on delays indicated by the end pulse.
[0071] In certain embodiments, method 300 may further comprise: generating, by each of the plurality of radio transceivers, an updated beacon data packet including (i) the beacon information acquired during the first period or the second period, and (ii) a channel marker indicating which advertising channel of the plurality of advertising channels was scanned by each of the plurality of radio transceivers when each of the plurality of radio transceivers acquired the beacon information; and adjusting (i) an antenna gain profile for at least one radio transceiver of the plurality of radio transceivers or (ii) a gain profile of the beacon data packet based on the updated beacon data packet.
[0072] In some embodiments, the scan period may include a third period, the scan period may be 500 milliseconds (ms), and each of the first period, the second period, and the third period may be one-third of 500 ms.
[0073] It is understood that the actions of method 300 may be performed in any suitable order and any suitable number of times.
[0074] Fig. 4 is a block diagram illustrating an example logic circuit capable of implementing example methods and / or operations described herein. As an example, the example logic circuit may be capable of implementing one or more components of the transceiver device 102 of Fig. 1. The exemplary logic circuit of Fig. 4 is a processing platform 410 capable of executing instructions to implement, for example, operations of the exemplary methods described herein, as may be illustrated by the flowcharts of the drawings accompanying this specification. Other exemplary logic circuits capable of implementing, for example, operations of the exemplary methods described herein include field-programmable gate arrays (FPGAs) and application-specific integrated circuits (ASICs).
[0075] The exemplary processing platform 410 from Fig. 4 includes a processor 102c, such as one or more microprocessors, controllers, and / or any suitable type of processor. The exemplary processing platform 410 of Fig. 4 includes a memory (e.g., volatile memory, non-volatile memory) 102b accessible by the processor 102c (e.g., via a memory controller). The example processor 102c interacts with the memory 102b to obtain, for example, machine-readable instructions stored in the memory 102b that correspond, for example, to the operations illustrated by the flowcharts of this disclosure. The memory 102b also includes the channel timing instructions 102b1 accessible by the example processor 102c. The channel timing instructions 102b1 may include rule-based instructions configured to, for example, cause the example processor 102c to initiate the synchronization procedure for the three radio transceivers 102a1-a3 (e.g., cause the radio transceiver 102a1 to generate a synchronization pulse 204a1), as previously described.The channel timing instructions 102b1 may define which of the radio transceivers 102a1-a3 will scan on specific advertising channels at the beginning of the scanning period, and may also define an order in which the radio transceivers 102a1-a3 may rotate scanning to / from each of the specific advertising channels during the scanning period.
[0076] In particular, the example processor 102c may access the memory 102b to execute, reference, and / or otherwise interpret the channel timing instructions 102b1 when initiating a scan period for the radio transceivers 102a1-a3. Additionally or alternatively, machine-readable instructions corresponding to the example operations described herein may be stored on one or more removable media (e.g., a compact disc, a digital versatile disc, a removable flash memory, etc.) that may be coupled to the processing platform 410 to provide access to the machine-readable instructions stored thereon.
[0077] The exemplary processing platform 410 from Fig. 4 also includes a plurality of radio transceivers 102a1-a3 to enable communication with other machines via, for example, one or more networks. The plurality of radio transceivers 102a1-a3 may include any suitable type of communication interface(s) (e.g., wired and / or wireless interfaces) configured to operate according to any suitable protocol(s) (e.g., Ethernet for wired communication and / or BLE or IEEE 802.11 for wireless communication).
[0078] The exemplary processing platform 410 from Fig. 4 also includes input / output (I / O) interfaces 412 to enable the receipt of user input and the communication of output data to the user. Such user input and communication may include, for example, any number of keyboards, mice, USB drives, optical drives, monitors, touchscreens, etc.
[0079] Further, the example processing platform 410 may be connected to a remote server 420. The remote server 420 may include one or more remote processors 422 and may be configured to execute instructions, for example, to implement operations of the example methods described herein, as may be illustrated by the flowcharts of the drawings accompanying this specification. ADDITIONAL CONSIDERATIONS
[0080] The above description refers to a block diagram in the accompanying drawings. Alternative embodiments of the example illustrated in the block diagram include one or more additional or alternative elements, methods, and / or devices. Additionally or alternatively, one or more of the example blocks of the diagram may be combined, split, rearranged, or omitted. The components represented by the blocks of the diagram are implemented by hardware, software, firmware, and / or any combination of hardware, software, and / or firmware. In some examples, at least one of the components represented by the blocks is implemented by logic circuitry. As used herein, the term “logic circuitry” is expressly defined as a physical device having at least one hardware component that (e.g.,by operating according to a predetermined configuration and / or by executing stored computer- or machine-readable instructions) to control one or more machines and / or to perform operations of one or more machines. Examples of logic circuits include one or more processors, one or more co-processors, one or more microprocessors, one or more controllers, one or more DSPs, one or more ASICs, one or more FPGAs, one or more microcontroller units (MCUs), one or more hardware accelerators, one or more special-purpose computer chips, and one or more system-on-a-chip (SoC) devices. Some example logic circuits, such as ASICs or FPGAs, are specially configured hardware to perform operations (e.g., one or more of the operations described herein and depicted in the flowcharts of this disclosure, if any).Some example logic circuits are hardware that executes computer- or machine-readable instructions to perform operations (e.g., one or more of the operations described herein and / or illustrated by the flowcharts of this disclosure, if any). Some example logic circuits include a combination of specially configured hardware and hardware that executes computer- or machine-readable instructions. The above description refers to various operations described herein and / or flowcharts that may be attached to illustrate the flow of those operations. All of these descriptions and / or flowcharts are representative of the example methods disclosed herein. In some examples, the methods illustrated by the flowcharts implement the devices illustrated by the block diagrams.Alternative implementations of the example methods disclosed herein may include additional or alternative operations. Furthermore, operations of alternative implementations of the methods disclosed herein may be combined, split, rearranged, or omitted. In some examples, the operations described herein are implemented by computer- or machine-readable instructions (e.g., software and / or firmware) stored on a medium (e.g., a tangible computer- or machine-readable medium) for execution by one or more logic circuits (e.g., processor(s)). In some examples, the operations described herein are implemented by one or more configurations of one or more specially designed logic circuits (e.g., ASIC(s)).In some examples, the operations described herein are implemented by a combination of specially designed logic circuitry and computer- or machine-readable instructions stored on a medium (e.g., an accessible computer- or machine-readable medium) for execution by the logic circuitry.
[0081] As used herein, each of the terms “accessible machine-readable medium,” “non-transitory machine-readable medium,” and “machine-readable storage device” is expressly defined as a storage medium (e.g., a disk of a hard disk drive, a digital versatile disc, a compact disc, flash memory, read-only memory, random access memory, etc.) on which machine-readable instructions (e.g., program code in the form of, for example, software and / or firmware) are stored for any suitable period of time (e.g., permanently, for an extended period of time (e.g., during execution of a program associated with the machine-readable instructions), and / or for a short period of time (e.g., during caching of the machine-readable instructions and / or during a buffering process)).Furthermore, the terms "accessible machine-readable medium," "non-transitory machine-readable medium," and "machine-readable storage device" are expressly defined herein to exclude the transmission of signals. That is, none of the terms "accessible machine-readable medium," "non-transitory machine-readable medium," and "machine-readable storage device" as used in the claims of this patent can be read as being implemented by a propagating signal.
[0082] In the foregoing description, particular embodiments have been described. However, it will be apparent to one skilled in the art that various modifications and changes may be made without departing from the scope of the invention as set forth in the following claims. Accordingly, the description and figures are to be considered illustrative rather than restrictive, and all such modifications are intended to be included within the scope of the present teachings. Furthermore, the described embodiments / examples / implementations are not to be understood as mutually exclusive, but rather as potentially combinable where such combinations are in any way permissive. In other words, any feature disclosed in one of the foregoing embodiments / examples / implementations may be included in any of the other foregoing embodiments / examples / implementations.
[0083] The benefits, advantages, solutions to problems, and any elements that may result in a benefit, advantage, or solution occurring or becoming more pronounced are not to be construed as critical, required, or essential features or elements of any or all of the claims. The claimed invention is defined solely by the appended claims, including any amendments made during the pendency of this application and any equivalents of those claims as granted.
[0084] Furthermore, in this document, relational terms such as first and second, upper and lower, and the like may be used merely to distinguish one entity or action from another entity or action, without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms "comprises," "comprising," "has," "having," "comprising," "includes," "containing," or any other variation thereof are intended to cover non-exclusive inclusion, such that a process, method, product, or apparatus that comprises, has, has, or contains a list of elements not only includes those elements, but may also include other elements not expressly listed or inherent in such process, method, product, or apparatus. An element that is preceded by "comprises," "has," "has," or "includes"a" does not exclude, without further limitation, the existence of additional identical elements in the process, method, product, or apparatus comprising, having, including, or containing the element. The terms "a" and "an" are defined as one or more unless expressly stated otherwise herein. The terms "substantially," "generally," "approximately," "about," or any other version thereof are defined as being approximately understood by one of ordinary skill in the art, and in one non-limiting embodiment, the term is defined as within 10%, in another embodiment, within 5%, in another embodiment, within 1%, and in yet another embodiment, within 0.5%. The term "coupled," as used herein, is defined as being connected, but not necessarily directly and not necessarily mechanically.A device or structure that is "configured" in a certain way is at least configured that way, but may also be configured in ways that are not listed.
[0085] The Summary of Disclosure is provided to enable the reader to quickly ascertain the nature of the technical disclosure. It is provided with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Further, it can be seen from the foregoing Detailed Description that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This manner of disclosure should not be construed to reflect an intent that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims demonstrate, inventive subject matter lies in fewer than all features of a single disclosed embodiment.Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as separately claimed subject matter.
Claims
[1] Transceiver device comprising: at least one processor; a variety of radio transceivers; and a memory storing instructions that, when executed by the at least one processor, cause the transceiver device to: Causing the plurality of radio transceivers to scan over each of a plurality of advertising channels during a first period of a scanning period, such that each of the plurality of radio transceivers scans over one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the first period, during a second period of the scanning period, causing the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a second one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the second period, and Receiving, by the plurality of radio transceivers, a beacon data packet containing beacon information associated with a beacon device located proximate the transceiver device, the beacon data packet containing beacon information acquired during the first period and the second period. [2] The transceiver device of claim 1, wherein the instructions, when executed, further cause the transceiver device to: during a third period of the scanning period, causing the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a third of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the third period, and Receiving, by the plurality of radio transceivers, the beacon data packet containing beacon information associated with the beacon device located proximate the transceiver device, and wherein the beacon data packet contains beacon information acquired during the first period, the second period, and the third period. [3] A transceiver device according to claim 2, wherein: the plurality of radio transceivers includes a first Bluetooth Low Energy (BLE) radio transceiver, a second BLE transceiver, and a third BLE transceiver; and the plurality of advertising channels includes a first BLE advertising channel, a second BLE advertising channel, and a third BLE advertising channel. [4] The transceiver device of claim 1, wherein the instructions, when executed, further cause the transceiver device to: generating, by a first radio transceiver at a beginning of the first period, a synchronization pulse which is transmitted to other radio transceivers of the plurality of radio transceivers; and upon receipt of the synchronization pulse at a second radio transceiver, activating a timer configured to expire at a beginning of the second period. [5] The transceiver device of claim 4, wherein the scanning period includes a third period, the plurality of radio transceivers includes a third radio transceiver, and the instructions, when executed, further cause the transceiver device to: upon receipt of the synchronization pulse at the third radio transceiver, activating a second timer configured to expire at a beginning of the third period; at the beginning of the second period and synchronously with the expiration of the timer, scanning with the second radio transceiver an advertising channel previously scanned by the first radio transceiver during the first period; and at the beginning of the third period and synchronously with the expiration of the second timer, scanning with the third radio transceiver the advertising channel previously scanned by the first radio transceiver during the first period and the second radio transceiver during the second period. [6] The transceiver device of claim 4, wherein the instructions, when executed, further cause the transceiver device to: generating, by the second radio transceiver at an end of the second period, a final pulse for transmission to the first radio transceiver; and automatic adjustment, by the first radio transceiver, of the start of the first period during a subsequent iteration of the scan period based on delays indicated by the final pulse. [7] The transceiver device of claim 1, wherein the instructions, when executed, further cause the transceiver device to: generating, by each of the plurality of radio transceivers, an updated beacon data packet including (i) the beacon information acquired during the first period or the second period, and (ii) a channel marker indicating which advertising channel of the plurality of advertising channels was scanned by each of the plurality of radio transceivers when each of the plurality of radio transceivers acquired the beacon information; and Adjusting (i) an antenna gain profile for at least one radio transceiver of the plurality of radio transceivers or (ii) a gain profile of the beacon data packet based on the updated beacon data packet. [8] A transceiver device according to claim 1, wherein: the scan period includes a third period; the scan period is 500 milliseconds (ms); and each of the first period, the second period and the third period is one third of 500 ms. [9] A method for synchronizing transceiver devices for simultaneously collecting data across multiple advertising channels, the method comprising: causing a plurality of radio transceivers to scan over each of a plurality of advertising channels during a first period of a scanning period, such that each of the plurality of radio transceivers scans over one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the first period; during a second period of the scanning period, causing the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a second one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the second period; and Receiving, by the plurality of radio transceivers, a beacon data packet containing beacon information associated with a beacon device located proximate the transceiver device, the beacon data packet containing beacon information acquired during the first period and the second period. [10] The method of claim 9, further comprising: during a third period of the scanning period, causing the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a third of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the third period, and Receiving, by the plurality of radio transceivers, the beacon data packet containing beacon information associated with the beacon device located proximate the transceiver device, and wherein the beacon data packet contains beacon information acquired during the first period, the second period, and the third period. [11] The method of claim 10, wherein: the plurality of radio transceivers includes a first Bluetooth Low Energy (BLE) radio transceiver, a second BLE transceiver, and a third BLE transceiver; and the plurality of advertising channels includes a first BLE advertising channel, a second BLE advertising channel, and a third BLE advertising channel. [12] The method of claim 9, further comprising: generating, by a first radio transceiver at a beginning of the first period, a synchronization pulse which is transmitted to other radio transceivers of the plurality of radio transceivers; and upon receipt of the synchronization pulse at a second radio transceiver, activating a timer configured to expire at a beginning of the second period. [13] The method of claim 12, wherein the scanning period includes a third period, the plurality of radio transceivers includes a third radio transceiver, and the method further comprises: upon receipt of the synchronization pulse at the third radio transceiver, activating a second timer configured to expire at a beginning of the third period; at the beginning of the second period and synchronously with the expiration of the timer, scanning, by the second radio transceiver, an advertising channel previously scanned by the first radio transceiver during the first period; and at the beginning of the third period and synchronously with the expiration of the second timer, scanning, by the third radio transceiver, of the advertising channel previously scanned by the first radio transceiver during the first period and the second radio transceiver during the second period. [14] The method of claim 12, further comprising: generating, by the second radio transceiver at an end of the second period, a final pulse for transmission to the first radio transceiver; and Automatic adjustment, by the first radio transceiver, of the start of the first period during a subsequent iteration of the scan period based on delays indicated by the end pulse. [15] The method of claim 9, further comprising: generating, by each of the plurality of radio transceivers, an updated beacon data packet including (i) the beacon information acquired during the first period or the second period, and (ii) a channel marker indicating which advertising channel of the plurality of advertising channels was scanned by each of the plurality of radio transceivers when each of the plurality of radio transceivers acquired the beacon information; and Adjusting (i) an antenna gain profile for at least one radio transceiver of the plurality of radio transceivers or (ii) a gain profile of the beacon data packet based on the updated beacon data packet. [16] Accessible machine-readable medium comprising instructions for synchronising transceiver devices to simultaneously collect data across multiple advertising channels, which, when executed, cause a machine to at least: causing a plurality of radio transceivers to scan over each of a plurality of advertising channels during a first period of a scanning period, such that each of the plurality of radio transceivers scans over one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the first period; during a second period of the scanning period, causing the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a second one of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the second period; and receive, by the plurality of radio transceivers, a beacon data packet containing beacon information associated with a beacon device located proximate to the transceiver device, the beacon data packet containing beacon information acquired during the first period and the second period. [17] The accessible machine-readable medium of claim 16, wherein the instructions, when executed, further cause the machine to: during a third period of the scanning period, causing the plurality of radio transceivers to scan over each of the plurality of advertising channels such that each of the plurality of radio transceivers scans over a third of the plurality of advertising channels that is different from other advertising channels scanned by other radio transceivers during the third period; and receiving, by the plurality of radio transceivers, the beacon data packet containing beacon information associated with the beacon device located proximate to the transceiver device, and wherein the beacon data packet contains beacon information acquired during the first period, the second period, and the third period. [18] The accessible machine-readable medium of claim 16, wherein the instructions, when executed, further cause the machine to: generating, by a first radio transceiver at a beginning of the first period, a synchronization pulse which is transmitted to other radio transceivers of the plurality of radio transceivers; upon receipt of the synchronization pulse at a second radio transceiver, activating a timer configured to expire at a beginning of the second period; by the second radio transceiver at an end of the second period, to generate a final pulse for transmission to the first radio transceiver; and by the first radio transceiver to automatically adjust the start of the first period during a subsequent iteration of the scan period based on delays indicated by the end pulse. [19] The accessible machine-readable medium of claim 18, wherein the scanning period includes a third period, the plurality of radio transceivers includes a third radio transceiver, and the instructions, when executed, further cause the machine to: upon receipt of the synchronization pulse at the third radio transceiver, activating a second timer configured to expire at a beginning of the third period; at the beginning of the second period and synchronously with the expiration of the timer, the second radio transceiver scans an advertising channel that was previously scanned by the first radio transceiver during the first period; and at the beginning of the third period and synchronously with the expiration of the second timer, to scan by the third radio transceiver the advertising channel previously scanned by the first radio transceiver during the first period and by the second radio transceiver during the second period. [20] The accessible machine-readable medium of claim 16, wherein the instructions, when executed, further cause the machine to: generating, by each of the plurality of radio transceivers, an updated beacon data packet containing (i) the beacon information acquired during the first period or the second period, and (ii) a channel marker indicating which advertising channel of the plurality of advertising channels was scanned by each of the plurality of radio transceivers when each of the plurality of radio transceivers acquired the beacon information; and (i) adjust an antenna gain profile for at least one radio transceiver of the plurality of radio transceivers or (ii) adjust a gain profile of the beacon data packet based on the updated beacon data packet.