Method and apparatus for detecting access points

By optimizing the determination of the channel and scanning time interval in the client station, the problem of low communication efficiency between mobile or wearable devices and WLAN access points is solved, and battery resources and location identification time are reduced.

CN114731611BActive Publication Date: 2025-10-17ZHUOSHI CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202080077657.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-11-01
Filing Date
2020-10-30
Publication Date
2025-10-17
Estimated Expiration
2040-10-30

AI Technical Summary

Technical Problem

In the prior art, the communication efficiency between mobile or wearable devices and wireless local area network access points is low, resulting in a waste of battery resources and location identification time.

Method used

By using database information on the client site to determine a subset of channels and scanning time intervals, the sending and receiving of probe requests and responses are optimized. Combined with the confirmation of geofenced areas, battery usage and location identification time are reduced.

Benefits of technology

It improves the communication efficiency between mobile or wearable devices and WLAN access points, and reduces battery consumption and location identification time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114731611B_ABST
    Figure CN114731611B_ABST
Patent Text Reader

Abstract

A system, method, and apparatus for improving communications between a mobile or wearable device and an access point of a wireless local area network. The method includes sensing, at a client station, a service set identifier of a wireless access network. The method also includes determining a subset of channels within the wireless access network by accessing information stored in a database, and determining a scan time interval associated with the service set identifier by accessing information stored in the database. Further, the method includes transmitting a probe request to an access point located within the wireless access network over the subset of channels, and receiving a probe response at the client station from the access point during the scan time interval. Further, the method includes identifying a location of the client station based on the probe response.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments described in this disclosure relate to wireless local area networks, and more particularly to scanning and probing for access points located within a wireless local area network. BACKGROUND

[0002] Mobile and / or wearable devices are equipped with various hardware and software components that can assist in connecting the device to a wireless local area network (WLAN). A WLAN is a type of wireless computer network that connects computers or devices within a given geographic area. A given mobile or wearable device that connects to a WLAN is referred to as a station (STA). To connect to a WLAN, a STA communicates with an access point (AP), such as a wireless router, which serves as a base station for the WLAN. Each WLAN is identified using a service set identifier (SSID), while an AP is identified using a media access control (MAC) address known as a basic service set identifier (BSSID).

[0003] The increasing reliance on WLAN communications has led to an increased demand for improved ways for mobile and wearable devices to interact with APs. Thus, there is a continuing need for mobile or wearable devices to communicate with APs in an efficient and reliable manner, while reducing the amount of network and mobile resources dedicated to such interactions. SUMMARY

[0004] To remedy the aforementioned deficiencies, the present disclosure presents systems, methods, and apparatuses that can improve communications between a mobile or wearable device and an AP of a WLAN.

[0005] In certain non-limiting embodiments, the present disclosure describes a method. The method can include sensing or detecting, at a client station, a service set identifier of a wireless access network. The wireless access network can operate on a radio frequency band of 2.4 gigahertz. The method can also include determining a subset of channels within the wireless access network by accessing information stored in a database, and determining a scan interval associated with the service set identifier by accessing information stored in the database. Determining the subset of channels and / or determining the scan interval can help reduce at least one of: battery usage at the client station or execution time for identifying a location of the client station.

[0006] Further, the method can include transmitting a probe request to an access point located within the wireless access network over the subset of channels, and receiving, at the client station, a probe response from the access point during the scan interval. The method can also include identifying the location of the client station based on the probe response.

[0007] In certain non-limiting embodiments, the method can include confirming that the client station is located in the predetermined geofenced area based on the identified location. In other non-limiting embodiments, the method can include confirming that the client station is located outside of the predetermined geofenced area based on the identified location, and sending an indication to the user device that the client station has left the predetermined geofenced area.

[0008] In some non-limiting embodiments, the method can include performing a plurality of multi-channel scans of the wireless access network at the client station. The method can also include storing probe responses received at the client station in a database. The probe responses can include at least one of signal strength information, a success rate, or an identification of a channel from which the probe response was received. In addition, the method can include performing a binary search to determine a scan time interval based on at least one of the signal strength information or the probe response success rate. The binary search can be performed while the client station is charging. The identification of the channel from which the probe response was received can be stored in a first-in-first-out buffer included in the database.

[0009] In other non-limiting embodiments, the method can include sending a query from the client station to the database to request a subset of channels, where the subset of channels is based on the identifications of channels stored in a buffer of the database. The sending of the query can occur while the client station is operating on battery power. Additionally, the subset of channels can be determined based on at least one of a most recent or a most frequently occurring channel of the channels stored in the buffer.

[0010] In certain non-limiting embodiments, the client station can include at least one non-volatile storage medium containing computer program code and at least one processor. The computer program code can be configured, when executed by the at least one processor, to cause the client station to sense or detect a service set identifier of a wireless access network. The computer program code can also be configured, when executed by the at least one processor, to cause the client station to determine a subset of channels within the wireless access network by accessing information stored in a database, and to determine a scan time interval associated with the service set identifier by accessing information stored in the database. In addition, the computer program code can be configured, when executed by the at least one processor, to cause the client station to send a probe request to an access point located within the wireless access network through the subset of channels, and to receive a probe response from the access point during the scan time interval. Additionally, the computer program code can also be configured, when executed by the at least one processor, to cause the client station to identify a location of the client station based on the probe response.

[0011] In some non-limiting embodiments, a method performed by an access point can include receiving a probe request from a client station at an access point located within a wireless access network over a subset of channels. The method can also include sending a probe response from the access point to the client station during a scan time interval. The probe response can be used to confirm whether the client station is within or outside a geo-fenced area.

[0012] In certain non-limiting embodiments, a client station can include at least one non-volatile storage medium containing computer program code and at least one processor. The computer program code can be configured, when executed by the at least one processor, to cause the client station to receive a probe request from a client station at an access point located within a wireless access network over a subset of channels. The computer program code can also be configured, when executed by the at least one processor, to cause the client station to send a probe response from the access point to the client station during a scan time interval. The probe response can be used to confirm whether the client station is within or outside a geo-fenced area. BRIEF DESCRIPTION OF DRAWINGS

[0013] The foregoing and other objects, features and advantages of the disclosure will be apparent from the following description of embodiments, as illustrated in the accompanying drawings, in which like reference numerals refer to like parts throughout the various views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosure:

[0014] Figure 1 FIGURE illustrates a system in accordance with certain non-limiting embodiments;

[0015] Figure 2 FIGURE illustrates a computing device in accordance with certain non-limiting embodiments;

[0016] Figure 3 FIGURE illustrates a client station in accordance with certain non-limiting embodiments;

[0017] Figure 4A FIGURE illustrates a database in accordance with certain non-limiting embodiments;

[0018] Figure 4B FIGURE illustrates a database in accordance with certain non-limiting embodiments;

[0019] Figure 5 FIGURE illustrates a system diagram with a client station and an access point in accordance with certain non-limiting embodiments;

[0020] Figure 6 FIGURE illustrates a system flow diagram depicting a system or method in accordance with certain non-limiting embodiments;

[0021] Figure 7 FIGURE illustrates a scan time interval chart in accordance with certain embodiments;

[0022] Figure 8 FIGURE illustrates a graph of a WLAN channel, according to certain embodiments;

[0023] Figure 9 FIGURE illustrates a flowchart, according to certain non-limiting embodiments;

[0024] Figure 10 FIGURE illustrates a flowchart, according to certain non-limiting embodiments;

[0025] Figure 11 FIGURE illustrates a flowchart, according to certain non-limiting embodiments;

[0026] FIGURE 12(a) illustrates a probe response graph, according to certain embodiments; and

[0027] FIGURE 12(b) illustrates a probe response graph, according to certain embodiments. DETAILED DESCRIPTION

