IP Library › Granted Patent US 9,258,677
Granted Patent B2
US 9,258,677 · App. 14/086,810 · Granted Feb 9, 2016

Improving scalability and reliability of hardware geo-fencing with failover support

Inventors: Sanjib Saha (Sammamish, WA); Fernando Gonzalez (Bellevue, WA); Shaun Hedrick (Seattle, WA); Parmjeet Singh (Seattle, WA); Ashish Gadre (Kirkland, WA); Frank Gorgenyi (Bremerton, WA); Mark Inderhees (Woodinville, WA); Janet Schneider (Bellevue, WA); Stuart Harper (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
H04W4/021G01S19/34G01S19/48
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,258,677
App. No.
14/086,810
Granted
Feb 9, 2016
Kind
B2
Abstract

Systems and methods disclosed herein may include tracking one or more geo-fences using a GNSS hardware processor within a computing device. The tracking may use at least one GNSS signal. State changes of the one or more geo-fences during the tracking may be saved in a shared state database. The shared state database may be shared between the GNSS hardware processor and an application processor within the computing device. Upon detecting a deterioration of the at least one GNSS signal, tracking the one or more geo-fences may be switched from using the GNSS hardware processor to using the application processor. After the switching, an initial state of each of the one or more geo-fences may be set by using states currently stored in the shared state database prior to the switching.

Claims (48)

1. A method, comprising:

tracking one or more geo-fences using a Global Navigation Satellite System (GNSS) hardware processor within a computing device, wherein:

the tracking uses at least one GNSS signal; and

state changes of the one or more geo-fences during the tracking are saved in a shared state database, the shared state database shared between the GNSS hardware processor and an application processor within the computing device; and

upon detecting inability by the GNSS hardware processor to determine location:

switching from tracking the one or more geo-fences using the GNSS hardware processor to tracking the one or more geo-fences using the application processor; and

after the switching, setting an initial state of each of the one or more geo-fences using states currently stored in the shared state database prior to the switching.

2. The method according to claim 1 , comprising identifying, at the computing device, the one or more geo-fences for tracking and wherein:

the GNSS signal comprises a GPS signal and the GNSS hardware processor comprises a GPS hardware processor operable to determine location using at least one GPS signal.

3. The method according to claim 2 , wherein the identifying comprises at least one of:

retrieving the one or more geo-fences from storage; and

receiving the one or more geo-fences from at least one application executing on the computing device.

4. The method according to claim 1 , comprising:

detecting occurrence of at least one geo-fence event based on a location of the computing device in proximity to a selected one of the one or more geo-fences.

5. The method according to claim 4 , wherein the at least one geo-fence event comprises a geo-fence enter event or a geo-fence exit event.

6. The method according to claim 4 , comprising:

upon detecting the occurrence of the at least one geo-fence event, recording a state change in the shared state database for the selected one of the one or more geo-fences.

7. The method according to claim 6 , wherein the state change comprises:

an entry state change indicating that a location of the computing device has moved from outside the selected one of the one or more geo-fences to inside the selected one of the one or more geo-fences; and

an exit state change indicating that a location of the computing device has moved from inside the selected one of the one or more geo-fences to outside the selected one of the one or more geo-fences.

8. The method according to claim 1 , comprising:

monitoring, after the switching, condition of the at least one GNSS signal using the GNSS hardware processor.

9. The method according to claim 8 , wherein the GNSS hardware processor is in a passive state during the monitoring.

10. The method according to claim 8 , comprising:

upon detecting ability of the GNSS processor to determine location:

switching from tracking the one or more geo-fences using the application processor to tracking the one or more geo-fences using the GNSS hardware processor; and

after the switching, setting an initial state of each of the one or more geo-fences using the states currently stored in the shared state database prior to the switching.

11. The method according to claim 1 , comprising:

saving the state changes of the one or more geo-fences during the tracking in the shared state database and in a secondary storage accessible by the computing device.

12. A computing device, comprising:

a GNSS hardware processor configured to track one or more geo-fences using at least one GNSS signal;

an application processor configured to take over tracking the one or more geo-fences upon deterioration of the at least one GNSS signal; and

a shared state database configured to store state changes of the one or more geo-fences during the tracking, wherein:

the shared state database is shared between the GNSS hardware processor and the application processor;

upon switching from tracking the one or more geo-fences using the GNSS hardware processor to tracking the one or more geo-fences using the application processor, the application processor being operable to set an initial state of each of the one or more geo-fences using states currently stored in the shared state database prior to the switching; and

upon detecting an improvement of the at least one GNSS signal:

switching back from tracking the one or more geo-fences using the application processor to tracking the one or more geo-fences using the GPS hardware processor; and

after the switching back, setting an initial state of each of the one or more geo-fences using the states currently stored in the shared state database prior to the switching back.

13. The computing device of claim 12 , comprising:

at least one location determination module operable to determine location of the computing device in relation to the one or more geo-fences upon switching to tracking the one or more geo-fences using the application processor.

14. The computing device of claim 13 , wherein:

the at least one location determination module is operable to determine the location of the computing device based on one or more of Wi-Fi signal positioning, network address positioning, and cellular signal positioning.

15. The computing device of claim 12 , wherein the GNSS hardware processor and the application processor are both configured to:

detect occurrence of at least one geo-fence event based on a location of the computing device in proximity to a selected one of the one or more geo-fences, wherein the at least one geo-fence event comprises a geo-fence enter event or a geo-fence exit event; and

upon detecting the occurrence of the at least one geo-fence event, record a state change in the shared state database for the selected one of the one or more geo-fences.

16. The computing device of claim 15 , wherein the state change comprises:

an entry state change indicating that a location of the computing device has moved from outside the selected one of the one or more geo-fences to inside the selected one of the one or more geo-fences; and

an exit state change indicating that a location of the computing device has moved from inside the selected one of the one or more geo-fences to outside the selected one of the one or more geo-fences.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2013
From: SAHA, SANJIB; GONZALEZ, FERNANDO; HEDRICK, SHAUN; SINGH, PARMJEET; GADRE, ASHISH; GORGENYI, FRANK; INDERHEES, MARK; SCHNEIDER, JANET; HARPER, STUART
To: MICROSOFT CORPORATION
Reel/Frame 031658/0013 →
Continuity (1)
Related Publication 20150141037A1 · May 21, 2015