This disclosure relates to beacon devices and, in non-limiting embodiments, systems, methods, and apparatuses for pairing a control device with a plurality of beacon devices. Non-limiting embodiments described herein are directed to the field of indoor location systems and local positioning systems (LPS) for determining the position of a control device. In particular, although not exclusively, non-limiting embodiments of the disclosure relate to systems and methods for pairing beacons in an indoor local positional or LPS, the system being operable for determining the relative position of the control device with respect to the beacons. The control device may, for example, be operable for controlling a Virtual Reality (VR), Augmented Reality (AR), or Mixed Reality (MR) gaming system. Alternatively, the control device may be operable for controlling a plurality of devices in a smart home. Alternatively, the control device may be operable for controlling a 3D Computer-Aided Design (CAD) system.
The use of smart devices throughout residential homes has become ubiquitous. Smart devices typically include devices coupled to a WiFi® network and controllable by a user's device connected to the same WiFi® network. Some example smart devices leveraged by home owners include TVs, thermostats, lights, and audio equipment (e.g., AMAZON ALEXA®). Having smart devices connected throughout the home or office requires separate control interfaces to communicate with each connected smart device. A method currently employed is to leverage distinct mobile applications on a mobile device where each particular mobile application may be used to control a specific one of the connected smart devices. Consequently, the user is required to physically open different applications on the user's mobile device to control each smart device. Opening and then toggling between different mobile applications on the user's mobile device is inefficient, cumbersome, time consuming, and prone to errors. Another existing method is to leverage a universal remote with fixed input buttons to control various devices. This is cumbersome and prone to errors because, for each device, there exists a number of irrelevant input buttons on the universal remote.
Moreover, existing techniques to pair a mobile device (such as a mobile phone) to other devices are inefficient, cumbersome, and are vulnerable to malicious users. For example, pairing a mobile device with a sensor or appliance may require a user to enter a code and/or may result in a user pairing the mobile device with a device that belongs to a neighbor or another proximate device user.
Embodiment 1. A control device, including: at least one transceiver; and at least one processor in communication with the at least one transceiver, the at least one processor configured to: scan, with the at least one transceiver, for wireless signals to detect at least one beacon signal of a plurality of beacon devices, wherein each of the plurality of beacon devices are configured to communicate with the control device to determine a spatial position of the control device relative to the plurality of beacon devices; determine, based on the at least one beacon signal, at least one beacon device of the plurality of beacon devices that is not paired to the control device; determine whether to initiate an automatic pairing operation based on the at least one beacon device that is not paired to the control device, wherein determining whether to initiate the automatic pairing operation is based at least in part on a distance between the at least one beacon device and the control device; and in response to determining to initiate the automatic pairing operation, automatically pair the at least one beacon device with the control device, wherein the control device is configured to operate with the at least one beacon device to extrapolate a spatial selection zone relative to the control device such that there is a probability that the control device is to control one or more smart devices in the spatial selection zone.
Embodiment 2. The control device of claim 1, wherein determining whether to initiate the automatic pairing operation is further based on a number of beacon devices of the at least one beacon device that are not paired to the control device being less than a threshold number.
Embodiment 3. The control device of claim 2, wherein the at least one beacon signal includes a plurality of beacon signals, and the at least one processor is further configured to determine the number of beacon devices that are not paired to the control device by: determining, based on the plurality of beacon signals, a total number of beacon devices; and determining a number of beacon devices that are not identified in configuration data stored on the control device by comparing the configuration data with beacon data associated with each of the total number of beacon devices, wherein the number of beacon devices that are not paired to the control device is equal to the number of beacon devices that are not identified in the configuration data.
Embodiment 4. The control device of claim 2, wherein determining to initiate the automatic pairing operation further includes: comparing the number of beacon devices that are not paired to the control device to a threshold value; and determining that the number of beacon devices is less than the threshold value.
Embodiment 5. The control device of claim 1, wherein the at least one processor is further configured to record, on the control device, configuration data identifying the at least one beacon device paired to the control device.
Embodiment 6. The control device of claim 1, wherein the at least one processor is further configured to determine a number of beacon devices that are paired to the control device based on configuration data stored on the control device.
Embodiment 7. The control device of claim 6, wherein determining to initiate the automatic pairing operation is further based on the number of beacon devices that are paired to the control device.
Embodiment 8. The control device of claim 1, wherein the at least one processor is further configured to: in response to determining to initiate a manual pairing operation, generating, on the control device, a graphical user interface including beacon data associated with the at least one beacon device, the graphical user interface configured to facilitate a user to cause the control device to be paired to at least one selected beacon device of the at least one beacon device.
Embodiment 9. The control device of claim 1, wherein the at least one beacon signal includes a plurality of beacon signals corresponding to the plurality of beacon devices, the plurality of beacon devices including at least one sensor device and at least one cradle device.
Embodiment 10. The control device of claim 1, wherein the at least one beacon signal includes a plurality of beacon signals corresponding to the plurality of beacon devices, the plurality of beacon devices including at least one sensor device and at least one cradle device, and wherein determining whether to initiate the automatic pairing operation based on the number of beacon devices that are not paired to the control device includes: determining whether to initiate the automatic pairing operation for the at least one sensor device based on a number of sensor devices of the at least one sensor device that are not paired to the control device; and determining whether to initiate the automatic pairing operation for the at least one cradle device based on a number of cradle devices of the at least one cradle device that are not paired to the control device.
Embodiment 11. The control device of claim 1, wherein the at least one beacon signal includes a plurality of beacon signals corresponding to the plurality of beacon devices, and wherein determining the at least one beacon device that is not paired to the control device includes: determining a distance between the control device and each beacon device of the plurality of beacon devices based on a time of flight of a corresponding beacon signal of the plurality of beacon signals; and determining the at least one beacon device from the plurality of beacon devices based on comparing the distance for each beacon device to a threshold distance, wherein the at least one beacon device consists of all beacon devices less than the threshold distance away from the control device.
Embodiment 12. The control device of claim 1, wherein the at least one processor is further configured to: determine that firmware installed on the at least one beacon device is outdated; and in response to determining that the firmware is outdated, automatically update the firmware of the at least one beacon device.
Embodiment 13. The control device of claim 1, wherein the at least one beacon signal includes a plurality of beacon signals corresponding to the plurality of beacon devices, wherein the at least one processor is further configured to: determine a state of each beacon device of the plurality of beacon devices from a plurality of states, including: a first state in which the beacon device is available to be paired to the control device, a second state in which the beacon device is available to be paired to the control device and is within a threshold distance of the control device, and a third state in which the beacon device is paired to the control device; and cause each beacon device of the plurality of beacon devices to visually or audibly indicate the state of the beacon device.
Embodiment 14. A computer-implemented method for pairing a control device with a plurality of beacon devices, including: scanning, with the control device, for wireless signals to detect at least one beacon signal of the plurality of beacon devices, wherein each of the plurality of the beacon devices are configured to communicate with the control device to determine a spatial position of the control device relative to the plurality of beacon devices; determining, with the control device and based on the at least one beacon signal, at least one beacon device that is not paired to the control device; determining, with the control device, whether to initiate an automatic pairing operation based on the at least one beacon device that is not paired to the control device, based at least in part on a distance between the at least one beacon device and the control device; and in response to determining to initiate the automatic pairing operation, automatically pairing the at least one beacon device to the control device, wherein the control device is configured to operate with the at least one beacon device to extrapolate a spatial selection zone relative to the control device such that there is a probability that the control device is to control one or more smart devices in the spatial selection zone.
Embodiment 15. A computer program product including at least one non-transitory computer-readable medium including program instructions that, when executed by at least one processor, cause the at least one processor to: scan, with at least one transceiver, for wireless signals to detect at least one beacon signal of a plurality of beacon devices, wherein each of the plurality of the beacon devices is configured to communicate with a control device to determine a spatial position of the control device relative to the plurality of beacon devices; determine, based on the at least one beacon signal, at least one beacon device of the plurality of beacon devices that is not paired to the control device; determine whether to initiate an automatic pairing operation based on the at least one beacon device that is not paired to the control device, wherein determining whether to initiate the automatic pairing operation is based at least in part on a distance between the at least one beacon device and the control device; and in response to determining to initiate the automatic pairing operation, automatically pair the at least one beacon device with the control device, wherein the control device is configured to operate with the at least one beacon device to extrapolate a spatial selection zone relative to the control device such that there is a probability that the control device is to control one or more smart devices in the spatial selection zone.
Those skilled in the art will appreciate the scope of the present disclosure and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure, and together with the description serve to explain the principles of the disclosure.
In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here.
Various examples of embodiments of the invention will now be described. The following description provides specific details for a thorough understanding and enabling description of these examples. One skilled in the relevant art will understand, however, that embodiments of the invention may be practiced without many of these details. Likewise, one skilled in the relevant art will also understand that embodiments incorporate many other obvious features not described in detail herein. Additionally, some well-known structures or functions may not be shown or described in detail below, so as to avoid unnecessarily obscuring of the relevant description.
The terminology used herein is to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the invention. Indeed, certain terms may even be emphasized below; any terminology intended to be interpreted in any restricted manner will, however, be overtly and specifically defined as such in this detailed description section.
The figures along with the following discussion provide a brief and general description of a suitable environment in which embodiments of the invention can be implemented. As used herein, the term “computing device” may refer to one or more electronic devices configured to process data. A computing device may, in some examples, include the necessary components to receive, process, and output data, such as a display, a processor, a memory, an input device, and a network interface. A computing device may be a mobile device. As an example, a mobile device may include a cellular phone (e.g., a smartphone or a standard cellular phone), a portable computer, a wearable device (e.g., watches, glasses, lenses, clothing, and/or the like), a personal digital assistant (PDA), and/or other like devices. The computing device may also be a desktop computer or another form of a non-mobile computer, mainframe computer, media player, and/or the like. An “interface,” “user interface,” or “UI” refers to a generated display, such as one or more graphical user interfaces (GUIs) with which a user may interact, either directly or indirectly (e.g., through a keyboard, a mouse, or a touchscreen, etc.). The terms “computing device,” “computer,” “server,” and the like are generally used interchangeably herein, and refer to any of the above devices and systems, as well as any data processor.
While non-limiting embodiments of the invention, such as certain functions, may be described as being performed on a single device, embodiments of the invention can also be practiced in distributed environments where functions or modules are shared among disparate computing devices, which are linked through a communications network, such as, for example, a Local Area Network (LAN), Wide Area Network (WAN), the Internet, Bluetooth®, Zigbee®, and/or the like. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Non-limiting embodiments of the invention may be stored or distributed on tangible, non-transitory computer-readable media, including magnetically or optically readable computer discs, cloud servers, hard-wired or preprogrammed chips (e.g., electrically erasable programmable read only memory (EEPROM) semiconductor chips), nanotechnology memory, biological memory, or other data storage media. Alternatively, or additionally, computer implemented instructions, data structures, screen displays, and other data under aspects of embodiments of the invention may be distributed over the Internet and via cloud computing networks or on any analog or digital network (packet switched, circuit switched, or another scheme).
The computer-readable medium stores computer data, in which that data may include computer program code that is executable by a computer, in machine readable form. By way of example, a computer-readable medium may comprise computer readable storage media, for tangible or fixed storage of data, or communication media for transient interpretation of code-containing signals. Computer-readable storage media, as used herein, refers to physical or tangible storage (as opposed to transitory signals) and includes, without limitation, volatile and non-volatile as well as removable and non-removable media implemented in any method or technology for the tangible storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media includes: random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM), EEPROM, flash memory, or any other solid state memory technology; compact disc read only memory (CD-ROM), digital versatile disc (DVD), or any other optical storage; magnetic cassettes, magnetic tape, magnetic disk storage, or any other magnetic storage devices; or any other physical or material medium which can be used to tangibly store the desired information, data, or instructions and which can be accessed by a computer or processor.
Non-limiting embodiments of the invention are described herein with reference to operational illustration of modules having functional blocks to illustrate methods employed by modules and engines to control a plurality of smart devices via a control device where user interfaces associated with the smart devices are transitionally displayed on the control device. It will be understood that each of the modules, blocks, engines, and combinations thereof may be implemented by analog or digital hardware and computer program instructions. The computer program instructions may be provided to a processor of a computing device (such as a general purpose computer, a special purpose computer, an application-specific integrated circuit (ASIC), or any other programmable data processing apparatus) such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, implements the functions or acts specified in the functional blocks of the flowcharts and/or the operational modules and engines.
In some non-limiting embodiments, the methods illustrated and described by the functional blocks, modules, and/or engines may occur out of the order noted in the operational illustration of the modules as well as the associated detailed description. For example, two blocks illustrated in succession may be executed substantially concurrently. Alternatively, and/or additionally, the blocks may be executed in reverse order.
A module is a software, hardware, or firmware (or combination thereof) system, process, or functionality (or component thereof) that performs or facilitates the processes, features, and/or functions described herein. A module may include sub-modules or engines. Software components of a module may be stored on a computer-readable medium. Modules may be integral to one or more servers, or may be loaded and executed by one or more servers. One or more modules may be grouped into an application.
The system 100 comprises a plurality of beacon devices 115 (referenced herein as the plurality of beacons 115) communicatively coupled to each other and to the control device 110. The system 100 further includes an interface module 120 communicatively coupled to the control device 110, the plurality of beacons 115, and the plurality of devices 105 via a network 125. The network 125 may, for example, comprise a LAN, a WAN, and/or the like, and may include the Internet, a private network, and/or local Infrared, Bluetooth®, or Zigbee® networks, as examples.
The plurality of devices 105 may be “smart” devices such as electronic or electro-mechanical devices communicatively coupled to the network 125. In one embodiment, the plurality of devices 105 may take the form of a smart TV 105a, set top box 105b, sound system 105c, security camera 105d, and/or lamp 105e. Each device of the plurality of devices 105 having associated a plurality of user interfaces (UIs) 402 (to be described in more detail with reference to
The plurality of beacons 115 may be configured to communicate and operate in conjunction with the control device 110 to determine a spatial position of the control device 110 in real-time. The plurality of beacons 115 may take the form of localization units and may communicate with the control device 110 via any short-wave or long-wave communication protocol. For example, the plurality of beacons 115 may utilize environment localization chips based on ultra wideband (UWB) technology to determine relative positions in relation to one another. The localization of the plurality of beacons 115 may be implemented based on lateration, tri-lateration, or multi-lateration methods. As another example, electromagnetic field (EMF) technology is another technology capable of determining position and orientation. The same localization methods leveraged by the plurality of beacons 115 to determine relative positions may be leveraged by the system 100 to determine the location of the control device 110 relative to the plurality of beacons 115. As will be described below, because the plurality of beacons 115 are associated with the control device 110, the control device 110 is capable to determine its relative position with respect to the plurality of beacons 115.
In one example embodiment, the plurality of beacons 115 may be spatially arranged in an operating environment of the system 100 such that a line-of-site exists between the plurality of beacons 115. The plurality of beacons 115 may, for example, be mounted on a top portion of various wall surfaces to allow a substantially unobstructed communication path between the plurality of beacons 115 and the control device 110. The plurality of beacons 115 may communicate wirelessly with one another and with the control device 110 to implement location positioning via the UWB communication protocols.
The plurality of beacons 115 may be a defined set of sensors or anchors that undergo a pairing process to be specifically associated with the control device 110. In non-limiting embodiments, the plurality of beacons 115 may include one or more sensor devices and one or more cradle devices configured to receive the control device 110 and, in some examples, charge the control device 110. The pairing process may be advantageous to avoid incorporating other beacons intended for use in a third-party system that may be in substantially close proximity with the plurality of beacons 115 of the system 100, such as a neighbor's dwelling or office. The pairing process described below may be advantageous to confirm the user of the control device 110 and simultaneously prevents a third-party control device from accessing the plurality of beacons 115 of the system 100. Additionally, via the pairing process, the control device 110 leverages the plurality of beacons 115 associated with the system 100 for determining positioning and orientation information rather than leveraging beacons of third-party and perhaps neighboring systems. Furthermore, pairing allows for more than one of the control device 110 to be used in the system 100 where each of the control devices 110 has a defined set of beacons, as well as adding an additional unpaired beacon 185 or a plurality of additional beacons 185 to the existing plurality of beacons 115 already paired with the system 100.
The non-limiting embodiment of the system 100 shown in
In non-limiting embodiments, the pairing process may be automatically initiated (e.g., without user intervention, such as entering a PIN) based on one or more of the unpaired beacons 185, such as the first unpaired beacon 185. For example, the pairing process may automatically be initiated responsive to a detection that the control device 110 is within a defined distance (e.g., within 70 cm) from the first unpaired beacon 185. In non-limiting embodiments, the pairing may be automatically initiated based on a determination that the unpaired beacon 185 belongs to the same network 125. For example, it may be determined that the unpaired beacon 185 belongs to the same network 125 as the control device 110 based on a distance between the control device 110 and the unpaired beacon 185 being less than a threshold distance (e.g., several meters). In non-limiting embodiments, the pairing process may be performed automatically in response to the beacon pairing module 180 detecting a defined number of the unpaired beacons 185. The pairing process may be any process known in the art.
In non-limiting embodiments, the beacon pairing module 180 or any other computing device may determine a number of beacon devices of the plurality of beacons 115 that are unpaired to the control device 110 by first scanning and determining a total number of beacon devices of the plurality of beacons 115 and comparing the total number of beacon devices of the plurality of beacons 115 to a number of beacon devices of the plurality of beacons 115 that are paired to the control device 110 and/or are identified in configuration data associated with the control device 110. In response to the number of beacon devices of the plurality of beacons 115 that are unpaired to the control device 110 being less than a threshold number of beacon devices (e.g., being less than or equal to a predetermined threshold value), the control device 110 may initiate automatic pairing. For example, automatic pairing may be performed in response to the number of the unpaired beacons 185 of the plurality of beacons 115 being less than or equal to three (3) beacon devices. In some non-limiting embodiments, automatic pairing may be performed in response to a determination that a number of the unpaired beacons 185 of the plurality of beacons 115 are within a threshold distance of the control device 110 and/or a paired beacon device of the plurality of beacons 115. For example, automatic pairing may be performed in response to the number of the unpaired beacons 185 of the plurality of beacons 115 within a threshold distance of the control device 110 being less than or equal to three (3) beacon devices.
In non-limiting embodiments, the control device 110 may initiate a manual pairing process in response to determining that the number of the unpaired beacons 185 of the plurality of beacons 115 satisfies a threshold (e.g., is greater than or equal to). A manual pairing process may include displaying a UI configured to facilitate a user to select one or more beacon devices of the plurality of beacons 115 to pair with. Initiating a manual pairing process instead of an automatic pairing process may avoid pairing the control device 110 to beacons that may belong to a neighbor. This may also prevent a foreign control device from utilizing the plurality of beacon devices 115.
In non-limiting embodiments, determining between automatic pairing and manual pairing may be based on a number of unpaired devices and/or a number of different types of unpaired devices. For example, in non-limiting embodiments, automatic pairing may be performed in response to determining that the detected beacon devices of the plurality of beacons 115 include one cradle device and three (or fewer) position sensors, where one and three are respective threshold values. In non-limiting embodiments, manual pairing may be initiated in response to determining that the detected beacon devices of the plurality of beacons 115 include more than one cradle and/or more than three position sensors. In this manner, a single cradle may be automatically paired, but a manual pairing process may be initiated if multiple cradles are detected. Likewise, up to three position sensors may be automatically paired, but if there are additional detected position sensors, a manual pairing process may be initiated so that the user can choose the appropriate position sensors to pair (which may include three sensors, less than three sensors, or more than three sensors). In non-limiting embodiments, automatic pairing may be performed in response to determining not to manually pair the plurality of beacons 115 and/or manual pairing may be performed in response to determining not to automatically pair the plurality of beacons 115.
In non-limiting embodiments, the control device 110 or some other computing device may determine a state of each beacon device of the plurality of beacons 115, such as the unpaired beacon 185, based on beacon signals it receives. The states may include, for example, a first state in which the beacon device of the plurality of beacons 115 is available to be paired to at least one control device 110, a second state in which the beacon device of the plurality of beacons 115 is available to be paired to the control device 110 and is within a threshold distance of the control device 110, and a third state in which the beacon device of the plurality of beacons 115 is already paired to the control device 110. Each beacon of the plurality of beacons 115 may notify its corresponding state through a visual or audible notification, such as a light emitting diode (LED) indicator having a color or pattern.
In non-limiting embodiments, configuration data for the control device 110 may be compared to detected beacon devices of the plurality of beacons 115 to determine whether to initiate automatic pairing or manual pairing. For purposes of illustration, the configuration data may list X paired cradles and Y paired position sensors and the detected beacon devices of the plurality of beacons 115, from scanning wireless signals, may include Z unpaired cradles and N unpaired position sensors. Thus, in a non-limiting example, automatic pairing may be initiated in response to determining that the value of X+Z (total number of cradle devices) is equal to or less than one and the value of Y+N (total number of position sensors) is equal to or less than three. In another non-limiting example, manual pairing may be initiated in response to determining that X+Z is equal to or less than one and that Y+N is greater than three. In another non-limiting example, manual pairing may be initiated in response to determining that X+Z is greater than one and Y+N is greater or equal to three. It will be appreciated that various threshold values and comparisons may be used.
The unpaired beacon 185 may include an indicator (e.g., an LED indicator) operable to illuminate in response to successful pairing with the control device 110. For example, the LED indicator may illuminate as a flashing light when in an unpaired status and then transition to a solid white illumination responsive to pairing with the control device 110. Alternatively, and/or additionally, one of the unpaired beacons 185 or the control device 110 may emit sound or haptic feedback to the user. In response to an indication of pairing, a UI controller 130 may display a validation UI for the user to confirm the intent to pair the control device 110 with the unpaired beacon 185.
The beacon pairing module 180 may include a pairing engine 190 to detect whether the distance between the control device 110 and the unpaired beacon 185 is within a defined threshold. The threshold distance may include a proximate distance (e.g., 70 cm) meant for the user to approach the beacon device of the plurality of beacons 115 for pairing or, in other examples, may include a further distance (e.g., up to several meters) meant to validate that the beacon of the plurality of beacons 115 is likely in the same room and/or building as the control device 110. The pairing engine 190 may include one or more hardware and/or software components and, in non-limiting embodiments, may include one or more software functions executable by the control device 110 or some other computing device. The pairing engine 190 may leverage a UWB time of flight technique to calculate the pairing distance. In particular, the control device 110 may exchange electromagnetic pulses with the unpaired beacon 185. The pairing engine 190 is operable to measure a time of travel of the electromagnetic pulse between the unpaired beacon 185 and the control device 110 (i.e., time of flight). Based on the measured time of travel, the pairing engine 190 may calculate the distance between the control device 110 and the unpaired beacon 185, as the velocity of the pulse is known. It will be noted that the time of travel may be measured based on more than one calculation of the travel time between the control device 110 and the unpaired beacon 185. For example, symmetrical double-sided two-way ranging (SDS-TWR) may be implemented by the pairing engine 190 to more accurately calculate the travel time of the pulse and the resultant distance between the control device 110 and the unpaired beacon 185. Implementing the SDS-TWR may involve using two delays in signal transmission to determine the range between the control device 110 and the unpaired beacon 185.
The paired beacons of the plurality of beacons 115 may be stored as configuration data local and/or remote to the control device 110. The configuration data may be used to generate one or more UIs, determine between automatic and manual pairing, determine a number of unpaired devices, and/or the like. For example, configuration data may include a paired beacon database 195 associated with the beacon pairing module 180. The paired beacon database 195 may be embedded within the beacon pairing module 180 or remotely located and communicatively coupled to the beacon pairing module 180. In response to the initialization of the control device 110 (e.g., upon powering up the control device 110), the plurality of beacons 115 within signal transmission range may automatically communicate with the control device 110. In particular, the control device 110 may detect presence of the plurality of beacons 115 while the beacon pairing module 180, operating on the control device 110, is configured to identify respective ones of the plurality of beacons 115 stored in the paired beacon database 195. In response to such identification, transmission of data between the plurality of beacons 115 and the control device 110 may initiate substantially upon booting of the control device 110 without requiring a repetitive pairing process. The control device 110 may be operable to control one or more of the plurality of devices 105 via the plurality of UIs 402. In particular, commands may be transmitted between the control device 110 and the plurality of devices 105 via at least one of infrared (IR), Bluetooth®, Zigbee®, WiFi®, UWB, or the like. For example, the control device 110 and the plurality of devices 105 may transmit and receive commands via the network 125. It will be appreciated that “pairing” of the plurality of beacons 115 with the control device 110 allows for identification of particular beacons of the plurality of beacons 115 such that communication may take place between the paired beacons of the plurality of beacons 115 and the control device 110 in subsequent exchanges.
It will be appreciated that the system 100 (e.g., the pairing engine 190) may be configured to automatically implement a firmware upgrade (or “forced” upgrade) of respective beacons of the plurality of beacons 115 upon detection of respective ones of the plurality of beacons 115, even prior to pairing the respective beacons of the plurality of beacons 115 in the system 100. For example, in non-limiting embodiments, regardless of whether or not a particular beacon of the plurality of beacons 115 is paired, the system 100 will “force” a firmware upgrade in response to determining that an upgrade is available, that a current firmware is outdated or nonfunctional, or the like.
According to some non-limiting embodiments, before initiating the pairing process described above, the system 100 may detect at least one of the beacons of the plurality of beacons 115 having an outdated firmware version installed therein. For example, the outdated firmware version installed on the beacon of the plurality of beacons 115 may be unsuitable for implementing the above-described pairing process. Responsive to detecting the outdated firmware, the system 100 may update the firmware detected on the at least one of the beacons of the plurality of beacons 115 and provide a notification to the user that the firmware update is in progress.
Additionally, in some non-limiting embodiments, before initiating the pairing process described above and responsive to detecting an in-progress firmware update on the at least one of the beacons of the plurality of beacons 115, the system 100 may provide a notification to the user indicating the in-progress status of the firmware update.
In some non-limiting embodiments, the control device 110 may take the form of a smart remote, smart phone, tablet, or any mobile computing device configured to transmit commands to the plurality of devices 105 either directly or via the network 125. The control device 110 may take the form of a universal remote configured to display respective ones of the plurality of UIs 402 associated with the plurality of devices 105. The plurality of UIs 402 displayed on the control device 110 may be indicative of and correspond to the particular one of the plurality of devices 105 the control device 110 is targeting. For example, responsive to the control device 110 pointing toward the smart TV 105a, the UI associated with the smart TV 105a may be displayed on the plurality of devices 105. In another embodiment, responsive to the control device 110 pointing toward a vicinity of a first and second one of the plurality of devices 105, a first UI of the plurality of UIs 402 may be automatically displayed on the control device 110 while a second UI of the plurality of UIs 402 is available for display in response to a user input. The first UI of the plurality of UIs 402 may be the control interface associated with the smart TV 105a while the second UI of the plurality of UIs 402 may be the control interface associated with the set top box 105b. As will be described in more detail below, the system 100 is operable to implement a Dynamic Spatial Selection Algorithm (DSSA) to determine a likelihood that the smart TV 105a and the set top box 105b are targeted by the control device 110. In some non-limiting embodiments (as will be referred to later as a “fixed mode”), the control device 110 may have all of the plurality of UIs 402 respectively associated with the plurality of devices 105 available for display in response to the user input. For example, the user input may take the form of a manual gesture on the control device 110 by the user such as a swipe, shake, or the like. The manual gesture may result in a transition between respective ones of the plurality of UIs 402 on the control device 110, regardless of a position and orientation of the control device 110.
The interface module 120 comprises the UI controller 130, a selection engine 135, and a carousel module 140. In one non-limiting embodiment, the UI controller 130, the selection engine 135, and the carousel module 140 are remotely located and communicatively coupled to one another via a network such as Wi-Fi® or the like. The carousel module 140 further comprises a primary interface layer 145 and a secondary interface layer 150. The primary interface layer 145 is configured to store the first UI of the plurality of UIs 402 while the secondary interface layer 150 is configured to store at least the second UI of the plurality of UIs 402. In one non-limiting embodiment, the secondary interface layer 150 stores one or more of the plurality of UIs 402, while the primary interface layer 145 stores the first UI of the plurality of UIs 402. The one or more of the plurality of UIs 402 stored in the secondary interface layer 150 are associated with respective ones of the plurality of devices 105 that are within a threshold proximity relative to the smart TV 105a. In other words, the UIs of the plurality of UIs 402 in the secondary interface layer 150 are associated with the plurality of devices 105 that are in substantially close proximity to the plurality of devices 105 with the first UI in the plurality of UIs 402.
As mentioned above, the first UI of the plurality of UIs 402 in the primary interface layer 145 may be automatically displayed on the control device 110. However, one or more of the plurality of UIs 402 in the secondary interface layer 150 may be displayed in response to manual gestures by the user on the control device 110. For example, upon display of the first UI of the plurality of UIs 402 from the primary interface layer 145, the user may input a gesture (e.g., swiping finger on the display screen) via the control device 110 to indicate a request for a change in the displayed UI of the plurality of UIs 402. In one non-limiting embodiment, the plurality of devices 105 controlled by the displayed first UI of the plurality of UIs 402 may not be the intended target of the user. In such a scenario, the user may manually gesture the control device 110 to toggle between the plurality of UIs 402 in the secondary interface layer 150 until a desired UI of the plurality of UIs 402 for a particular one of the plurality of devices 105 is displayed on the control device 110.
In non-limiting embodiments, the primary interface layer 145 comprises a carousel zone and a control zone. For example, a first UI of the plurality of UIs 402 associated with a first device may be stored in the primary interface layer 145. The carousel zone may store a graphical icon associated with the first device and the control zone may store a graphical control interface associated with the first device. In such a non-limiting embodiment, the UI controller 130 actuates the carousel module 140 to display the first UI of the plurality of UIs 402 responsive to identification of the first device (as will be described in more detail below). Display of the first UI of the plurality of UIs 402 includes display of the graphical icon from the carousel zone, where the graphical control interface from the control zone is displayed responsive to the displayed graphical icon. In one example, the graphical control interface may include multiple UIs of the plurality of UIs 402 within the control zone that may be manually scrolled through by the user. For example, for the smart TV 105a, the control zone may be a transitional graphical control interface that automatically or manually transitions between various portions of the graphical control interface as displayed on the control device 110.
The UI controller 130 may be configured to actuate display on the control device 110 of select ones of the plurality of UIs 402 associated with respective ones of the plurality of devices 105. The plurality of UIs 402 are operable to control operation of the plurality of devices 105 by having one or more input settings pertaining to respective ones of the plurality of devices 105. For example, the input settings for a particular one of the UIs of the plurality of UIs 402 may include volume, channel, light intensity, ride sharing request button, or the like. It will be appreciated by those of ordinary skill in the art that any type of input settings is contemplated by this disclosure and the examples provided herein are merely for purposes of illustrating the functionality of the system 100 and its components.
In particular, the UI controller 130 may actuate the carousel module 140 to display the UI of the plurality of UIs 402 stored within the primary interface layer 145 and actuate display of the plurality of UIs 402 stored in the secondary interface layer 150 responsive to the user command via the control device 110. The user command may, for example, be a swiping gesture or any other physical interaction of the user with the control device 110.
The UI controller 130 may be communicatively coupled to the control device 110 to cause display of the first UI of the plurality of UIs 402 in response to a determination by the system 100 that the smart TV 105a is targeted for control by the control device 110. Furthermore, responsive to the control device 110 being in a “point and control” mode (e.g., an automatic operating mode) and the control device 110 pointing toward a vicinity of both the smart TV 105a and the set top box 105b, the UI controller 130 initially actuates display of the first UI of the plurality of UIs 402 on the control device 110 while the UI controller 130 makes the second UI of the plurality of UIs 402 available for display on the control device 110. As will be described in more detail below, the smart TV 105a may have the greatest likelihood of being the intended targeted device of the plurality of devices 105 while the set top box 105b has the second highest likelihood of being the intended targeted device of the plurality of devices 105.
The selection engine 135 is communicatively coupled to the carousel module 140, the UI controller 130, and the control device 110. The selection engine 135 is configured to define a spatial selection zone Z (as will be shown in more detail in
In one non-limiting embodiment, the selection engine 135 may identify all respective ones of the plurality of devices 105 that are within the spatial selection zone Z having a probability value within a defined probability threshold. For example, the selection engine 135 may operate to identify the spatial coordinates having probability values greater than a defined probability threshold (e.g., greater than 0.4). Then, each of the plurality of devices 105 having spatial coordinates or regions R (to be described in more detail herein) that overlap with the identified spatial coordinates are classified as potential intended targeted devices of the plurality of devices 105 for control by the control device 110. In response to such determination, the carousel module 140 operates to store associated UIs of the plurality of UIs 402 of the potential targeted devices of the plurality of devices 105. In particular, the UI of the plurality of UIs 402 of the smart TV 105a mapped to the spatial coordinate with the highest probability value may be stored in the primary interface layer 145, while the UIs of the plurality of UIs 402 of remaining devices of the plurality of devices 105 classified as potential target devices of the plurality of devices 105 are stored in the secondary interface layer 150. The UI controller 130 may automatically actuate display of the first UI of the plurality of UIs 402 from the primary interface layer 145, while actuating display of the plurality of UIs 402 stored in the secondary interface layer 150 in response to the user's gesture (e.g., finger swipe on a display of the control device 110). Additional details of the spatial selection zone Z and the UI display based on selection probabilities will be described below with reference to
In non-limiting embodiments, the control device 110 may be a single remote control that operates as a universal controller for the plurality of devices 105. In some non-limiting embodiments, the control device 110 may take the form of a smart phone, tablet computer, wearable computing device, remote control, or any other computing device. The control device 110 may be configured to display selective ones of the plurality of UIs 402 to control the plurality of devices 105. The respective ones of the plurality of UIs 402 selected for display on the control device 110 and/or for storage in the primary interface layer 145 and the secondary interface layer 150 is at least partially based on the selection zone determination by the selection engine 135. As mentioned above, the spatial selection zone Z is dynamically updated based on the real-time position and orientation of the control device 110. Such real-time position and orientation information is calculated based, at least in part, on one or more of the LPS receiver 160, the IMU 165, the distance sensor 185, the IR transmitter 190, and the wireless transceiver 195 of the control device 110. It will be appreciated to those of ordinary skill in the art that the control device 110 and the plurality of devices 105 referenced herein may encompass many other types of devices. Some examples include, but are not limited to, a video game controller (such as virtual pointing system in a virtual reality (VR) game), a pointing device for selecting three-dimensional objects in a Computer-Aided Design (CAD) system, or a headset controller for a Mixed Reality (MR) system.
The LPS receiver 160 may, for example, be leveraged for indoor localization technologies, such as UWB or EMF. The LPS receiver 160 used in UWB technology makes it possible to geolocate items indoors with an accuracy of the order of a few centimeters to a few tenths of a centimeter. The UWB technology may be capable of determining a position in the order of 2.5 to 5 meters. The LPS receiver 160 may be in communication with the plurality of beacons 115, where the plurality of beacons 115 may utilize localization chips based on the UWB technology. As such, the plurality of beacons 115 may communicate wirelessly between each other and with the control device 110 to implement the LPS receiver 160 using, for example, UWB technology. The localization of the plurality of beacons 115 may also be implemented based on lateration, tri-lateration, or multi-lateration techniques. It will be appreciated by those of ordinary skill in the art that the communication technology employed by the plurality of beacons 115 and the control device 110 may include any other technology. As will be described in more detail below, because the control device 110 may be associated with the plurality of beacons 115, the control device 110 may leverage the known positioning of the plurality of beacons 115 to identify its own position relative to the plurality of beacons 115.
The IMU 165 may, for example, comprise one or more of a magnetometer 170, a gyroscope 175, and the beacon pairing module accelerometer 180. The IMU 165 is configured to capture physical variables of the control device 110 in space and, thus, orientation. Capturing various physical variables of the control device 110 in space may advantageously improve accuracy of the orientation determination of the control device 110. The physical variables may, for example, be captured by one or more of the magnetometer 170, the gyroscope 175, and the beacon pairing module accelerometer 180. The magnetometer 170 may be used in the LPS receiver 160 when the EMF technology is leveraged. The magnetometer 170 may detect the direction, strength, or relative change of a magnetic field at the control device 110. The gyroscope 175 may additionally be leveraged for measuring or maintaining orientation and angular velocity of the control device 110. Finally, the beacon pairing module accelerometer 180 may measure translational acceleration along three axes as well as rotation about the three axes.
The IR transmitter 190 and the wireless transceiver 195 may be leveraged by the control device 110 to transmit commands to the plurality of devices 105. For example, the control device 110 may transmit commands to the plurality of devices 105 via the IR transmitter 190 using IR communication protocols. In another example, the wireless transceiver 195 may be leveraged to transmit commands via Bluetooth®, Zigbee®, Wi-Fi®, UWB, or the like.
Various methods for determining the position of the control device 110 are contemplated by the disclosure. In some non-limiting embodiments, a travel time of a radio signal between the control device 110 and the plurality of beacons 115 may be determined. For example, a technique of radio signal time of arrival (TOA) or time differences of arrival (TDOA) may be implemented. Alternatively, and/or additionally, non-limiting embodiments may include calculating received power of a radio signal at the control device 110 or at the plurality of beacons 115. Alternatively, and/or additionally, non-limiting embodiments may include determining angles of reception of the radio signals received at the control device 110 or at least one of the plurality of beacons 115. The angle of reception may advantageously allow for implementation of a triangulation by using at least one of the beacons of the plurality of beacons 115. Alternatively, and/or additionally, in some non-limiting embodiments, a measurement of electromagnetic fields at the control device 110 or at least one of the beacons of the plurality of beacons 115 may be determined. Coupling the above positioning methods together with the captured physical variables of the control device 110 via the IMU 165, the position and orientation of the control device 110 may be identified.
The interface module 120 may leverage the above positioning and orientation measurement methodologies to identify the region R for each of the plurality of devices 105. The region R may comprise a spatial area or volume associated with a particular one of the plurality of devices 105. A position of each of the plurality of devices 105 may also be identified by leveraging the ability to identify the location of the control device 110. In one non-limiting embodiment, the control device 110 may be placed in proximity with respective ones of the plurality of devices 105. When placed in proximity, the interface module 120, communicatively coupled to the plurality of beacons 115 and the control device 110, may identify the region R associated with the particular device of the plurality of devices 105. For example, the user of the control device 110 may indicate to the system 100 that implementation of defining the region R for one of the plurality of devices 105 will begin. As such, the interface module 120 may map the determined location of the control device 110 as the region R for the particular device of the plurality of devices 105. This methodology may be repeated for each device of the plurality of devices 105. As such, the interface module 120 may store a mapping of the plurality of devices 105 with the associated regions R.
In other non-limiting embodiments, the regions R associated with the plurality of devices 105 may or may not be a mirror of a physical location of a respective device of the plurality of devices 105. The regions R may encompass a spatial volume or area that is greater or less than the size of the actual device of the plurality of devices 105. For example, the user may bring the control device 110 to a location adjacent to the desired device of the plurality of devices 105 to be mapped in the system 100. The adjacent location may be a desired distance away from the actual device of the plurality of devices 105 to be mapped. In some non-limiting embodiments, the control device 110 may be moved to multiple corners of the desired device of the plurality of devices 105 such that the interface module 120 creates the region R within the actual physical boundaries of the device of the plurality of devices 105 itself. In some non-limiting embodiments, the interface module 120 may be programmed to create a buffer zone outside the actual physical boundaries of the plurality of devices 105 being mapped. It will be appreciated by those of ordinary skill in the art that the above method may be implemented to create the regions R at any desired location of the user, irrespective of the actual physical location of the plurality of devices 105 being mapped into the interface module 120 of the system 100.
For example, the user may wish to create the region R for a particular device of the plurality of devices 105 at an upstairs location (e.g., a space on an upstairs wall, window, doorway, refrigerator, etc.) where the user frequents on a more regular basis, while the device of the plurality of devices 105 is physically located at a downstairs location. As another example, the user may wish to associate the region R of a particular device of the plurality of devices 105 with an entire wall area. As an alternative example, where multiple devices of the plurality of devices 105 are substantially proximate to the other, the user may cause the system 100 to define the respective regions R for each of those proximate devices of the plurality of devices 105 more narrowly. In other words, the regions R associated with such devices of the plurality of devices 105 may be substantially the same size of the physical devices of the plurality of devices 105 or less than the actual physical size of the plurality of devices 105. Furthermore, it will be appreciated that the regions R described herein may be of two-dimensional (2D) space or three-dimensional (3D) space.
The interface module 120 may be communicatively coupled to the control device 110 and/or the plurality of beacons 115. The interface module 120 may extrapolate, from the real-time positioning and orientation measurements of the control device 110, a selection zone vector V representing a defined distance and direction from the control device 110. The selection zone vector V may, for example, point outwardly in one direction from a point on the control device 110. Based on the selection zone vector V, the interface module 120 may further extrapolate the spatial selection zone Z. The spatial selection zone Z may comprise a spatial area surrounding the selection zone vector V. For example, the spatial selection zone Z may be a 2D or 3D spatial field encompassing a defined distance around the selection zone vector V. As illustrated in
The spatial selection zone Z is dynamically updated as the control device 110 being operated moves in space in response to the user movement. As mentioned above, the selection engine 135 is configured to define the spatial selection zone Z based on the location and orientation of the control device 110. The spatial selection zone Z includes the plurality of spatial coordinates having associated selection probabilities. The selection probabilities refer to a probabilistic likelihood that the respective device of the plurality of devices 105 located in a particular spatial coordinate (e.g., X, Y or X,Y,Z) of the plurality of spatial coordinates was intended for control by the control device 110. Said differently, the plurality of spatial coordinates (e.g., 3D or 2D coordinates) comprise points in space having variable likelihoods that a particular point in space is being pointed at by the control device 110. In the example illustration of
In response to real-time determination of the spatial selection zone Z, the interface module 120 may determine whether any of the regions R, having been mapped to respective devices of the plurality of devices 105, are encompassed at least in part within the spatial selection zone Z. If a single one of the plurality of devices 105 is at least partially encompassed in the spatial selection zone Z, then the UI of the plurality of UIs 402 associated with that device of the plurality of devices 105 is automatically displayed on the control device 110. In the
In some non-limiting embodiments, there may be more than one device of the plurality of devices 105 located within the spatial selection zone Z. Such a non-limiting embodiment can be shown with respect to
As described above, a first UI 402a associated with the first device D1 may be stored in the primary interface layer 145 of the carousel module 140. On the other hand, the second device D2 and the third device D3 may have respective second and third UIs 402b, 402c stored in the secondary interface layer 150.
According to some non-limiting embodiments, the UI controller 130 may actuate the carousel module 140 to display the first UI 402a (associated with the first device D1) stored within the primary interface layer 145 on the control device 110. The display of the first UI 402a on the control device 110 may occur in response to the identification of the first device D1 having a first value equating to the highest probability value of all selection probabilities. Furthermore, the UI controller 130 may actuate alternate display of the second and third UIs 402b, 402c (associated with the second device D2 and the third device D3, respectively) stored in the secondary interface layer 150 on the control device 110. In particular, as will be described in more detail below, the second UI 402b or the third UI 402c may be alternately displayed on the control device 110 responsive to the user command via the control device 110. In particular, upon initial display of the first UI 402a on the control device 110, the user may effectively override the displayed first UI 402a with the second UI 402b or the third UI 402c by way of the user command. The user command may, for example, be a swiping gesture or any other physical interaction of the user with the control device 110. In such example, the user may desire to override the first UI 402a with either the second or the third UIs 402b, 402c because the intended target device of the plurality of devices 105 to be controlled may have been the second device D2 or the third device D3. The second device D2 and/or the third device D3 may be in substantially close proximity to the first device D1. For example, the second device D2 and the third device D3 may have associated second and third selection probability values that are within a defined threshold variance from the first probability value associated with the first device D1. In some non-limiting embodiments, the defined threshold probability variance between devices of the plurality of devices 105 within proximity of the other may be defined by the user or automatically set by the system 100.
The secondary interface layer 150 may include any number of the plurality of UIs 402 associated with further devices of the plurality of devices 105. The number of the plurality of UIs 402 stored in the secondary interface layer 150 for display on the control device 110 in response to the user gesture depends on the defined threshold probability variance between the first device D1 and other devices of the plurality of devices 105. For example, responsive to the defined probability variance being substantially high, there may be a large number of device UIs included within the secondary interface layer 150. On the other hand, a low defined probability variance may amount to only a small number of device UIs being included within the secondary interface layer 150.
As mentioned above, the UI controller 130 is configured to actuate display on the control device 110 of select ones of the plurality of UIs 402 associated with respective ones of the plurality of devices 105. The plurality of UIs 402 are operable to control operation of the plurality of devices 105 by having one or more input elements or settings pertaining to respective ones of the plurality of devices 105. In some non-limiting embodiments, respective ones of the plurality of UIs 402 may include data and interface modules 120 implemented as graphical UIs configured to invoke control functions of the associated plurality of devices 105. Each of the interfaces of the plurality of UIs 402 may comprise label modules 404 configured to communicate the particular device of the plurality of devices 105 being controlled by the control device 110 and/or a subset of interface functions included in the respective interface of the plurality of UIs 402. In the
The plurality of UIs 402 may additionally include one or more data items 406 indicating a status of the device of the plurality of devices 105 being controlled by the particular UI of the plurality of UIs 402. For example, the status of the device of the plurality of devices 105 may indicate whether the interface module 120 is operating in a “point and control” mode or a “fixed” mode, as will be described below. Each UI of the plurality of UIs 402 may further include one or more input elements 408a-c configured as defined functions performed in response to the selection of respective ones of the one or more input elements 408a-c. The one or more input elements 408a-c may, for example, take the form of buttons, sliders, data entry fields, or the like. In the
During operation of the control device 110, the user may activate the system 100 to operate in a “point and control” mode (e.g., an automatic operating mode) or a “fixed” mode (e.g., a manual operating mode). The “point and control” mode may refer to the selection engine 135 operating in real-time to determine which device of the plurality of devices 105 the control device 110 is targeting for control. As described above, the selection engine 135 is configured to define the spatial selection zone Z based on the location and orientation of the control device 110. The spatial selection zone Z includes the plurality of spatial coordinates having associated selection probabilities. The selection probabilities refer to a probabilistic likelihood that the respective device of the plurality of devices 105 (or the associated region R) located at one or more particular spatial coordinates (e.g., X,Y or X,Y,Z) of the plurality of spatial coordinates was intended for control by the control device 110. In response to real-time determination of the spatial selection zone Z, the interface module 120 may determine whether any of the regions R, having been mapped to respective devices of the plurality of devices 105, are encompassed at least in part within the spatial selection zone Z.
The selection engine 135 may identify, in real-time, the three regions R associated with the sound system 105c, the smart TV 105a, and the set top box 105b as being at least partially included within the spatial selection zone Z. In response to such determination, the selection engine 135 may determine the probability values associated with each of the sound system 105c, the smart TV 105a, and the set top box 105b. As described above, these probability values associated with the particular spatial coordinates are identified by the selection engine 135 and used to stack rank the sound system 105c, the smart TV 105a, and the set top box 105b based on the likelihood of intended selection by the user. The selection engine 135 may identify the first device D1 having highest likelihood of intended selection as being the sound system 105c, while the second device D2 having a second highest likelihood of intended selection as being the set top box 105b. Alternatively, and/or additionally, the third device D3 having a third highest likelihood of intended selection may be determined as the smart TV 105a.
As illustrated in
In particular, the plurality of UIs 402a-c may be arranged in a loop configuration. Initially, the first UI 402a may be automatically displayed on the control device 110. Responsive to the user command (e.g., a swiping gesture), the second UI 402b may override the first UI 402a and thus appear on the control device 110 display. Responsive to another user gesture or command on the control device 110, the third UI 402c may be displayed. Furthermore, a subsequent user gesture may cause the first UI 402a to reappear on the control device 110 display. As such, the plurality of UIs 402a-c may be displayed sequentially as the user scrolls through the loop arrangement of the plurality of UIs 402a-c.
In the embodiment illustrated in
The carousel module 140 may be actuated to operate in the “point and control” mode or the “fixed mode” in response to a swiping gesture or any other physical gesture on the control device 110 by the user. An indication of the mode of operation may be on the control device 110 via the one or more data items 406.
Depending on the desired configuration, the one or more processors 610 may be of any type, including, but not limited to, a microprocessor (UP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. The one or more processors 610 may include one or more levels of caching (such as a level one cache 611 and a level two cache 612), a processor core 613, and registers 614. An example of the processor core 613 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a DSP Core, or any combination thereof. An example of a memory controller 615 may also be used with the one or more processors 610 or, in some implementations, the memory controller 615 may be an internal part of the one or more processors 610.
Depending on the desired configuration, the system memory 620 may be of any type, including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.), or any combination thereof. The system memory 620 may include an operating system 621, one or more applications 622, and program data 624. The one or more applications 622 may include a DSSA 623 that is arranged to define the spatial selection zone Z associated with the location and orientation of the control device 110. The program data 624 includes selection probability data, position and orientation data of the control device 110, the regions R associated with respective ones of the plurality of devices 105, and other data 625 that is useful to identify the one or more devices of the plurality of devices 105 intended to be controlled by the user and stack rank the plurality of UIs 402 associated with the one or more devices of the plurality of devices 105 based on selection probabilities, as described above. In some embodiments, the one or more applications 622 may be arranged to operate with the program data 624 on the operating system 621 such that the first UI 402a of the first device D1 having the greatest probability of intended selection by the user is displayed on the control device 110, with an option for the user to manually gesture or swipe the control device 110 to alternatively display other ones of the second or the third UIs 402b, 402c associated with the plurality of devices 105 having less probability of intended selection. The described basic configuration 601 is illustrated in
The computer device 600 may have additional features or functionality and additional interfaces to facilitate communications between the basic configuration 601 and any required devices and interfaces. For example, a bus/interface controller 640 may be used to facilitate communications between the basic configuration 601 and one or more data storage devices 650 via a storage interface bus 641. The one or more data storage devices 650 may be removable storage devices 651, non-removable storage devices 652, or a combination thereof. Examples of the removable storage devices 651 and the non-removable storage devices 652 include magnetic disk devices such as flexible disk drives and hard-disk drives (HDD), optical disk drives (such as compact disk (CD) drives or DVD drives), solid state drives (SSD), and tape drives, to name a few. Example computer storage media may include volatile and nonvolatile as well as removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.
The system memory 620, the removable storage devices 651, and the non-removable storage devices 652 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by the computer device 600. Any such computer storage media may be a part of the computer device 600.
The computer device 600 may also include an interface bus 642 for facilitating communication from various interface devices (e.g., output interfaces, peripheral interfaces, and communication interfaces) to the basic configuration 601 via the bus/interface controller 640. An example of output devices 660 include a graphics processing unit 661 and an audio processing unit 662, which may be configured to communicate to various external devices, such as displays or speakers via one or more A/V ports 663. An example of peripheral interfaces 670 include a serial interface controller 671 or a parallel interface controller 672, which may be configured to communicate with external devices, such as input devices (e.g., a keyboard, a mouse, a pen, a voice input device, a touch input device, etc.) or other peripheral devices (e.g., a printer, a scanner, etc.) via one or more I/O ports 673. An example of a communication device 680 includes a network controller 681, which may be arranged to facilitate communications with one or more other computing devices 690 (e.g., the control device 110, the plurality of devices 105, the plurality of beacons 115) over a network communication link via one or more communication ports 682.
The network communication link may be one example of communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or another transport mechanism, and may include any information delivery media. A “modulated data signal” may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not a limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, IR, and other wireless media. The term “computer readable media,” as used herein may include both storage media and communication media.
The computer device 600 may be implemented as a portion of a small-form factor portable (or mobile) electronic device, such as a cell phone, a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that includes any of the above functions. The computer device 600 may also be implemented as a personal computer including both laptop computer and non-laptop computer configurations. In another example, the computer device 600 may be a cloud-based server system communicatively coupled to the control device 110 and the plurality of beacons 115 via the network 125.
The present disclosure is not to be limited in terms of the particular examples described in this application, which are intended as illustrations of various aspects. Many modifications and examples can be made without departing from its spirit and scope, as will be apparent to those skilled in the art. Functionally equivalent methods and apparatuses within the scope of the disclosure, in addition to those enumerated herein, will be apparent to those skilled in the art from the above descriptions. Such modifications and examples are intended to fall within the scope of the appended claims. The present disclosure is to be limited only by the terms of the appended claims, along with the full scope of equivalents to which such claims are entitled. It is to be understood that this disclosure is not limited to particular methods, which can, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular examples only, and is not intended to be limiting.
With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.
It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.).
It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation, no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to examples containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and/or “an” should be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, means at least two recitations, or two or more recitations).
Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general, such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to “at least one of A, B, or C, etc.” is used, in general, such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B.”
As will be understood by one skilled in the art, for any and all purposes, such as in terms of providing a written description, all ranges disclosed herein also encompass any and all possible subranges and combinations of subranges thereof. Any listed range can be easily recognized as sufficiently describing and enabling the same range being broken down into at least equal halves, thirds, quarters, fifths, tenths, etc. As a non-limiting example, each range discussed herein can be readily broken down into a lower third, middle third and upper third, etc. As will also be understood by one skilled in the art all language such as “up to,” “at least,” “greater than,” “less than,” and the like include the number recited and refer to ranges which can be subsequently broken down into subranges as discussed above. Finally, as will be understood by one skilled in the art, a range includes each individual member. Thus, for example, a group having 1-3 items refers to groups having 1, 2, or 3 items. Similarly, a group having 1-5 items refers to groups having 1, 2, 3, 4, or 5 items, and so forth.
Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present disclosure. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.
This application is a continuation of U.S. patent application Ser. No. 17/274,413, filed Mar. 8, 2021, which is a 35 U.S.C. 371 filing of International Application No. PCT/IB2019/057549, filed Sep. 6, 2019, which claims the benefit of provisional patent application Ser. No. 62/728,733, filed Sep. 7, 2018, the disclosures of which are hereby incorporated herein by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
62728733 | Sep 2018 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17274413 | Mar 2021 | US |
Child | 19040226 | US |