[0028] There remains a need for a system, apparatus, and method that can improve communication between a mobile or wearable device and an AP of a WLAN. In certain embodiments, the mobile or wearable device can be referred to as a client station, user equipment, or STA. The presently disclosed subject matter addresses the aforementioned need, as well as other needs associated with WLANs and / or client stations. Specifically, a client station can utilize information stored in a database to determine a probe response scan interval and / or a subset channel through which to communicate with an AP. Based on the determined scan interval and subset channel, the client station can reduce the amount of battery resources used to transmit and receive probe requests and responses, respectively. The determined scan interval and subset channel can also help reduce the amount of time to identify a location of a given client station or to confirm that a client station is within or outside of a geofence region.

[0029] U.S. Patent Application No. 15 / 291,882 (now U.S. Patent No. 10,142,773 B2) and U.S. Patent Application No. 14 / 988,621 are incorporated by reference herein. All subject matter disclosed in the above-incorporated applications, including the specification, claims, and drawings, is incorporated herein.

[0030] The disclosure will now be described more fully with reference to the accompanying drawings, which form a part of this disclosure, and which show certain example embodiments by way of illustration. The subject matter of this disclosure, however, can be embodied in various different forms, and should not be construed as limited to any example embodiments set forth herein; rather, these example embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the full scope of the subject matter to one of ordinary skill in the art, and without intended limitation. Like reference signs refer to like elements in the figures.

[0031] As used in the specification and the appended claims, the singular forms "a," "an" and "the" include plural references unless the context clearly dictates otherwise. Thus, for example, a reference to an "access point" can include more than one access point.

[0032] As used herein, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, system, or apparatus that comprises a list of elements does not include only those elements but can include other elements not expressly listed or inherent to such process, method, article, system, or apparatus.

[0033] The term "client station" used in accordance with the present disclosure can refer to a user device, a STA, a wearable device, a wearable tracking device, a mobile device, or any other user device for communicating with an access point of a WLAN. For example, the client station can be a pet or animal wearable device, such as an animal or pet tracking device.

[0034] The term "access point" used in accordance with the present disclosure refers to any device, server, router, gateway, or base station for connecting a client station to a WLAN. In other words, the client station interfaces with the WLAN through the access point.

[0035] The term "animal" or "pet" as used in accordance with the present disclosure refers to domesticated animals, including but not limited to, a domestic dog, a domestic cat, a horse, a cow, a rabbit, a pig, a rat, a mouse, a gerbil, a hamster, a goat, and the like. Domestic dogs and domestic cats are particular non-limiting examples of pets. The term "animal" or "pet" as used in accordance with the present disclosure includes, but is not limited to, a duck, a fowl, and the like.

[0036] As used herein, the term "geo-fenced area" or "geo-fenced location" can be a predetermined, preselected, or known geographic area or location selected by a user. The geo-fenced area or location can be used to define a geographic area or location that a pet or animal is familiar with, such as the residence of the pet's owner or caretaker. In some examples, the latitude and longitude of a device can be determined using a global positioning system (GPS) or global navigation satellite system (GLONASS) receiver to determine a geo-fenced area or location. In other examples, a geo-fenced area, location, or presence can be determined using a predetermined, preselected, or known SSID of a WLAN network. When using SSID scanning or any other feature or measurement associated with a WLAN to determine a geo-fenced area or location, the geo-fenced area or location can be referred to as a "beacon area." In other words, in certain non-limiting embodiments, a client station can be determined to be in a given area or location when the client station is within the transmission range of a given access point. To determine whether a client station is inside or outside a geo-fenced location or area, the client station can send a probe request and receive a probe response from an AP of the WLAN network.

[0037] In the detailed description of the application, references are made to "an embodiment", "one embodiment", "an implementation", "certain implementations", "some implementations", "other implementations", "certain other implementations", etc. such references simply mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one implementation of the application. The appearances of the phrases "in one embodiment" or "in an embodiment" in various places in the specification are not necessarily all referring to the same embodiment, nor are the various embodiments necessarily mutually exclusive, as the different embodiments can be combined with each other in various ways. Furthermore, various features are described which can be implemented in different embodiments. Each of the features and combinations thereof can be implemented in various embodiments of the application without necessarily being mutually exclusive. Such features can be combined in various ways. The application as described encompasses all possibilities of combinations of features that can be realized in various embodiments.

[0038] The term "based on" can be understood as not necessarily intended to convey an exclusive set of factors, and instead can allow for additional factors not necessarily described, again, at least in part, depending on the context.

[0039] The term "processor" can be understood to mean any hardware or software for executing computer program instructions. These computer program instructions can be provided to the processor of a general purpose computer to alter its function for a particular purpose, to a special purpose computer, an application specific integrated circuit (ASIC), or other programmable digital data processing apparatus, such that the instructions executed by the processor of the client station or other programmable data processing apparatus implement the functions / acts specified in the block diagrams or one or more operational blocks to transform the function of the apparatus according to embodiments herein. In some non-limiting embodiments, the processor can be a portable embedded microcontroller or microcomputer.

[0040] The term "computer readable medium," "storage medium / mediation," or "memory" can be understood to mean any hardware or software for storing computer data. The data can include computer program code (or computer executable instructions) that is in a machine readable form that can be executed by a computer, client station, or access point. By way of example, and not limitation, a computer readable medium can comprise computer readable storage media or communication media. Computer readable storage media, as used herein, can be physical or tangible storage (as opposed to signals). Computer readable storage media can include volatile and non-volatile, 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. Computer readable storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (DVD), or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other physical or material medium tangible which can be used to tangibly store desired information or data or instructions and which can be accessed by a computer or processor. Figure 4A and Figure 4B An example embodiment of a database included within the non-volatile storage 400 is shown.

[0041] Computer readable storage media or memory can include, but is not limited to, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), flash memory or other solid state memory technology, or any other tangible medium which can be used to store desired information or data or instructions and which can be accessed by a computer or processor.

[0042] The term "server" as used in accordance with the present disclosure refers to a service point that provides processing, database, and communication facilities. By way of example and not limitation, the term "server" may refer to a single physical processor with associated communication and data storage and database facilities, or it may refer to a networked or clustered complex of a processor and associated network and storage devices, as well as operating software and one or more database systems and application software that support the services provided by the server. Servers can vary widely in configuration or functionality, but typically a server may include one or more central processing units and memory. A server may also include one or more mass storage devices, one or more power supplies, one or more wired or wireless network interfaces, one or more input / output interfaces, or one or more operating systems.

[0043] A server may include, for example, a dedicated rack-mount server, a desktop computer, a laptop computer, a set-top box, an integrated device combining various features (such as two or more features of the aforementioned devices), etc. A server may vary widely in configuration or functionality, but typically a server may include one or more central processing units and memory. A server may also include one or more mass storage devices, one or more power supplies, one or more wired or wireless network interfaces, one or more input / output interfaces, or one or more operating systems.

[0044] The term "network" as used in the present disclosure refers to a network to which devices can be connected so that communications can be exchanged, such as exchanging communications between a server and a client device or other type of device, for example, including exchanging communications between wireless devices connected via a wireless network. The network may also include mass storage, such as network attached storage (NAS), storage area network (SAN) or other forms of computer or machine-readable media. The network may include the Internet, one or more wireless local area networks (WLANs), one or more local area networks (LANs), one or more wide area networks (WANs), wired type connections, wireless type connections, cellular or any combination thereof. Similarly, subnets that can adopt different architectures or that are compatible or compatible with different protocols can interoperate within a larger network. For example, various types of devices can be used to provide interoperable capabilities for different architectures or protocols. As an illustrative example, a router can provide a link between LANs that are otherwise separate and independent.

