Patent Document

CLAIM OF PRIORITY UNDER 35 U.S.C. §119 
       [0001]    The present application for patent claims priority to Provisional Application No. 61/640,722, entitled “SYSTEMS, METHODS, AND/OR APPARATUSES FOR IMPLEMENTATION AND/OR UTILIZATION OF A GEOFENCE”, having Attorney Docket No. 122502P1, filed May 1, 2012; Provisional Application No. 61/655,982, entitled “GEOFENCE BREACH LATENCY”, having Attorney Docket No. 122779P1, filed Jun. 5, 2012; Provisional Application No. 61/655,985, entitled “GEOFENCE BREACH CONFIDENCE”, having Attorney Docket No. 122780P1, filed Jun. 5, 2012; and Provisional Application No. 61/655,987, entitled “MECHANISM TO REDUCE MISSING BREACH DETECTION IN GEOFENCING SOLUTION”, having Attorney Docket No. 122795P1, filed Jun. 5, 2012; and all assigned to the assignee hereof and hereby expressly incorporated by reference herein. 
       REFERENCE TO CO-PENDING APPLICATIONS FOR PATENT 
       [0002]    The present application for patent is related to the following co-pending U.S. patent applications:
       “GEOFENCE BREACH CONFIDENCE”, having Attorney Docket No. QC122780, filed concurrently herewith, assigned to the assignee hereof, and expressly incorporated by reference herein; and   “MECHANISM TO REDUCE MISSING BREACH DETECTION IN GEOFENCING SOLUTION”, having Attorney Docket No. QC122795, filed concurrently herewith, assigned to the assignee hereof, and expressly incorporated by reference herein.       
 
     
    
     FIELD OF DISCLOSURE 
       [0005]    The present invention relates to cellular phone technology, and more particularly, to geofences. 
       BACKGROUND 
       [0006]    A geofence is a virtual fence surrounding a geographic location and provides notification when a mobile device enters or leaves the geofence. Geofence capability is getting increased attention in the smartphone application and gaming market. Many application developers are creating innovative use-cases for geofences. Such examples include child location services which can notify the parents when a child leaves a designated area, wildlife management which sends alerts when wildlife strays into farmland, or advertising services which can send out coupons or offers when a person is near a shop. 
         [0007]    A variety of positioning technologies, such as standalone GPS/GNSS (Global Positioning System/Global Navigation Satellite System), AGPS/AGNSS (Assisted GPS/GNSS), WWAN (Wireless Wide Area Network) signal based, Cell-ID based, Wi-Fi based, Sensors based, may be used to track the location of a geofencing mobile device. Continuous tracking of a mobile device results in very responsive geofence performance with high power consumption that reduces battery life. Providing responsive geofence solutions in a power optimized way can be a challenge. 
       SUMMARY 
       [0008]    Embodiments of the invention are directed to systems and methods for a mobile device to efficiently use a geofence capability without draining its battery, and to allow flexibility in specifying various parameters related to geofencing, such as the latency and confidence in determining when or where a geofence breach occurs, and reducing the probability of not detecting a geofence breach. 
         [0009]    In an embodiment, a method comprises: providing a first geofence client to a first processor in a mobile device, wherein a first geofence client specifies a first geofence and a first latency setting; running a first process on the first processor associated with the first geofence, the first process to generate a set of results associated with the mobile device and the first geofence; providing a second geofence client to the first processor, wherein the second geofence client specifies a second geofence and a second latency setting larger than the first latency setting; and running a second process on the first processor associated with the second geofence, the second process to wake up a second processor in the mobile device in response to the set of results indicating a breach of the second geofence. 
         [0010]    In another embodiment, a mobile device includes at least one sensor to provide at least one signal; a first processor to warn of a breach of a first geofence to a first geofence client according to a first latency setting based on the at least one signal; the first processor to run a first process associated with the first geofence, the first process to generate a set of results based on the at least one signal; the first processor to warn of a breach of a second geofence to a second geofence client according to a second latency setting based on the at least one signal, the second latency setting larger than the first latency setting; and a second processor, the first processor to run a second process associated with the second geofence, the second process to wake up the second processor in response to the set of results indicating a breach of the second geofence. 
         [0011]    In another embodiment, a mobile device includes means for sensing to provide at least one signal; a first means for processing to warn of a breach of a first geofence to a first geofence client according to a first latency setting based on the at least one signal; the first means for processing to run a first process associated with the first geofence, the first process to generate a set of results based on the at least one signal, the set of results including a distance of the mobile device to the first geofence and a velocity of the mobile device towards the first geofence; the first means for processing to warn of a breach of a second geofence to a second geofence client according to a second latency setting based on the at least one signal, the second latency setting larger than the first latency setting; and a second means for processing, the first means for processing to run a second process associated with the second geofence, the second process to wake up the second means for processing in response to the set of results indicating a breach of the second geofence. 
         [0012]    In another embodiment, a computer-readable storage medium has stored instructions that when executed by a processor cause a method comprising: providing a first geofence client to a first processor in a mobile device, wherein the first geofence client specifies a first geofence and a first latency setting; running a first process on the first processor associated with the first geofence, the first process to generate a set of results associated with the mobile device and the first geofence, the set of results including a distance of the mobile device to the first geofence and a velocity of the mobile device towards the first geofence; providing a second geofence client to the first processor, wherein the second geofence client specifies a second geofence and a second latency setting larger than the first latency setting; and running a second process on the first processor associated with the second geofence, the second process to wake up a second processor in the mobile device in response to the set of results indicating a breach of the second geofence. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    The accompanying drawings are presented to aid in the description of embodiments of the invention and are provided solely for illustration of the embodiments and not limitation thereof. 
           [0014]      FIG. 1  is a system view of an embodiment. 
           [0015]      FIG. 2  illustrates the embodiment of  FIG. 1  in use in a cellular phone network. 
           [0016]      FIG. 3  illustrates an architecture according to an embodiment. 
           [0017]      FIG. 4  illustrates a low confidence geofence breach according to an embodiment. 
           [0018]      FIG. 5  illustrates a high confidence geofence breach according to an embodiment. 
           [0019]      FIG. 6  illustrates a method according to an embodiment for reducing the probability of missing a geofence breach detection by providing a time update interval based upon a predicted time. 
           [0020]      FIG. 7  illustrates a method according to an embodiment for providing the predicted time interval used in the embodiment of  FIG. 6 . 
           [0021]      FIG. 8  illustrates a method according to another embodiment. 
           [0022]      FIG. 9  illustrates a method according to another embodiment. 
       
    
    
     DETAILED DESCRIPTION 
       [0023]    Aspects of the invention are disclosed in the following description and related drawings directed to specific embodiments of the invention. Alternate embodiments may be devised without departing from the scope of the invention. Additionally, well-known elements of the invention will not be described in detail or will be omitted so as not to obscure the relevant details of the invention. 
         [0024]    The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. Likewise, the term “embodiments of the invention” does not require that all embodiments of the invention include the discussed feature, advantage or mode of operation. 
         [0025]    The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of embodiments of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises”, “comprising”, “includes” and/or “including”, when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. 
         [0026]    Further, many embodiments are described in terms of sequences of actions to be performed by, for example, elements of a computing device. It will be recognized that various actions described herein can be performed by specific circuits (e.g., application specific integrated circuits (ASICs)), by program instructions being executed by one or more processors, or by a combination of both. Additionally, these sequence of actions described herein can be considered to be embodied entirely within any form of computer readable storage medium having stored therein a corresponding set of computer instructions that upon execution would cause an associated processor to perform the functionality described herein. Thus, the various aspects of the invention may be embodied in a number of different forms, all of which have been contemplated to be within the scope of the claimed subject matter. In addition, for each of the embodiments described herein, the corresponding form of any such embodiments may be described herein as, for example, “logic configured to” perform the described action. 
         [0027]      FIG. 1  is a simplified abstraction of a mobile device in which embodiments may find application. The mobile device, labeled  102 , comprises an antenna  104 , a modem  106 , and a processor  108 . Modem  106  communicates with the processor  108  by way of a modem interface  110 . Modem  106  includes a memory  112  for storing software instructions for execution by the modem  106 . 
         [0028]    It should be appreciated that the labeled blocks in  FIG. 1  represent functional units, comprising hardware and software components. One or more semiconductor dice (chips) may be used to realize a functional unit. For example, the modem  106  may comprise more than one semiconductor chip. 
         [0029]    The mobile device  102  may be a cellular phone or tablet used in a cellular phone network. For example,  FIG. 2  illustrates a cellular phone network  202  comprising base stations  204 A,  204 B, and  204 C, where the mobile device  102  is located within the cell associated with base station  204 C. Arrows  208  and  210  pictorially represent the uplink channel and the downlink channel, respectively, by which the mobile device  206  communicates with the base station  204 C. 
         [0030]    Many prior art geofence solutions are applications that execute on the processor  108 , where the processor  108  continuously tracks the location of the mobile device  102  using positioning technologies such as GPS/Wi-Fi. One prior art example is called the “proximity alert”. Data shows that a considerable amount of power is consumed when an application processor, e.g., the processor  108 , is running so as to execute a typical geofencing application utilizing positioning technologies. 
         [0031]    Embodiments described herein provide a power optimized geofencing software solution which gates the use of high power and high precision position sources with low power and low precision position sources, without impacting geofencing performance. Embodiments execute on the modem  106 , so that the processor  108  may be alerted, or woken up and alerted, to deliver breach notification to the geofencing application running on the processor  108 . 
         [0032]    Embodiments may integrate Zero Power Positioning (ZPP) technology and the Gen8 GNSS core into the modem  106  for an optimal balance of responsiveness and power consumption across many geofence scenarios. This integration saves considerable power compared to running a geofencing service on the processor  108 , or compared to hosted GPS/GNSS solutions where GPS/GNSS measurements are provided by a standalone chip not integrated with the modem  106 . 
         [0033]    To date, there is no established set of parameters to measure geofencing quality of service and performance. QoS (Quality of Service) parameters considered in these letters patent include the following. 1) Breach Confidence: Given a geofence breach, what is the probability that the breach event did happen at the exact geofence boundary? The higher the confidence, the lower the false breach notifications, and vice versa. 2) Breach Responsiveness Given a geofence breach, what is the latency in breach detection by software? A lower latency implies higher responsiveness and lower missed breaches, and vice versa. 3) Power Usage: Defined as the total energy consumption (power used over time) with the geofence system enabled, minus the total energy consumption under identical circumstances in which the geofence system is disabled. 
         [0034]    Embodiments provide a geofence modem service that executes (runs) on the modem  106  and only needs to alert, or to wake up and alert, the processor  108  when a breach notification needs to be sent to a geofencing application running on the processor  108 . The processor  108  is not needed for geofence breach monitoring. The modem service takes care of optimizing the power needed. 
         [0035]    The modem service monitors the state of all geofences in the system and determines the next set of actions to take based on the needs of all geofences. The state of a geofence is mainly determined by its current distance from the mobile device  102 . For example, if all the geofences in the system are say 50 miles from the mobile device  102 , then the location of the device does not need to be monitored say every second, and a low accuracy location (with larger horizontal error) would suffice for geofencing operations. 
         [0036]    The issue of location accuracy brings into play a Location Source Determination function which determines which available location determination source can be used (using the lowest power) to provide the current location accuracy needs. This module gates the use of high power high precision location sources (e.g., a cold GNSS engine) with a low power low precision location sources (e.g., a Cell-ID based location). 
         [0037]    To balance the power usage and QoS guarantees, embodiments employ a method that may be termed an Early Backoff Early Exit. This method aggressively back offs (Early Backoff) from making a location determination if it is not really needed due to present conditions, e.g., the device is stationary or far from the geofence, or if the location cannot be determined for the accuracy needed, e.g., a high accuracy location is desired but the GNSS signals are very weak. 
         [0038]    To aggressively back off from making a location determination, there should be sufficient fast triggers to determine when a location fix is needed again, e.g., the mobile device starts moving, or to detect a change in the mobile device&#39;s environment which would enable the previously impaired location sources (e.g., the GNSS signal strength is strong again), thus enabling an Early Exit from the previously entered back off Determining the location of the mobile device  102  consumes more power than compared to determining the location with less precision, all other environmental factors being the same. As a result, power can be saved when backing off from high precision location fixing if the high precision is not needed or high precision sources are unavailable. 
         [0039]    Consequently, an engine implementing the Early Backoff Early Exit method will back off from high precision location fixing if the probability of breaching a geofence is determined to be low, or if high precision sources are not available. An Early Backoff Early Exit High engine will exit the back off state when high precision location fixing is needed, provided that the probability of breaching a geofence is determined to no longer be low, or such probability is considered indeterminate, or if the high precision sources are available. 
         [0040]      FIG. 3  illustrates a system architecture according to an embodiment. A high-level operating system (HLOS)  302  communicates with the modem  106  by way of the modem interface  110 . The modules labeled  304 - 316  represent sources of data and measurements available to the Early Exit Decision Engine  318  and the Early Backoff Decision Engine  320 , which together comprise the Early Backoff Early Exit Engine  322 . Some of the modules labeled  304 - 316  may include receivers, such as the sensors  310  and  315 . 
         [0041]    The Core Geofence Module  324  (embedded in the modem  106 ) provides processing for much of the procedures discussed here so as to alert, or to wake up and alert, the processor  108  when a geofence breach occurs by signaling to the HLOS Geofence Client  326 . 
         [0042]    For many embodiments, it is expected that the largest sources of location information are WWAN-based and from ZPP position information. ZPP technology is based on determining location from existing measurements that are already available to the modem  106 . Other information includes velocity of the mobile device based on PPM (Pulse Position Modulation) measurements in a CDMA (Code Division Multiple Access) tracking cell, Cell-ID, and RAT (Radio Access Technology) changes. 
         [0043]    Other data for determining when a geofence breach occurs includes an Area ID list. This list may include WWAN cell ID information regarding the border of a geofence, or WWAN cell ID information for cells completely within a geofence. These lists may be provided by AGPS (Assisted-GPS) networks. 
         [0044]    Other methods for determining a geofence breach include an Advanced Distance Based Backoff method. This method reduces the rate at which location is fixed when the mobile device  102  is relatively far away from the geofence, and takes into consideration cell change events which are available to the modem  106 . For example, the Advanced Distanced Based Backoff method calculates the minimum number of cell changes to reach a geofence boundary. By keeping track of cell changes, the method may determine when the geofence is near and whether other sources for location fixing should be accessed. 
         [0045]    Other methods for determining a geofence breach include a Dynamic Power Optimization Aware method. This method reduces the rate of location tracking if the GNSS engine enters into a DPO (Dynamic Positioning Operator) state. 
         [0046]    Another method includes Positioning Fix Accuracy Setting. In this method, there are three zones outside a geofence: a near zone, and intermediate zone, and a far zone. Only low position accuracy is required for the far zone, whereas higher accuracy is needed for the intermediate zone, and the highest accuracy is needed for the near zone. Other embodiments may choose a different number of zones. 
         [0047]    Latency may be defined as the time duration from when a geofence breach actually occurs to when the modem  106  ascertains that the breach has occurred. Geofences are set for various reasons for alerting an interested entity when the mobile device breaches a geofence. All geofences do not need the same level of service in terms of latency of breach notification. Some geofences can tolerate more latency (delay) in alerting the breach and still be useful for the purpose they were set. For example, a latency of two minutes after a breach may be sufficient for a geofence set on a venue to track how many people arrive, whereas a latency for a geofence set on a school to track a child might need a notification within 10 seconds after the child has left the school geofence. 
         [0048]    Embodiments allow the mobile device user (or administrator of the geofence) to choose the desired latency from a discrete set, such as for example where the latency can be either low (small) or high (large). Some embodiments may have more than two discrete levels for the set of latencies. The methods described involve parameters that determine latency. Such parameters include thresholds by which the Early Backoff Early Exit engine determines whether to back off or resume fixing the location. These and other parameters include the rate at which location is updated, the threshold for the number of cell changes that signifies a geofence breach, the size and number of the zones outside the geofence in the Positioning Fix Accuracy Setting method, and the velocity of the mobile device  102 , to name a few examples. 
         [0049]    Tracking geofences at low latency has a higher power cost. In the case in which more than two geofences are set on the mobile device  102 , the measured data for determining a geofence breach may be shared between the two modem processes running on the Core Geofence Module  324 . In this way, there is further power efficiency. That is, when more than one geofence is set, embodiments allow the processes running on the modem to share results computed due to the needs of the lowest latency geofence. This allows improved latency than needed at no extra cost of all geofences. 
         [0050]      FIG. 9  is a flow diagram illustrating the above-described embodiment. Block  902  indicates that a first geofence client is provided to modem  106  with a first latency setting. Note that more generally, a processor other than a modem may serve a geofence client and run processes associated with that geofence, but for ease of discussion a modem is referred to as the processor running the processes associated with a geofence. Continuing with  FIG. 9 , block  904  indicates that a first process is run on modem  106  to generate a set of results comprising physical parameters indicative of the relationship of the mobile device to the first geofence. For example, the set of results may include the distance of the mobile device to the first geofence, a number of cell changes as the mobile device moves, and the velocity component of the mobile device towards the first geofence, as previously discussed. Block  906  indicates that a second geofence client is provided to the modem with a second latency setting. This second latency setting may be larger than the first latency setting. Block  908  indicates that a second process, associated with the second geofence, is run on the modem, and wakes up an application processor of the mobile device (e.g., processor  108 ) when the set of results indicates a breach of the second geofence. In this way, the first and second processes share the parameters within the set of results. Comparing one or more of the various parameters in the set of results with various thresholds may indicate a geofence breach, as discussed previously. 
         [0051]    All geofences do not need the same level of service in terms of confidence of a breach notification. Higher confidence means a higher probability that the breach took place at the actual geofence boundary, not some appreciable distance from it. Some geofences can tolerate a lower breach confidence and still be useful for the purpose they were set. For example, a geofence breach notification 200 meters before or after an actual breach may be sufficient for a geofence set on a device to tell when a person arrives at a mall, whereas a geofence set on a school to track a child might need a notification when the child is not more than a few meters into a breach. 
         [0052]    Tracking geofences at high confidence incurs a higher power cost. Every positioning technology provides a position with inherent uncertainty; in general it takes more time (and power) to reduce the uncertainty of the fix (position). To provide a lower breach confidence solution with the benefit of lower power, some embodiments described here run a high power positioning source for a smaller amount of time. 
         [0053]    To illustrate, consider  FIGS. 4 and 5  where a mobile device moves toward a geofence.  FIG. 4  shows a relatively large position uncertainty ellipse  402  with respect to a geofence  404 . A mobile device is deemed inside even at 50% overlap of the position uncertainly ellipse  402  with the geofence  404 . This results in relatively low confidence, but requires relatively low power.  FIG. 5  shows a relatively small position uncertainty ellipse  502  with respect to a geofence  504 . A mobile device is deemed inside where there is at least 95% overlap of the position uncertainty ellipse  502  with the geofence  504 . This results in relatively high confidence, which requires relatively high power. 
         [0054]    In some cases, a high uncertainty position (small uncertainly ellipse) can be determined using positioning sources such as WWAN, which consumes less power than a higher power consumption source such as GNSS/GPS. However, in some cases, embodiments may run a GNSS/GPS receiver under certain conditions but for a relatively small time duration. 
         [0055]    Embodiments allow the mobile device user (or administrator of the geofence) to choose the desired breach confidence from a discrete set, such as for example where the breach confidence can be either low (small) or high (large). Some embodiments may have more than two discrete levels for the set of breach confidences. The methods described involve parameters that determine breach confidence. Such parameters include the particular kind of receiver (positioning source) chosen to fix location, and the length of time for which such receivers are active to fix the location. 
         [0056]    A user may specify a breach confidence value or setting from a discrete set of values, and the modem  106  may select a combination of receiver and time interval for collecting location information that yields the desired breach confidence setting. This information may be stored as a table in the memory  112  of the modem  106 . Entries in the table are indexed by a breach confidence setting, where an entry stores a receiver and time interval that yield the desired breach confidence setting. 
         [0057]      FIG. 8  is a flow diagram illustrating the above-described embodiment. A user selects a setting for the desired breach confidence ( 802 ). Based upon the selected breach confidence setting, a receiver in the mobile device is selected ( 804 ) and the time interval over which the selected receiver is to be operated is also selected ( 806 ). During the selected time interval, location information is obtained from the selected receiver ( 808 ), and from this location information the position of the mobile device is calculated ( 810 ). If a determination is made that there is a breach of the geo-fence ( 812 ), then the application processor is alerted ( 814 ). If the processor is in a sleep state, then it is to be understood that the alert also includes waking up the processor. If there is no detection of a geofence breach, then the position of the mobile device may be updated at a later time. 
         [0058]    Other embodiments help to mitigate missing a geofence breach detection by adjusting the location update time interval, depending upon velocity of the mobile device. As discussed previously, the time interval at which the mobile device&#39;s location is updated may depend upon such factors as the desired latency and confidence of breach. This calculated time interval may further be modified to take into account the velocity of the mobile device in order to reduce the probability of missing a geofence due to the motion of the mobile device. The term “location calculation interval” may be used to refer to the value of the location update time interval before it is adjusted to take into account velocity as described below. 
         [0059]    To calculate the location of a mobile device, a geofence solution may use different location technologies such as GPS, Wi-Fi, or cell sector based technologies, for example. Each location technology varies in its accuracy and its susceptibility to the local environment of the mobile device. In some environments, the GPS, Wi-Fi, or other cell sector based signal may be non-existent or of such low power that a location cannot be practically determined for a mobile device in such an environment. 
         [0060]    Suppose at some time instant a mobile device enters a geofence having a poor or non-existent location signal environment, but where the modem  106  has not yet indicated to the processor  108  a geofence breach because at the most recent location calculation interval the mobile device was sufficiently far way from the geofence that a breach was not detected. At the next location calculation update, it is possible that the location of the mobile device will not be determined, resulting in missing breach detection. 
         [0061]    An example of a geofence having a poor signal environment is a geofence set tight around a house, office, or store, where inside the building there may be a weak or non-existent location signal environment. 
         [0062]    In an embodiment, the modem  106  reduces the value of the location calculation interval to provide an adjusted location interval, based on the measured velocity of the mobile device. This increases the rate at which location is updated, which increases the probability that a geofence breach will indeed be detected. 
         [0063]    Embodiments track the velocity of the mobile device by maintaining a history of previous GPS fixes. Embodiments may also provide velocity estimates based upon accelerometer sensors. Embodiments calculate a predicted velocity by applying a weighted average to past measured velocities, where a higher weight is given to relatively recent measured velocities and larger (in magnitude) velocities. 
         [0064]    For example, suppose “velocity” denotes the component of a velocity vector in the direction of a geofence, and let V i  denote a measurement of the component of the velocity vector toward a geofence at time instant t i . The index i ranges over some integer set, such as {1, 2, . . . , A}, where the integer N denotes a number of measurements. Then for some embodiments, a weight W i  is given by 
         [0000]        W   i =( V   i   +W   C   /L   i , 
         [0000]    where W C  is a constant weight and L i  is how far back in time a measurement was taken for the velocity component V i . That is, L i =t−t i , where t is the present time for which the weight W i  is being calculated, and t i  is the time at which the velocity component V i  was measured. Alternatively, the above displayed equation could be written as 
         [0000]        W   i ( t )=( V   i   +W   C )/( t−t   i ), 
         [0000]    where the explicit time dependence of the weight is indicated. 
         [0065]    Embodiments give the predicted velocity component towards the geofence at time t, denoted as V P  (t), as 
         [0000]        V   P ( t )=(Σ V   i   W   i )/Σ W   i ,
 
         [0000]    where the summations are over the index i. Weighted averaging helps to smooth out the effects of acceleration and de-acceleration, as well as velocity jumps. 
         [0066]    With V P  (t) given above, a predicted time interval (relative to the present time) to perform a location fix, denoted as T P , is given by 
         [0000]        T   P =( D   B   −X   C )/ V   P , 
         [0000]    where D B  denotes the present distance of the mobile device to the geofence boundary, and where X C  denotes the distance before the boundary for which it is desired to attempt a location fix. 
         [0067]    If T P  is less than the present location calculation interval, then T P  is taken as the new update interval. Otherwise, the present location calculation interval is not adjusted. 
         [0068]    Embodiments employing the above method for adjusting the update interval are expected to reduce the probability of missing geofence detections at the expense of a higher update rate. This will consume more power. Accordingly, if the location calculation interval has been adjusted, then embodiments employ an exit mechanism whereby the update interval is set back to the value of the location calculation interval before it was adjusted, provided that it is beneficial to do so. 
         [0069]    For some embodiments, the update interval is set back to the value of the location calculation interval if the mobile device is detected to be moving away from the geofence, or if the mobile device has not entered the geofence for some specified time T since the interval adjustment. 
         [0070]    Once exited, the above procedure for adjusting the location calculation interval may be started again after some time interval, when the mobile device has moved a considerable distance from the geofence, or the next time there is a geofence breach, to give just a few examples. 
         [0071]      FIG. 6  illustrates a method according to the above-described embodiments. A value for the location calculation interval is determined based on a geofence and a set of parameters ( 601 ). Initially, the update interval for fixing the location is set to the location calculation interval ( 602 ). The location of the mobile device is updated according to the update interval ( 603 ). If a set of entrance criteria is met ( 604 ), then an update interval engine calculates the predicted time interval T P  discussed previously ( 606 ). The set of entrance criteria may include whether the mobile device is within some pre-determined distance from the geofence, or the component of the mobile device&#39;s velocity toward the geofence is greater than some threshold, for example. If the set of entrance criteria is not met, then control is returned back to  602 . 
         [0072]    Provided the entrance criteria have been met, the calculated predicted time interval T P  is compared to the update interval ( 608 ). If T P  is not less than the update interval, then control is brought to  602 , whereas if it is less than the update interval, then the update interval is adjusted so that it is set equal to the T P  ( 610 ). 
         [0073]    If the exit criteria have been met ( 612 ), then control is brought back to  602 , otherwise, the update interval stays set to T P  ( 610 ). 
         [0074]    The entrance criteria may be termed a set of entrance criteria to indicate that it may comprise only one entrance criterion, and the exit criteria may be termed a set of exit criteria to indicate that it may comprise only one exit criterion. 
         [0075]      FIG. 7  illustrates a method according to the above-described embodiments to providing the predicted time interval T P . The component of velocity toward the geofence boundary is measured or estimated at various time instances ( 702 ), and a weight is calculated for each velocity ( 704 ) value generated in box  702 . These velocity values are weighted to provide a predicted velocity ( 706 ) that is used to calculate a predicted time interval T P  ( 708 ) as described previously. 
         [0076]    As described with respect to the above embodiments, there are power tradeoffs involved in choosing the latency and confidence (uncertainty ellipses) associated with geofence breaches, and that such tradeoffs include choosing the kind of location source that is accessed by the modem. Table 1 collects several location sources into three groups: High Confidence, Medium Confidence, and Low Confidence. For purposes of discussion, nominal definitions for these three levels of confidence may be taken as follows. High Confidence: 95% or greater overlap between the geofence and the position uncertainty ellipse calculated from a positioning source; Medium Confidence: 50% or greater overlap (but not greater than 95%) between the geofence and the position uncertainty ellipse; and Low Confidence: any form of geofence breach determination which is less confident than a medium level. Embodiments are not limited to these definitions, which are given merely to serve as examples. In Table 1, “TBF” stands for “time between (location) fixes.” 
         [0000]    
       
         
               
               
               
               
             
               
               
               
               
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 Geofence Breach 
                 High Confidence 
                 Medium Confidence 
                 Low Confidence 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 Hi Latency 
                 1. 
                 Standalone 
                 1. 
                 High 
                 1. 
                 High 
               
               
                 [TBF = 15 minutes] 
                   
                 GPS/GNSS 
                   
                 Confidence 
                   
                 Confidence 
               
               
                 Medium Latency 
                 2. 
                 Assisted 
                   
                 source used in 
                   
                 source used in 
               
               
                 [TBF = 2 minutes] 
                   
                 GPS/GNSS 
                   
                 low power 
                   
                 low power 
               
               
                 Low Latency 
                 3. 
                 Standalone 
                   
                 mode 
                   
                 mode 
               
               
                 [TBF = 10 sec] 
                   
                 GPS/GNSS with 
                 2. 
                 WWAN MSB 
                 2. 
                 Medium 
               
               
                   
                   
                 Orbit prediction 
                 3. 
                 Wi-Fi AP 
                   
                 Confidence 
               
               
                   
                   
                 data 
                   
                 based 
                   
                 source used in 
               
               
                   
                 4. 
                 AGPS/AGNSS 
                 4. 
                 Sensor based 
                   
                 low power 
               
               
                   
                   
                 with orbit 
                 5. 
                 Future 
                   
                 mode 
               
               
                   
                   
                 prediction data 
                   
                 equivalent 
                 3. 
                 WWAN Cell 
               
               
                   
                 5. 
                 Future equivalent 
                   
                 sources 
                   
                 Based 
               
               
                   
                   
                 sources 
                   
                   
                 4. 
                 Sensor based 
               
               
                   
                   
                   
                   
                   
                 5. 
                 Future 
               
               
                   
                   
                   
                   
                   
                   
                 equivalent 
               
               
                   
                   
                   
                   
                   
                   
                 sources 
               
               
                   
               
             
          
         
       
     
         [0077]    Given a confidence level, multiple choices exist for using any particular location source. An important criterion for choosing a source is to choose the one that uses the least power to determine a position. This is not always straightforward. Some observations follow: If a GPS engine was used recently (say 1 second ago) and it has orbit prediction data available, it may make more sense to request a GPS fix for medium confidence instead of using a Wi-Fi based position fix. If there is another application requesting position fixes, these can be tapped into without an explicit request from geofencing. 
         [0078]    Further observations follow: Non-positioning sources, such as motion detection, may be used to limit the rate at which the position uncertainty is increased. Such non-positioning sources may be combined with motion prediction data from WWAN and Wi-Fi application process information to give a more reliable motion prediction. In the limiting case when the mobile device is determined to be static, no new position fixing is needed for geofencing purposes. The location source determination takes that into account if some positioning sources are not available or turned off by the user. 
         [0079]    In general, for many embodiments the location source is determined based on the 1) usage history of all the location sources; 2) the current state of the location source; and 3) the property of individual location sources. 
         [0080]    Those of skill in the art will appreciate that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof. 
         [0081]    Further, those of skill in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. 
         [0082]    The methods, sequences and/or algorithms described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. 
         [0083]    Accordingly, an embodiment of the invention can include a computer readable media embodying a method to use a geofence capability in a mobile device in a power efficient manner. Accordingly, the invention is not limited to illustrated examples and any means for performing the functionality described herein are included in embodiments of the invention. 
         [0084]    While the foregoing disclosure shows illustrative embodiments of the invention, it should be noted that various changes and modifications could be made herein without departing from the scope of the invention as defined by the appended claims. The functions, steps and/or actions of the method claims in accordance with the embodiments of the invention described herein need not be performed in any particular order. Furthermore, although elements of the invention may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.

Technology Category: h