[0045] The communication link or channel can include, for example, analog telephone lines, such as twisted pair, coaxial cable, full or fractional digital lines including Tl, T2, T3, or T4 type lines, integrated services digital networks (ISDNs), Digital Subscriber Lines (DSLs), wireless links including satellite links, or other communication links or channels, such as those that can be known by those skilled in the art. Furthermore, a computing device or other related electronic device can be remotely coupled to a network, such as via a wired or wireless line or link.

[0046] For purposes of this disclosure, a "wireless network" should be understood to couple client devices with a network. A wireless network can employ standalone ad-hoc networks, mesh networks, WLANs, cellular networks, etc. A wireless network can further include systems of terminals, gateways, routers, or other devices that can be free to randomly move and be organized in systems, or that can be arranged in networks where connectivity is arranged manually, such as in a client-server model or in a peer-to-peer model, or in a hybrid model that can combine the above.

[0047] A wireless network can further employ a plurality of network access technologies, including WLANs (such as IEEE 802.11), Long Term Evolution (LTE), LTE-Advanced, Wireless Router (WR) mesh, or 2nd, 3rd, or 4th generation (2G, 3G, or 4G) cellular technology, or newer technologies like Internet of Things (IOT), 5th Generation (5G) or New Radio (NR) technology, etc. Network access technologies can enable wide area coverage for devices, such as client devices that can have different mobility.

[0048] For example, a network can enable RF or wireless type communication via one or more network access technologies, such as Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), General Packet Radio Services (GPRS), Enhanced Data GSM Environment (EDGE), 3GPP Long Term Evolution (LTE), LTE-Advanced, Wideband Code Division Multiple Access (WCDMA), Bluetooth, IEEE 802.11b / g / n, or any other 802.11 protocol. A wireless network can actually comprise any type of wireless communication mechanism by which signals can be communicated between devices, such as client devices or computing devices, between or within network boundaries, etc.

[0049] The present disclosure is described below with reference to block diagrams and operational illustrations of methods and apparatus. It is to be understood that each block of the block diagrams or operational illustrations, and combinations of blocks in the block diagrams or operational illustrations, can be implemented by analog or digital hardware and computer program instructions. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, ASIC, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, implement the functions / acts specified in the block diagrams or operational block or blocks. In some alternative implementations, the functions / acts can occur out of the order indicated in the operational illustrations. For example, two operations shown as being in succession can in fact be executed substantially concurrently or the operations can sometimes be executed in the reverse order, depending upon the functionality / acts involved.

[0050] Figure 1 A system is illustrated in accordance with certain non-limiting embodiments. In particular, as shown Figure 1 The system 100 can include a client station 102 (such as a pet or animal wearable device), a mobile device 104 used by a pet or animal's owner or caretaker, a server 106, and / or a network 108 (such as a WLAN), in accordance with certain non-limiting embodiments. The client station 102 can be a wearable device placed on a pet or animal's collar. The client station 102 can be used to track, monitor, and / or detect the pet's activity or location. The mobile device 104 can include a web-based application that can communicate with the client station 102.

[0051] When the client station 102 is in the geo-fenced area, probe responses received by the client station 102 from the APs of the WLAN can be stored in a database. The database can be located in the server 106, for example. On the other hand, when the client station 102 has left the geo-fenced area, the client station 102 can turn on its GPS receiver and send the coordinates to the server 106 using the network 108, which can be a cellular network or a WLAN. The server 106 can then send an alert to the mobile device 104 or the web-based application located on the mobile device 104, notifying the user that the client station 102 has left the geo-fenced area. The alert can be an interactive map, a text message, and / or an email message. In other non-limiting embodiments, the client station 102 can directly or indirectly initiate the sending and / or send the alert to the mobile device 104.

[0052] In one non-limiting embodiment, the client station 102 can include Figure 2 the hardware shown. Figure 2A client station or access point is illustrated in accordance with certain non-limiting embodiments. The client station 102 can be configured to collect data generated by various hardware or software components (often referred to as sensors) that are present within the tracking device 102. For example, a GPS receiver 210 or one or more sensors 208, such as an accelerometer, gyroscope, or any other device or component for recording, collecting, or receiving data about movement or activity, can be included within the client station 102. In some non-limiting embodiments, the location of the client station 102 can mimic the movement of a pet on which the tracking device is located.

[0053] While the client station 102 can be attached to a collar of a pet, as described in U.S. Patent Application No. 14 / 231,615, which is hereby incorporated by reference in its entirety, in other embodiments the client station 102 can be attached to any other article worn by a pet. In some non-limiting embodiments, the client station 102 can be located on the pet itself.

[0054] As discussed in greater detail herein, the client station 102 can also include a processor 202 that is capable of processing one or more data collected from the client station 102. The processor 202 can be embodied by any computing or data processing device, such as a central processing unit (CPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), a digital-signal-processing-dedicated circuit, or similar device or combination thereof. The processor can be implemented as a single controller or multiple controllers or processors. In some embodiments, the client station 102 can be specifically configured to collect, sense, or receive data, and / or to pre-process the data prior to transmission. In addition to sensing, recording, and / or processing data, the client station 102 can also be configured to initiate transmission of data, including location and any other monitoring or tracking data, to other devices or servers over the network 108. For example, the processor 202 within the client station 102 can initiate transmission of an alert to the server 106 or mobile device 104 over the network 108.

[0055] In certain non-limiting embodiments, the client station 102 can transmit any tracking or monitoring data continuously to the network. In other non-limiting embodiments, the client station 102 can transmit any tracking or monitoring data discretely. Discrete transmission can transmit data after a limited period of time. For example, the client station 102 can transmit data once per hour or twice per hour. This can help reduce the amount of battery power consumed by the client station 102, while also conserving network resources for transmitting data over the network.

[0056] As Figure 1As shown, the client station 102 can communicate with the network 108. Although illustrated as a single network, the network 108 can include multiple or many networks that facilitate communication between devices. The network 108 can be a radio-based communication network using any available radio access technology. The available radio access technologies can include, for example, Bluetooth, WLAN, Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), any Third Generation Partnership Project (“3GPP”) technology, including LTE, LTE-Advanced, 3G, 5G / NR technology. The network 108 can communicate with the tracking device 102, the server 106, and / or the mobile device 104 using any of the aforementioned radio access technologies or any other available radio access technology.

[0057] In one embodiment, the network 108 can include a WLAN, such as a wireless fidelity (“Wi-Fi”) network defined by the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard or equivalent standard. In this embodiment, the network 108 can enable the transmission of location and / or any tracking or monitoring data from the client station 102 to the server 106. Additionally, the network 108 can facilitate data transmission between the client station 102 and the mobile device 104. In an alternative embodiment, the network 108 can include a mobile network, such as a cellular network. In this embodiment, data can be transmitted between the illustrated devices in a manner similar to the embodiment in which the network 108 is a WLAN.

[0058] In one non-limiting embodiment, the client station 102 and the mobile device 104 can transmit data directly between devices. Such direct transmission can be referred to as device-to-device communication or mobile-to-mobile communication. Although described separately, the network 108 can include multiple networks. For example, the network 108 can include a Bluetooth network, a WLAN, and a mobile or cellular network that facilitate data transmission between the client station 102 and the mobile device 104.

[0059] The system 100 can also include the mobile device 104. The mobile device 104 can be any available user device or mobile station, such as a mobile phone, a smart phone or multimedia device, or a tablet device. In alternative embodiments, the mobile device 104 can be a computer with wireless communication capabilities (such as a laptop), a personal data or digital assistant (PDA) with wireless communication capabilities, a portable media player with wireless communication capabilities, a digital camera, a pocket video camera, a navigation unit, or any combination thereof. The mobile device 104 can communicate with the client station 102. In such a non-limiting embodiment, the mobile device 104 can receive location information or any other data related to the pet, such as a health assessment and / or a health recommendation, from the client station 102, the server 106, and / or the network 108.

[0060] Additionally, client station 102 may receive data from mobile device 104, server 106, and / or network 108. In particular, Figure 5 As shown, as described below, client station 102 can receive a probe response from an AP of a WLAN. Client station 102 can store the probe response or information included therein in a database of server 106. For example, the probe response can include at least one of signal strength information (SSI), a success rate, or an identification of the channel from which the probe response was received. This information can be stored in a database of server 106. Client station 102 can access and use this information to determine a subset of channels and / or a scanning time interval associated with the WLAN.

[0061] In addition, the mobile device 104 (or non-mobile device) can communicate with the server 106 or the client station 102 to receive data or alerts. For example, the server 106 may include one or more application servers that provide networked applications or application programming interfaces (APIs). In one embodiment, the mobile device 104 can be equipped with one or more mobile or web-based applications that communicate with the server 106 via the API to retrieve and present data within the application. In one non-limiting embodiment, the server 106 can provide a visualization or display of the location or data received from the client 102. In other non-limiting embodiments, the mobile device 104 can communicate directly with the client station 102 and receive alerts from the client station 102.

[0062] Figure 2 The computing device 200 is shown in accordance with certain non-limiting embodiments. The computing device 200 may be, for example, Figure 1 , a client station 102, a server 106, or a mobile device 104 as shown in FIG. Device 200 may include a processor 202, a memory 204, a non-volatile storage 206, a sensor 208, a GPS receiver 210, a cellular transceiver 212, a Bluetooth transceiver 216, and a wireless transceiver 214. The device may include any other hardware, software, processor, memory, transceiver, and / or graphical user interface.

[0063] As about Figure 1As discussed, the computing device 200 can be a client station 102 designed to be worn or otherwise carried by a pet. The device 200 includes one or more sensors 208, such as a three-axis accelerometer. For example, the one or more sensors can be used in conjunction with a GPS receiver 210. For example, the GPS receiver 210 can be used with the sensors 208 that monitor the device 200 to identify its location (via the GPS receiver 210) and its acceleration (via the sensors 208). Although shown as single components, the sensors 208 and GPS receiver 210 can alternatively each include multiple components that provide similar functionality.

[0064] The sensors 208 and GPS receiver 210 generate data (as described in greater detail herein) and send the data to other components via the processor 202. Alternatively, or in combination with the above, the sensors 208 and GPS receiver 210 can send the data to the memory 204 for short-term storage. The memory 204 can be a non-volatile storage medium or any other suitable storage device, such as a non-transitory computer-readable medium, a hard disk drive (HDD), RAM, flash memory, or other suitable memory.

[0065] Alternatively, or in combination with the above, the sensors 208 and GPS receiver 210 can send the data directly to the non-volatile storage medium 206. In this embodiment, the processor 202 can access the data (e.g., location and / or probe data) from the memory 204. In some embodiments, the non-volatile storage 206 can include a solid-state storage device (e.g., a "flash" storage device) or a traditional storage device (e.g., a hard disk). While Figure 2 While the memory 204 and non-volatile storage medium 206 are illustrated, both can be combined into one memory component, referred to as memory or non-volatile storage medium. In particular, the GPS receiver 210 can send location data (e.g., latitude, longitude, etc.) to the processor 202, memory 204, or non-volatile storage 206 in a similar manner.

[0066] As Figure 2As shown in FIG. 2, the device 200 includes multiple network interfaces, including a cellular transceiver 212, a wireless transceiver 214, and a Bluetooth transceiver 216. The cellular transceiver 212 enables the device 200 to transmit data, information, or alerts to a server or mobile device over any radio access network. Additionally, the processor 202 can determine the format and content of data transmitted and received using the cellular transceiver 212, the wireless transceiver 214, and the Bluetooth transceiver 216 based on detected network conditions. Each of the transceivers 212, 214, 216 can independently be a transmitter, a receiver, or both a transmitter and a receiver, or a unit or device that can be configured for both transmission and reception. The transmitter and / or receiver (in terms of radio components) can also be implemented as a remote radio head that is not located in the device itself, but in, for example, a mast. As Figure 2 shown in FIG. 2, the wireless transceiver 214 can be used to transmit probe requests to an AP of a WLAN and receive probe responses.

[0067] Figure 3 Another example of a client station is illustrated in accordance with certain non-limiting embodiments. As Figure 3 shown in FIG. 3, a device 300, such as the client station 102, can include a GPS receiver 302, a geofence detector 304, a sensor 306, storage 308, a CPU 310, and a network interface 312. The GPS receiver 302, the sensor 306, the storage 308, and the CPU 310 can be similar to the GPS receiver 210, the sensor 208, the storage 404 / non-volatile storage 206, or the processor 202, respectively. As Figure 2 shown in FIG. 3, the network interface 312 can correspond to one or more of the transceivers 212, 214, 216. The device 300 can also include one or more power sources, such as a battery, an AC power source, or any other power source. The device 300 can also include a charging port, which can be used to charge the battery. The charging port can be, for example, a Type-A Universal Serial Bus (“USB”) port, a Type-B USB port, a Mini-USB port, a Micro-USB port, or any other type of port. In some other non-limiting embodiments, the battery of the device 300 can be wirelessly charged.

[0068] In the illustrated embodiment, the GPS receiver 302 records location data associated with the device 300, including a plurality of data points representing the location of the device 300 as a function of time. The GPS receiver 302 can be turned on and off based on the location of the device 300. For example, the GPS receiver 302 can be turned on when the device 300 leaves a geofence location or area, and the received GPS coordinates can be transmitted to a server or mobile device.

[0069] In one embodiment, the geo-fence detector 304 stores details about known geo-fenced areas. For example, the geo-fence detector 304 can store a plurality of latitude and longitude points for a plurality of polygonal geo-fences. The latitude and / or longitude points or coordinates can be manually entered by a user and / or automatically detected by the wearable device. In an alternative embodiment, the geo-fence detector 304 can store the names of known SSIDs for known WLANs and associate each SSID with a geo-fence. In one non-limiting embodiment, the geo-fence detector 304 can store one or more threshold values in addition to the SSIDs for determining when the device 300 has left a geo-fenced area. Although shown as a separate component, in some embodiments, the geo-fence detector 304 can be implemented within the CPU 310, for example, as a software module.

[0070] In one non-limiting embodiment, the GPS receiver 302 can send the latitude and longitude data to the geo-fence detector 304 via the storage 308 or, alternatively, indirectly to the storage 308 via the CPU 310. The geo-fence can be a virtual fence or safe space defined for a given pet. The geo-fence can be defined based on the boundaries of latitude and / or longitude coordinates and / or given WLAN connection signals. For example, the geo-fence detector 304 receives the latitude and longitude data representing the current location of the device 300 and determines whether the device 300 is within or has left the geo-fenced area. If the geo-fence detector 304 determines that the device 300 has left the geo-fenced area, the geo-fence detector 304 can send a notification or indication to the CPU 310 for further processing. After the notification has been processed by the CPU 310, the notification or indication can be sent to the mobile device, either directly or through a server.

[0071] Alternatively, the geo-fence detector 304 can query the network interface 312 to determine whether the device 300 is connected to a WLAN network. In doing so, the device 300 can send a probe request to an AP within the WLAN and wait to receive a probe response from the AP. In this embodiment, the geo-fence detector 304 can compare the current WLAN SSID (or lack of SSID) to a list of known SSIDs. The list of known SSIDs can be based on those WLAN connections that have been previously approved by a user. For example, during a setup process for a given wearable device, a user can be asked to approve SSIDs as a home geo-fence location or area. In another example, the list of known SSIDs can be automatically populated based on those WLAN connections that are known to the user's mobile device. If the geo-fence detector 304 does not detect that the device 300 is currently connected to a known SSID, the geo-fence detector 304 can send a notification to the CPU 310 that the device has left the geo-fenced area.

[0072] Alternatively or in addition, the geofence detector 304 can receive the strength of the WLAN network and determine whether the current strength of the WLAN connection is within a predetermined threshold. The signal strength can be in the form of an SSI and can be included in the probe response received at the client station 102. In certain non-limiting embodiments, when the client station is determined to have a known WLAN connection - meaning that the client station may be within the transmission range of a given access point, the client station can be placed in a low power mode. The low power power mode can help preserve the battery of the client station. If the WLAN connection exceeds a predetermined threshold, the wearable device may be approaching the outer boundary of the geofence. Receiving a notification once the network strength threshold is exceeded can allow the user to receive advance warning that the pet is about to leave the geofence.

[0073] like Figure 3 As shown, device 300 also includes storage 308. In one embodiment, storage 308 may temporarily or primarily store data sensed or received by device 300. For example, storage 308 may store information included in a probe response. In other non-limiting embodiments, instead of storing previously sensed and / or received data in storage 308, device 300 may send the data to be stored on a server such as a server. Figure 1 In the database of the server 106 shown in .

[0074] Figure 4A The database 400 may be located at Figure 1 The database 400 may be referred to as an event manager (EVTMGR) in the non-volatile storage of the mobile device 104 shown. The client station 102 or the mobile device 104 may read, write, or erase data from the database. For example, the mobile device 104 may periodically or aperiodically read data from the database and / or upload the read data to the server 106. In other examples, the mobile device 104 may write data to the database 106, such as pet activity data, debug logs, calibration data associated with the scanning algorithm, and / or any other available data. In some embodiments, the database 400 may be included in the non-volatile storage and help manage the data stored therein. Alternatively, the database may run or be included in any other hardware or cloud-based storage. In Figure 4A In the example embodiment shown, database 400 may include a status block 410, a block pointer 420, and / or a data block 430. In some embodiments, each component of database 400 may have a reserved portion within non-volatile memory.

[0075] Figure 4B The diagram illustrates a database according to certain non-limiting embodiments. In particular,Figure 4B Figure illustrates a detailed example of the database shown in Figure 4A The database 400 can be an ultra-low footprint storage system that can be used for embedded systems. The database 400 supports writing, reading, and erasing data blocks, such as opaque data blocks, to non-volatile memory in a circular first-in-first-out (FIFO) manner. In certain embodiments, the data included in the database can be read in the order it was written. Such embodiments can help provide a simplified configuration that can reduce the amount of resources used by the database.

[0076] The data blocks 430 of the database 400 can include one or more data blocks. The total number of blocks can be referred to as "N." A data block can be a contiguous string of bytes located somewhere in the non-volatile memory. In certain embodiments, the data can not be accompanied by any metadata. Instead, metadata that can be included, such as the length of the data block, a checksum used to verify the data block, the address of the data block, or any other form of metadata, can be saved in the block pointers 420. The block pointers 420 can include one or more block pointers. For example, Figure 4B Seven block pointers are illustrated. A single block pointer can hold metadata for a single data block. The metadata can include the address of the data, the length of the data, and / or a checksum that can be used to verify the integrity of the data. In certain embodiments, the data can have a length of 256 bytes. In other embodiments, the length of the data can be greater or less than 256 bytes.

[0077] The status block 410 can be used to hold the head and tail status of the database. In other words, the status block 410 can be a pointer to the block pointers 420. The status block 410 provides a high level picture of where data can be read and / or written to the storage system. In certain non-limiting embodiments, a new or updated copy of the read or write block pointer addresses can be kept. The read pointer address can be saved in the tail pointer address, as shown by tailptr in Figure 4B and the write pointer address can be saved in the head pointer address, as shown by headptr in Figure 4B In other words, the head pointer address can be used to write data to the next available block and the tail pointer address can be used to read data to the next available or oldest data block.

[0078] When a user or client station wishes to store opaque data blocks (meaning the client station wishes to write data to the database 400), the client can send the data to the database 400 along with the length of the data. The state block 410 can then compute a checksum, retrieve the next available free memory address, and write the data to the non-volatile storage medium or memory. If the non-volatile memory is completely full, the oldest data block can be overwritten and the corresponding block pointer can be updated. The state block 410 can then construct a block pointer for the data and write the constructed block pointer to the block pointers 420. If the block pointer memory is full, the oldest block pointer can be overwritten and the corresponding data erased. The state block 410 can then be updated to reflect the new head pointer.

[0079] In certain other non-limiting embodiments, a client station can read data from the database 400, for example when uploading to a server. A read address or tail address of the state 410 can indicate where the oldest read block pointer is located or can be retrieved from. Using this address, the state block 410 can locate the first block pointer to read. Using the metadata in the block pointers 420, the data block can be read at the retrieved address and for the length specified in the block pointer. The data can then be verified for integrity according to its checksum and returned to the client station. If the client station successfully uploads the data to the server, the client station can send a notification to the database 400. Sending the notification can be similar to performing an erase. The database 400 can advance the tail pointer within the state block 410, thereby losing track of the data associated with the block pointer. In certain embodiments, the above-described reading of data can continue in a loop until all data has been read, or until the client station has read its desired amount of storage bytes.

[0080] For example, a client station can periodically upload stored data to a server so that the server can present relevant data to the user through a mobile app, such as pet activity, location, and / or usage statistics. Periodically, the client station can establish a connection to the server and send some or all of the data available to the client station in the database to the server. The server can confirm the send was successful through a notification, for example using an HTTP status code 200. Once the notification is received, the data can be considered to have been successfully used and the block pointer can be advanced. Advancing the block pointer can erase or effectively erase the stored data and free up space on the client station's non-volatile memory for new data.

[0081] In certain embodiments, erasing data or metadata can occur as a result of reading a data block and then moving forward the block pointer address pointing to the data block. In other words, due to the FIFO nature of the database 400, erasing can simply include advancing the tail pointer within the state block.

[0082] Figure 5 A system diagram with a client station and an access point is illustrated in accordance with certain non-limiting embodiments. The client station 510 can be similar to Figure 2 the client station 210 shown. In some examples, the client station 510 can be a portable wearable device that can be attached to a pet or animal collar. The client station 510 can include a medium access control (MAC) and / or physical layer (PHY) interface for transmitting probe requests and receiving or listening for probe responses from APs over a WLAN. The AP 520 can be a network router or base station for the WLAN, for example. The WLAN can be defined by the IEEE 802.11 standard or equivalent.

[0083] While Figure 5 the following description focuses on the 2.4 GHz radio band, any of the following embodiments can also utilize the 5 GHz band, as described in at least the IEEE 802.11(n) or (ac) protocols. In the 2.4 GHz band, the WLAN is limited to 14 different channels. As shown, the 2.4 GHz band can range from 2.402 GHz to 2.483 GHz in radio frequency. Each channel can be 20 megahertz (MHz) wide, with 5 MHz channel center spacing to avoid channel overlap. By avoiding channel overlap, the WLAN can help suppress harmful signal interference from using adjacent channels. Thus, the 2.4 GHz band can provide up to three non-overlapping channels, namely channels 1, 6, and 11. On the other hand, the 5 GHz band provides a greater frequency range, which can provide up to 24 non-overlapping channels. Figure 5

[0084] To communicate with the WLAN, the client station 510 transmits a probe request to the AP 520 on one or more channels of the WLAN. The probe request, also referred to as a probe request frame, can be a specific WLAN frame transmitted from the client station 510 requesting information from a single AP 520 or all APs within a given area. The client station 510 can then wait or listen for a limited time, referred to as a scan interval, to receive a probe response from the AP 520. The probe response received at the client station 510 from the AP 520 can include any information related to the WLAN or AP, such as the SSI, probe response success rate, or identification of the channel from which the probe response was received. In other words, the probe response can include some of the same information used by the client station to initiate communication with the AP.

[0085] ​Certain non-limiting embodiments are directed to reducing or minimizing the scanning interval while also reducing or minimizing the number of channels through which probe requests are sent. Doing so can help reduce battery usage at the client station while also reducing network resources associated with sending and receiving probe requests and responses. Additionally, reducing the scanning interval and the number of channels through which probe requests are sent can help reduce the execution time for identifying the location of the client station, as well as reducing the time it takes for the client station to communicate with the WLAN. This can help extend the battery life of the client station while also limiting the network bandwidth resources used by the client station. As will be discussed below, the subset of scanning intervals and channels used by the client station can be determined based on information previously stored in a database accessible to the client station.

[0086] like Figure 5 As shown, client station 510 can periodically send probe request frames and listen for probe responses from AP 520 or a specific AP located in a given WLAN for a set amount of time. From the client station's perspective, to reduce the power and overall time spent performing scans, the WLAN channels on which probe requests are sent can be reduced. In addition, the amount of time spent listening for probe responses from APs, also known as the scanning time interval (STI) or scanning interval, can be reduced.

[0087] Figure 6 A system flow diagram is shown describing a system or method according to certain non-limiting embodiments. In some embodiments, Figure 6 The method shown can be run without any user interaction, which means that the method can be undetectable by the user. As shown in 610, the client station, at Figure 6 A client station, referred to as a STA in the present invention, can determine whether it is connected to a battery charger. As shown in 620, calibration of the scanning interval can occur when the client station is connected to a charging source, such as a battery charger. Calibration while the client station is connected to a charging source helps reduce the impact of calibration on the device's battery between charges. However, in some other embodiments, the scanning interval can also be calibrated when the client station is not charging. This can allow the client station to account for APs that are not near a charging station.

[0088] Calibrating the scan time interval may mean determining the amount of time a client station listens for probe responses to be sent from an AP on a given channel of the WLAN. The scan interval may be specific to a given channel within the WLAN, or may be specific to a given SSID. When scanning a particular SSID, without knowing which specific APs are within range of the client station, the client station may adopt the highest scan time interval among all APs in the SSID for which the client station is calibrated. For example, the highest scan time interval may be 200 milliseconds (ms), 500 milliseconds, 1 second, or 5 seconds. In other examples, the highest scan time interval may be less than 200 milliseconds or greater than 5 seconds. Information associated with the scan time interval may be collected and / or stored on a per-AP or BSSID basis.

[0089] In some non-limiting embodiments, calibration may be performed as frequently as device operation will allow, while in other embodiments, calibration may be limited to a limited number of times within a given time period. For example, calibration may be performed once a day, once every other day, or once a week. The purpose of calibrating the scan interval may be to determine a minimum scan interval such that the success rate of receiving probe responses from the AP at the client station has reached an asymptote given a statistically significant number of trials.

[0090] An example of such an asymptote is Figure 7 In particular, Figure 7 A scanning interval graph according to certain embodiments is illustrated. Dashed line 710 may be used to mark the point in the asymptote where the probe response success rate levels off. The scanning interval at which the probe response success rate levels off may be used as the determined scanning interval by the client station. In other words, determining the scanning interval associated with an SSID may include calibration of the scanning interval.

[0091] exist Figure 6 In certain non-limiting embodiments shown, scan interval calibration 620 can occur when the client station 610 is charging and not operating solely on battery power. Scan interval calibration can include performing a multi-channel scan using a high scan interval. The multi-channel scan can include sending probe requests to multiple channels within the SSID of the WLAN. The initial high scan interval can help establish a baseline probe response success rate. The results of the multi-channel scan can be stored in a database. The multi-channel scan can be repeated more than once. For example, the multi-channel scan can be repeated three or more times.

[0092] If the AP does not respond during any of the performed multi-channel scans, calibration cannot be performed. On the other hand, if the AP responds at least once, the client station can continue to perform multi-channel scans. In some examples, if the AP responds ten or more times, a multi-channel scan can be performed for the particular AP. For each multi-channel scan performed, the client station can track or store in a database the probe responses received at the client station. For example, the probe responses can include at least one of the following: signal strength information, such as a received signal strength indicator (RSSI), a probe success rate (meaning whether a response was received after a probe request was sent), and / or an identification of the channel from which the probe response was received. The client station can not only calculate the probe success rate, but other metrics as well, such as a standard deviation of the success rate.

[0093] The above information included in the probe responses and / or the calculated success rate metrics can be sent to a server and stored in a database. The stored information can be accessed to determine a scan time interval associated with the SSID. For example, in certain non-limiting embodiments, a binary search can be performed to determine the scan time interval. The binary search, also known as interval bisection search or dichotomic search, can be a search method used to find a target value in a sorted list of probe response success rates. In particular, the binary search can be used as a repeated process of dividing the list of probe response success rates, which can contain a target scan time interval, in half, until the list is narrowed down to the optimal or minimum scan time interval, which has an acceptable success rate level.

[0094] The binary search can be based on at least one of the signal strength information or the probe response success rate. Assuming that the binary search is performed as part of the calibration, in certain embodiments, the binary search can be performed while the client station is charging. Using the binary search, the client station can repeat the multi-channel scans until a scan interval is identified in which the success rate is 50% or less of a previously obtained success rate. The binary search is performed while the client station continues to collect data using the multi-channel scans. During the collection of data, the client station can continue to favor the side of the binary search that has a higher success rate. When a scan time interval is found that has a similar standard deviation associated with a given success rate, while the success rate is within 0.5 of a previously used scan time interval, the client station or server can determine or select such a scan time interval.

[0095] Once a given scan interval is selected, the binary search can continue by focusing on the selected scan interval and the lowest scan interval with a poor or unqualified success rate. In other words, the binary search can attempt to determine whether the scan time interval can be further reduced or minimized. In certain non-limiting embodiments, when the difference between the standard deviation and the success rate of two binary search nodes begins to diverge, the client station or server can determine that the last selected scan time interval is the minimum scan interval that can be used. In other words, the client station or server can determine that the last selected scan time interval reflects the success rate asymptote, such as Figure 7 shown.

[0096] The results of the scan time interval calibration can be stored in a database, such as Figure 6 As shown in step 630. The results of the calibration may include one or more of the following: a determined scanning time interval, an average probe response success rate, a standard deviation of the probe response success rate, an average signal strength and / or a standard deviation of the signal strength, or any other metric. In addition to determining the scanning time interval, certain embodiments may also determine a subset of channels through which the probe request may be sent. As shown in step 640, the client station may attempt to extract historical results and associated calculations from a database. If the database does not include any historical results or a sufficient number of historical results, a channel learning method may be performed to select, choose, or determine a subset of channels, as shown in step 650. In some embodiments, the channel learning method may be performed before calibrating the scanning time interval, while in other non-limiting embodiments, the channel learning method may be performed after calibrating the scanning time interval.

[0097] As described above, the 2.4 GHz WLAN radio band may include 14 different channels on which an AP may receive probe requests and / or send probe responses. In some non-limiting embodiments, the AP may switch between WLAN channels. When a client station sends a probe request on a channel that is not used by a given AP, the client station will not receive a probe response from the given AP. In addition, if multiple APs share the same SSID, i.e., they are located in similar areas of the WLAN, each AP may use a different channel. Certain embodiments disclosed herein provide a system or method that can dynamically adapt and learn one or more optimal channels to scan when searching for a particular SSID. In some embodiments, channel scanning may be performed for a particular SSID, while in other embodiments, channel scanning may be performed on a per-AP or BSSID basis.

[0098] Figure 8 A diagram of WLAN channels 810 is shown in accordance with some embodiments. Figure 8The example illustrates a WLAN using the 2.4 GHz band, although certain other embodiments can use the 5 GHz band. As noted above, a WLAN using the 2.4 GHz radio band can have 14 possible channels through which an AP can communicate. As Figure 8 As can be seen in the histogram shown, there are 14 possible channels. 300 probe responses have been received through channel 1, 200 probe responses have been received through channel 6, 275 probe responses have been received from channel 11, and an additional 40 responses have been received in channel 8. Although the histogram indicates that the client station should only send on channels 1, 6, and 11, it can be beneficial to consider the responses received in channel 8. For example, it is possible that the last 40 occurrences have all been sent from the AP on channel 8, indicating that the client station should send probe requests through channel 8, rather than channels 1, 6, or 11. Embodiments described herein can dynamically consider all channels, including any channel trends exhibited by the AP.

[0099] In certain non-limiting embodiments, Figure 6 The channel learning system, process, or method shown in step 650 can utilize a circular buffer. For example, "K" can be the number of elements in a rolling or circular first-in-first-out (FIFO) buffer that can be used to construct a channel occurrence histogram. Although "K" can be any number, in certain embodiments discussed below, K can assume a value of 150.

[0100] The observed channels can be stored in a FIFO buffer in a database. If the buffer is full, the oldest element contained in the buffer can be discarded. The element can refer to an identification of a channel through which a probe response was received at the client station. In some non-limiting embodiments, the buffer can be filled with a new element upon a successful scan, which means that a probe response was received at the client station. A subset of channels can be determined based on at least one of the most recent or most frequently occurring channels stored in the buffer. The determined subset of channels can include one or more channels. In the 2.4 GHz band, the subset of channels can include 1 to 14 channels, which can include up to 3 non-overlapping channels. On the other hand, in the 5 GHz band, the subset of channels can include 24 non-overlapping channels.

[0101] One or more criteria can be used to determine the most recent or most frequently occurring channel stored in the buffer. For example, in certain embodiments, a channel can be considered the most recent or most frequently occurring channel if it is present in K / 2 occurrences in the buffer. For example, if channel 6 occurs 75 or more times in a buffer of 150 occurrences, channel 6 can be considered the most frequently occurring channel. In such embodiments, the client station can choose to transmit probe requests only on channel 6, assuming it has been determined to be the most frequently occurring channel. In another example, any channel with K / 5 or more occurrences can be included in the subset. For example, channels 1, 6, and 11 can occur 50 times in the buffer, respectively. In such embodiments, the client station can determine that the subset of channels is channels 1, 6, and 11, and transmit probe requests only on these three channels. If no channel meets the above criteria, the client station can choose to abandon the subset scan entirely and perform a multi-channel scan, meaning the client transmits probe requests on all channels. In other words, if one or more criteria are not met, a subset of channels can not be selected and the client station can perform a multi-channel scan in certain embodiments.

[0102] Once the subset of channels and / or the scan interval is determined, the client station can perform a scan based on the determined subset of channels and / or scan interval, as shown in step 660. The scan can help determine whether a given AP is within range of the client station. In other words, the client station can use the scan to confirm that the client station is within a predetermined geofence region or outside of a predetermined geofence region.

[0103] If it is determined that the client station is outside of the geofence region, an indication that the client station has exited the predetermined geofence region can be sent to the mobile device, user device, or web-based application included therein. The indication can be any form of notification issued through a graphical user interface of the user device, a speaker, or a vibrating device. For example, the indication can be an alert displayed on a graphical user interface of the mobile device or user device. In yet another example, the indication can be a sound emitted through a speaker of the mobile device. In certain non-limiting embodiments, the indication that the client station has exited the geofence location or region can be reflected in the client station. For example, a lighting device located in the client station can be turned on. The lighting device can include a light-emitting diode (LED).

[0104] Figure 9 FIGURE 1 illustrates a flow diagram in accordance with certain non-limiting embodiments. In particular, Figure 9 FIGURE 2 illustrates determining a scan time interval while the client station is charging, in accordance with certain non-limiting embodiments. Figure 6Step 620. In step 910, the server or client station can initiate or start the process of calibrating the scan time interval. In step 920, the client station can perform a multi-channel scan using the high scan time interval to establish a high baseline probe response success rate. The multi-channel scan can be repeated two or more times. In step 930, the client station can assess whether it receives a probe response from an AP. If not, the calibration can end. If a probe response is received, a multi-channel scan can be performed "N" times with the high scan time interval, as shown in step 940. In step 950, a binary search can be performed on the minimum scan time interval with a success rate and standard deviation that deviates from the high baseline scan time interval result. The determined scan time interval result can then be stored in a database on a per-AP or per-BSSID basis.

[0105] Figure 10 A flowchart is illustrated in accordance with certain non-limiting embodiments. In particular, Figure 10 A subset of channels is determined using a channel learning system, as illustrated in Figure 6 Step 650. In step 1010, the process for selecting a subset of channels for probe request transmission can begin. In step 1020, a FIFO channel circular buffer of length K can be used to determine the last or most observed channels. The client station or server can then determine whether a given channel appears K / 2 or more times in the buffer, as shown in step 1030. If so, the given channel can be the only channel included in the subset of channels, as shown in step 1040. If not, the channel can be included in the subset of channels, as shown in step 1050. In step 1060, the client station or server can determine whether any channel appears K / 5 or more times in the buffer. If so, all those channels that meet the K / 5 criteria can be included in the subset, as shown in step 1070. If not, and none of the above criteria are met, the client station can only perform a multi-channel scan.

[0106] Figure 11A flowchart according to certain non-limiting embodiments is illustrated. In step 1110, a process for determining whether an AP within a given SSID is within range may be initiated. The client station may sense or detect the SSID of the WLAN. In step 1120, the client station may retrieve calibration parameters from a memory or a database located in the memory. In other words, the client station may determine a subset of channels within the WLAN by accessing information stored in the database. The client station may also determine a scanning time interval associated with the SSID by accessing information stored in the database. In step 1130, a probe request may be constructed using the SSID. The probe request may then be sent over the determined subset of channels. In other words, a channel learning method may be used to send the probe request on the determined subset of channels, as shown in step 1140.

[0107] The client station may evaluate whether a probe response is received from the AP in step 1150. If a probe response is received at the client station from the AP during the determined scanning time interval, the client station may store the probe response in a database, as shown in step 1170. If a probe response is not received, the client station may perform a multi-channel scan using a high scanning time interval.

[0108] In certain non-limiting embodiments, an AP located within the wireless access network may receive probe requests from client stations over a subset of channels. The AP may also send probe responses to the client stations during a scanning interval. The probe responses may be used to determine whether the client station is within or outside the geo-fenced area.

[0109] Figure 12(a) illustrates a probe response graph according to certain embodiments. Specifically, Figure 12(a) illustrates a multi-channel scan performed by a client station, where the x-axis represents time and the y-axis represents power consumption. As can be seen from the graph, sending probe requests on all channels consumes significant power, while the scan interval, or probe response listening time, can be as long as 200 milliseconds (ms). The multi-channel scan consumes an average of 475 milliwatts (mW) over the 1.8 seconds it takes to send a probe request.

[0110] FIG12( b) shows a probe response graph according to some embodiments. In particular, FIG12( b) shows a probe response graph using the above and Figures 1 to 11 Embodiments of the systems, methods, and apparatus disclosed in

[0015] . As shown in FIG12(b), probe requests can be sent on only a single channel, and the scanning interval or probe response listening time can be reduced to 25 ms. Utilizing the above embodiments can help reduce power consumption to an average of 360 mW within 380 ms.

[0111] Accordingly, the above-disclosed embodiments help improve the client stations and the APs themselves by reducing the network resources used by the client stations. Reducing the network resources can help reduce the battery consumption of the client stations by reducing the amount of time and battery resources needed to identify the location of the client stations relative to the APs in the WLAN. On the other hand, from the network's perspective, resources can be conserved by reducing the number of multi-channel scans performed by the client stations. This can help prevent the client stations from flooding the channels of the WLAN with probe requests indiscriminately. Accordingly, the above-described systems, methods, and apparatuses help provide improvements to the functionality of the client stations, the APs, and other components of the WLAN network.

[0112] For the purposes of this disclosure, a module is a software, hardware, or firmware (or combinations thereof) system, process or function, or portions thereof, that performs or facilitates performing one or more of the processes, features, and / or functions described herein (to the extent such processes, features and / or functions are not incoiporated into the computer-readable medium), with or without human interaction or augmentation. A module can include sub-modules. Software components of a module can be stored on a computer-readable medium for execution by a processor. Modules can be integrated into one or more servers, or loaded and executed by one or more servers. One or more modules can be grouped into an engine or an application.

[0113] Those skilled in the art will realize that the methods and systems of the present disclosure can be implemented in many manners and therefore are not restricted to the example embodiments and examples set forth herein. In other words, functional elements of the examples disclosed herein can be implemented in software, hardware, or firmware, or any combination thereof, and in various combinations thereof. For example, various functions can be carried out by a single or multiple processors, or in a state machine that is programmed with the appropriate software or firmware. In this manner, different features of the example embodiments can be implemented, individually and / or collectively, by a wide range of hardware, software, firmware, or any combination thereof, and any number of associated devices mentioned above. Similarly, the steps of a method or process can be embodied directly in hardware, in software stored on a computer-readable medium that executes to perform the steps, and / or in combinations thereof.

[0114] The functions described can be implemented in hardware, software, firmware or any combination thereof. If implemented in software the functions can be stored or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media include both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage medium can be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, functional

[0115] Further, the embodiments disclosed in the present disclosure as flow presentations and described as methods are provided by way of example to provide a more complete understanding of the technology. The disclosed methods are not limited to the operations and logic flows given herein. Alternative embodiments are contemplated in which the order of various operations is changed, and in which sub-operations described as part of a larger operation are independently executed.

[0116] While various embodiments have been described for purposes of this disclosure, such embodiments should not be construed to limit the teachings of this disclosure to those embodiments. Various changes and modifications can be made to the described embodiments with respect to the elements and operations described herein, without departing from the scope of the systems and processes described in this disclosure.

Claims

1. A method performed by a client station, comprising: sensing a service set identifier of a wireless access network; determining a subset of channels within the wireless access network by accessing information stored in a database; calibrating the scanning time interval and storing the calibration information in a database; determining a scanning time interval associated with the service set identifier by accessing calibration information stored in a database; sending a probe request to an access point located within the wireless access network via a subset of channels; receiving, at the client station, a probe response from the access point during a scanning time interval; as well as The location of the client station is identified based on the probe response.

2. The method according to claim 1, further comprising: The client station is confirmed to be located within a predetermined geo-fenced area based on the identified location.

3. The method according to claim 1, further comprising: confirming that the client station is outside of a predetermined geo-fenced area based on the identified location; as well as An indication is sent to the user equipment that the client station has left the predetermined geo-fenced area.

4. The method according to claim 1, further comprising: Multiple multi-channel scans of the wireless access network are performed at the client station.

5. The method according to claim 1, further comprising: Probe responses received at the client station are stored in a database, wherein the probe responses include at least one of: signal strength information, a success rate, or an identification of a channel from which the probe response was received.

6. The method according to claim 5, further comprising: A binary search is performed based on at least one of the signal strength information or the probe response success rate to determine the scanning time interval.

7. The method according to claim 6, characterized in that A binary lookup is performed while the client station is charging.

8. The method according to claim 5, characterized in that The identification of the channel from which the probe response was received is stored in a first-in-first-out buffer included in the database.

9. The method according to claim 5, further comprising: A query is sent from a client station to a database requesting a subset of channels, wherein the subset of channels is based on identities of channels stored in a buffer of the database.

10. The method according to claim 9, wherein The sending of the query occurs while the client station is running on battery power.

11. The method according to claim 9, characterized in that The subset of channels is determined based on at least one of the most recently or most frequently occurring channels among the channels stored in the buffer.

12. The method according to claim 1, characterized in that The client station is a wearable device used to track and monitor pet activities.

13. The method according to claim 1, wherein The wireless access network operates on the 2.4 GHz radio frequency band.

14. The method according to claim 1, wherein Determining the subset of channels and determining the scanning time interval reduces at least one of: battery usage at the client station or execution time for identifying the location of the client station.

15. A client station comprising: at least one non-volatile storage medium including computer program code; and at least one processor; Wherein the computer program code is configured to, when executed by at least one processor, cause the client station to: sensing a service set identifier of a wireless access network; determining a subset of channels within the wireless access network by accessing information stored in a database; calibrating the scanning time interval and storing the calibration information in a database; determining a scanning time interval associated with the service set identifier by accessing calibration information stored in a database; sending a probe request to an access point located within the wireless access network via a subset of channels; receiving a probe response from an access point during a scanning time interval; and The location of the client station is identified based on the probe response.

16. The client station of claim 15, wherein: The computer program code is configured to, when executed by at least one processor, cause the client station to: The client station is confirmed to be located within a predetermined geo-fenced area based on the identified location.

17. The client station of claim 15, wherein: The computer program code is configured to, when executed by at least one processor, cause the client station to: confirming that the client station is outside of a predetermined geo-fenced area based on the identified location; as well as An indication is sent to the user equipment that the client station has left the predetermined geo-fenced area.

18. The client station of claim 15, wherein: The computer program code is configured to, when executed by at least one processor, cause the client station to: Perform multiple multi-channel scans of the wireless access network.

19. The client station of claim 15, wherein: The computer program code is configured to, when executed by at least one processor, cause the client station to: Probe responses received at the client station are stored in a database, wherein the probe responses include at least one of: signal strength information, a success rate, or an identification of a channel from which the probe response was received.

20. The client station of claim 19, wherein: The computer program code is configured to, when executed by at least one processor, cause the client station to: A binary search is performed to determine a scanning time interval based on at least one of the signal strength information or the probe response success rate.

21. The client station of claim 20, wherein: A binary search is performed while the client station is charging.

22. The client station of claim 19, wherein: The identification of the channel from which the probe response was received is stored in a first-in-first-out buffer included in the database.

23. The client station of claim 22, wherein: The computer program code is configured to, when executed by at least one processor, cause the client station to: A query is sent from a client station to a database requesting a subset of channels, wherein the subset of channels is based on identities of channels stored in a buffer of the database.

24. The client station of claim 23, wherein: The sending of the query occurs while the client station is running on battery power.

25. The client station of claim 23, wherein: The subset of channels is determined based on at least one of the most recently or most frequently occurring channels among the channels stored in the buffer.

26. The client station of claim 15, wherein: The client station is a wearable device used to track and monitor pet activities.

27. The client station of claim 15, wherein: The wireless access network operates on the 2.4 GHz radio frequency band.

Citation Information

Patent Citations

  • System and method for automatically detecting and initiating a walk

    US10142773B2

  • Pet health monitor with collar attachment and charger

    US10420401B2

  • Method and system for location based hands-free payment

    US20150051993A1

  • System and Method for Positioning

    US20190200161A9