Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SAFETY SYSTEM UTILIZING PERSONAL AREA NETWORK
Document Type and Number:
WIPO Patent Application WO/2015/054501
Kind Code:
A9
Abstract:
A communication system that revolves around a hardware device which uses Bluetooth Low Energy technology and a wireless BLE connection to communicate with a partner application on a separate platform (such as but not limited to smartphones, computers, and semiconductors). The user can register the device with the application wirelessly by putting it into an advertising mode and allowing it to be recognized by the application. This connection process will be done either automatically or manually. The user can then (via button press or other hardware input) use the BLE connection to send a signal from the device to the application. When the application receives this signal, it initiates a specific action. Examples include (but are not limited to): automatically sending a text message, making a distress call to a remote server, and invoking the platform to run additional programs or services.

Inventors:
KIRKPATRICK III WILLIAM RICHARD (US)
BREESE TYLER CASEY (US)
DE WITTE JEFFREY (US)
RADZINS ANTHONY E (US)
Application Number:
PCT/US2014/059915
Publication Date:
August 06, 2015
Filing Date:
October 09, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
STADSON TECHNOLOGY (US)
KIRKPATRICK III WILLIAM RICHARD (US)
BREESE TYLER CASEY (US)
DE WITTE JEFFREY (US)
RADZINS ANTHONY E (US)
International Classes:
G08B1/08; H04W4/90
Attorney, Agent or Firm:
NOVAK DRUCE CONNOLLY BOVE + QUIGG LLP (525 Okeechobee Blvd.Fifteenth Floo, West Palm Beach Florida, US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A method for operating a stimulus device, comprising:

detecting, via a monitoring component, the occurrence of an event;

in response to detecting the occurrence of the event, starting a first timer and a second timer;

recording any additional occurrences of the event while the second timer is counting; determining that the occurrences of the event match an activation pattern and that the activation pattern was matched while the first timer was still counting;

in response to determining that the occurrences of the event match an activation pattern and that the activation pattern was matched while the first timer was still counting, changing a stored value for a characteristic and transmitting a notification of the changing of the stored value.

2. The method of claim 1, further comprising:

ascertaining that the occurrences of the event do not match the activation pattern; and in response to ascertaining that the occurrences of the event do not match the activation pattern, restarting the second timer and repeating from the recording.

3. The method of claim 1, further comprising:

ascertaining that the activation pattern was not matched while the first timer was still counting; and

in response to ascertaining that the activation pattern was not matched while the first timer was still counting, repeating from the detecting.

4. The method of claim 1, wherein the event comprises a hardware interrupt within the stimulus device.

5. The method of claim 1, wherein the event comprises a rotation of the stimulus device.

6. A method for operating a stimulus device, comprising:

detecting, via a monitoring component, a change in a sensor signal;

in response to detecting the change in the sensor signal, starting a timer and monitoring the sensor signal; determining that the sensor signal indicate that a threshold has been met and that the pressure threshold was met while the timer was still counting;

in response to determining that the sensor signal indicate that a threshold has been met and that the threshold was met while the timer was still counting, changing a stored value for a characteristic and transmitting a notification of the changing of the stored value.

7. The method of claim 1, further comprising:

ascertaining that the sensor signal indicate that a threshold has not been met; and in response to ascertaining that the sensor signal indicate that a threshold has not been met, repeating from the detecting.

8. The method of claim 1, further comprising:

ascertaining that the threshold was not met while the timer was still counting and that the change in the sensor signal is no longer present; and

in response to ascertaining that the threshold was no met while the timer was still counting, repeating from the detecting.

9. The method of claim 1, further comprising:

ascertaining that the threshold was not met while the timer was still counting and that the change in the sensor signal is still present; and

in response to ascertaining that the threshold was no met while the timer was still counting, repeating from the starting.

10. The method of claim 1, wherein the sensor signal is generated using a pressure sensor.

11. A method for operating a stimulus device, comprising:

detecting, via a monitoring component, an object on a sensing surface;

in response to detecting the object on the sensing surface, starting a timer;

determining that the object is still on the sensing surface and that the timer has completed counting;

in response to determining that the object is still on the sensing surface and that the timer has completed counting, scanning a pattern on the object;

determining that the pattern on the object matches an activation pattern; and

in response to determining that the pattern on the object matches an activation pattern, changing a stored value for a characteristic and transmitting a notification of the changing of the stored value.

12. The method of claim 1, further comprising:

ascertaining that the timer has completed counting and that the object is no longer on the sensing surface; and

in response to ascertaining that the timer has completed counting and that the object is no longer on the sensing surface, repeating from the detecting.

13. The method of claim 1, further comprising:

ascertaining that the pattern on the object does not match an activation pattern; and in response to ascertaining that the pattern on the object does not match an activation pattern, repeating from the detecting.

14. The method of claim 1, wherein the sensor signal is generated using a pressure sensor.

15. A method for operating a stimulus device, comprising:

detecting a vocal command;

interpreting the vocal command;

determining whether the vocal command matches a pre-defined activation command; and in response to determining whether the vocal command matches a pre-defined activation command, changing a stored value for a characteristic and transmitting a notification of the changing of the stored value.

16. A computer-readable storage medium, having stored thereon a computer program for causing a computing device to perform the method of any of claims 1-15.

17. A stimulus device comprising:

a monitoring component;

a processor; and

a computer-readable storage medium, having stored thereon a computer program for causing the processor to perform the method of any of claims 1-15.

Description:
SAFETY SYSTEM UTILIZING PERSONAL AREA NETWORK COMMUNICATION

PROTOCOLS BETWEEN OTHER DEVICES

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to and the benefit of U.S. Provisional application No. 61/888,699, filed October 9, 2013 and entitled "Device that Utilizes the Bluetooth Smart Communication Between Device(s) and Application(s) to launch said Applications", the contents of which are herein incorporated by reference in their entirety.

FIELD OF THE INVENTION

[0002] The present invention relates to a safety system, and more specifically to apparatus and methods for implementing a safety system using devices communicating via personal area network protocols.

BACKGROUND

[0003] From computers to smartphones, modern society is dominated by technology that makes our day-to-day tasks simpler, faster, and more connected with the rest of our lives. However, one area in which technology is failing to do this adequately is that of emergency situations. On paper, modern emergency solutions seem to work very well. In practice however, a high- pressure, performance-impairing, and/or time- sensitive emergency can easily get out of hand in the time it takes a person to operate these emergency solutions.

[0004] A person can dial 911 to receive emergency assistance, but this is not a viable option if they are involved in a struggle or their vision is impaired. In a situation where the conspicuous action of placing a 911 call could jeopardize a person's safety, a subtlety- typed text may be a better alternative, unless the individual is caught while doing so. Given the time and focus required to type and send a text, the risk of being caught in this kind of situation is quite high. In situations where a message of some sort is successfully sent by a person to an emergency response team, there is a high chance that the time restrictive and response restrictive nature of many emergency situations would only allow the user to send a brief message, leaving out important details which could mean the difference between life and death. And although there are some devices that fulfill the role of a faster and more efficient way of notifying responders of an emergency situation, the vast majority of these devices feature technology which is outdated and not integrated into the user's personal devices, making it an un-instinctive method of communication and thus hindering the user's ability to quickly respond to and emergency.

SUMMARY

[0005] The present invention is a security alert system which uses BLE as the primary communication protocol between the transmitting and receiving devices which are present in the invented system. The transmission device contains BLE hardware capable of sending information to the receiving device. The information being sent can vary in content depending on the method used to initiate the transmission. The transmitting device can accept several different stimuli which will each initiate a transmission of data specific to the stimuli. The receiving device can in turn accept several different forms of data within the transmitted signal. The receiving device can then perform specific actions depending on the data received from the transmission. Some of these actions include, but are not limited to, sending a message to a server, sending a text message, audible alert, visual alert, and cellular phone call.

BRIEF DESCRIPTION OF DRAWINGS

[0006] FIG. 1A is a schematic illustrating the general flow of activities performed between the transmitting device and receiving device.

[0007] FIG. IB is a schematic illustrating the general sequence of actions performed between the transmitting device being activated, sending a message to the receiving device, and the receiving device communicating with a server.

[0008] FIG. 2 is a schematic illustrating the flow of activities in the specific embodiment where the device is activated by a hardware interrupt pattern.

[0009] FIG. 3 is a schematic illustrating the flow of activities in the specific embodiment where the device is activated by a vocal command.

[0010] FIG. 4 is a schematic illustrating the flow of activities in the specific embodiment where the device is activate by a pattern of rotations in a multi-dimensional plane.

[0011] FIG. 5 is a schematic illustrating the flow of activities in the specific embodiment where the device is activated by a pre-determined pressure threshold being met.

[0012] FIG. 6 is a schematic illustrating the flow of activities in the specific embodiment where the device is activated by a scanning device using a biometric scanner.

[0013] FIG. 7 is a diagram illustrating the network associations of the system in the specific embodiment of a server being used as the messaging device for multiple receiving applications. This particular embodiment also assumes that the receiving applications are operating on smartphones.

[0014] FIG. 8A and 8B illustrate an exemplary computing device for carrying out the various embodiments.

DESCRIPTION

[0015] The present invention is described with reference to the attached figures, wherein like reference numerals are used throughout the figures to designate similar or equivalent elements. The figures are not drawn to scale and they are provided merely to illustrate the instant invention. Several aspects of the invention are described below with reference to example applications for illustration. It should be understood that numerous specific details, relationships, and methods are set forth to provide a full understanding of the invention. One having ordinary skill in the relevant art, however, will readily recognize that the invention can be practiced without one or more of the specific details or with other methods. In other instances, well-known structures or operations are not shown in detail to avoid obscuring the invention. The present invention is not limited by the illustrated ordering of acts or events, as some acts may occur in different orders and/or concurrently with other acts or events. Furthermore, not all illustrated acts or events are required to implement a methodology in accordance with the present invention.

[0016] In view of the limitations of existing security or safety alert capabilities of computing devices, the present technology is directed to a fast and effective communication system that intuitively integrates into a user's day-to-day technology is not only recommended, it is crucial. In particular embodiments, an emergency communication system is provided that revolves around the Bluetooth 4.0 technology, which also known as Bluetooth Low-Energy, and henceforth referred to as BLE. The communication system of the present technology can therefore consists of a BLE-enabled device, the BLE communication stack and profiles, and a BLE-receptive platform running an alert application (including but not limited to smartphone applications, computer applications, and semiconductor applications). The aforementioned device can connect to the platform, and thus the application, via the BLE stack. Thus, in response to some stimulus at the device, a message can be sent to the application on the platform via the BLE stack. This causes the application to invoke a response to the situation, including (but not limited to) a call to an emergency situation server, text messages, phone calls, audio alerts, and execution of other hardware- and software- related applications.

[0017] The modern, energy-efficient components of this system allow for easy integration into devices used by people on a daily basis. This system will allow for a fast, instinctive, and subtle form of communication in response to an emergency situation. The simplicity and intuitiveness of this system can be effective in situations of struggle, such as instances of robbery or sexual assault. When properly implemented, the system can be used to provide immediate notification of danger to multiple people and/or organizations at once, allowing for a higher response rate to violent situations ranging from attempted murder to schoolyard bullying.

[0018] Further, the system of the various embodiments is configured so that a person whose movements are impaired by a medical emergency would only need to perform simple and intuitive actions to send information to emergency responders that could save their life, especially if the medical emergency results from a known pre-existing condition. This system can be used to identify people who, for whatever reason, are unable to communicate their identity to others due to an impairment inflicted by an emergency situation. It can even be used to help locate or redirect a lost or disoriented individual.

[0019] The energy-efficient nature of BLE allows this system to be implemented in a variety of situations. This flexibility allows the system to be optimized to fit the natural intuition of the user, resulting in faster and more accurate responses to emergency situations. However, although the various embodiments will be described primarily with respect to Bluetooth wireless technologies, the present technology is not limited in this regard. Accordingly, the various embodiments can be utilized with any type of wireless technologies, include personal area networks such as INSTEON, IrDA, Wi-Fi, Wireless USB, Bluetooth, Z-Wave, ZigBee, and Body Area Networks, to name a few.

[0020] DEFINITIONS

a. Bluetooth 4.0/Bluetooth Smart/Bluetooth Low Energy/BLE - The low-energy, wireless protocol developed by Bluetooth SIG which operates primarily on the 2.4 GHz ISM band. The protocol is used by the device(s) to wirelessly connect and communicate with the application(s).

b. Device - The hardware/firmware/software part of the system that utilizes BLE (or other wireless technologies) to connect and communicate with a receiving application or another device in said system. The device is both modular and stationary depending on the preference or desired application from the user.

c. Application - The software layer/program/runtime operating on the receiving equipment of the system (i.e., the platform) that connects with and receives notifications from the device.

d. Platform - Any compatible equipment that the application is installed/operating on. This can include but is not limited to computers, smartphones, and semiconductor chips.

e. BLE stack - The underlying software layer associated with the BLE protocol that is present in the system. This software provides access to the functionality of the BLE hardware and transmission protocols.

f. Characteristic - Object(s) that is declared and initialized in the firmware/code on the device's BLE hardware. Changes to values that are initialized inside this characteristic cause a notification to be sent to the application.

g. Variable - When "Variable" is used in this document, it is meant as the variable(s) that are declared and initialized inside of the Characteristic. When the value of these variable(s) change a BLE notification is sent to the application. h. Notification/BLE notification - An invoked message that is sent via the BLE Stack from the device to the application. This message informs the receiving platform that a specific characteristic has been changed on the sender's side, i. stimulus - An external or internal environmental change detected by a host processor's sensor(s) that invokes a value change and transmission of the characteristic.

j. User - A person utilizing the device and application for personal use, product testing purposes, warranty claims, and product demonstration.

[0021] As noted above, the system of the present technology involves a device (stimulus or sensing device) and a platform running an application, where the device and the platform (and the application) are communicatively coupled via a Bluetooth or other personal area network connection.

[0022] Device Details: The stimulus or sensing device can be configured in a variety of ways. In one particular embodiment, the stimulus or sensing device can includes various semiconductor components and electrical circuitry to perform low-power operation, stimuli measurement and detection, and wireless communication. FIG.s 8A and 8B illustrate a generic configuration of hardware components that can be present in the device. FIG. 8A is an exemplary bus system which the hardware components of the device can use to communicate. FIG. 8B is an exemplary architecture layout of the individual hardware components of the device that can be connected with one another. FIGs. 8 A and 8B are described in greater detail below.

[0023] In operation, the device can accept several different stimuli which will each initiate a transmission of data specific to the stimuli. The device can incorporate sensors to measure and detect said stimuli. Upon measuring or detecting the desired level of a specific stimulus the appropriate value is sent to the receiving application on the platform. As noted above, the device can use the BLE stack to advertise and notify all connected device(s) that it has been activated. On initialization, the device begins advertising, allowing compatible device(s) to connect. For example, the device can do this advertising through the BLE chip's GAP (Generic Access Profile). Upon startup, the code on the BLE chip then declares and initializes a GAP Characteristic. This Characteristic in turn declares a Variable and initializes it to a set value. Upon detection of the second button press, a method is called which changes the value of the Variable to a different value. The value change causes a BLE notification to be sent from the device to the application. In particular embodiments, the device will be able to auto-reconnect to known devices without advertising and remain automatic.

[0024] Application/Platform Details: The application on the platform can, as discussed above, use the BLE stack in the API for whichever platform it runs on (including but not limited to iPhone, Android, Blackberry, Windows Phone, Windows PC, and Macintosh Computers) to connect to the device. Like the stimulus or sensing device, the platform can also include various semiconductor components and electrical circuitry to perform low-power operation, stimuli measurement and detection, and wireless communication. In operation, the application can request to be notified when an alert has been activated and then runs procedural code to send a packet of data to the server with the intent of initiating a specific response from the server.

[0025] Device/Platform connection Details: In particular embodiments, the connection consists of a Bluetooth 4.0 registration between the device and the platform running the application. Once registered, the device interacts with the platform via Bluetooth 4.0 primarily. Whenever the appropriate stimulus acts on the device, the response is sent via a Bluetooth 4.0 notification to the platform.

[0026] FIG. 1A shows a flowchart for an exemplary connection process of the present technology, with steps on the left corresponding to the device and steps on the right corresponding to the application/platform. Once the device has been turned on in step 102, it will begin step 104 by entering an idle state. This means that the device deactivates all nonessential and irrelevant processes in order to conserve power. The one exception to this rule is the device's Bluetooth 4.0 technology. In this step, if the device is not currently connected to an application via its platform, then it will begin constant advertising using its Bluetooth 4.0 profile. Concurrently or contemporaneously, the application on the platform can be opened or initialized at step 112. This then causes the application to startup a service at the platform at step 114 and to being scanning for known devices at step 116.

[0027] The advertising on the device is done so that the application/platform can detect and connect/reconnect to the device as necessary in steps 120-124 (for connecting to a new device) or steps 116-118 (for reconnecting to a known device). That is, if a known device is detected at step 118, the device can be connected to the platform and the application at step 126. Otherwise, the application/platform can scan for advertising devices at step 120. If a device is found at step 122, the device can be connected at step 126; otherwise the application/platform can wait at step 124 and repeat the scanning at step 120 and locating at step 122 until a device is found.

[0028] When the device connects to an application via its platform, it stops advertising and begins managing the connection. At the same time, the application enters step 128 (following a successful connection in step 126) and uses its platform to manage its side of the connection from the platform's own BLE stack. The application stays in step 128 until it receives transmission data from the device. Although it is connected to a platform, the device utilizes the energy-efficient methods of the BLE stack to minimize power consumption. Whether it is advertising or connected, the device maintains the idle state as long as it does not detect any Stimuli, and uses less power in this state than in its more active state(s).

[0029] When the device enters step 106 by detecting a stimulus, it leaves the idle state from step 104 and immediately checks to see if it is connected to a platform. If there is no connection, then the device disregards the stimulus and returns to its idle state in step 104, where it will continue to advertise. If a connection exists, then the device enters step 110, where it uses the BLE stack to send a packet of data to the application. The transmission data is received by the application via its platform's BLE stack. The application then interprets the data in step 132 and decides if it has received a correct pre-defined value(s) in step 134. An incorrect value causes the application to return to step 128, while a correct value enables the application to perform an action, which typically involves sending an alert of some sort.

[0030] FIG. IB illustrates this alert process as well, showing the actions by a user, the device, the application/platform, and a server. The process begins with a user providing at stimulus or input to the device (i). At the device, it is determined whether a stored value is changed (ii) in response to the stimulus provided. In response to this change, a notification of the change can be provided to the application on the platform (iii). In some configurations, the notification can include the value. In other configurations, the application, via the platform, can communicate with the device to retrieve the changed value (iv). Once the value is obtained, the validity of the value can be determined (v). This involves determining whether the value is sufficient to trigger action, whether the value is a valid value type on which action can be taken, and/or whether the value corresponds to an event for which a message is appropriate. Finally, upon validating the value, a message can be sent to the server indicating that an alert is needed and/or the type of emergency (vi). In some embodiments, the message can include additional information regarding the user.

[0031] FIG. 7 can be used as an illustrative example of the process of the present technology in action. In this example, the device on a user is represented by object 702, while the platform and receiving application are encapsulated by object 704: a smartphone (the platform) running security app (the application). In operation, the device is acted on by an external stimulus, which causes the device to transmit, via the BLE stack, a data packet to the smartphone. The smartphone receives this transmission data, which is interpreted by the receiving application running on it. Once the application has verified that the data contains the correct values, it performs an action. In this example, that action is to post a message to a relay server, portrayed in the FIG. as object 706, informing it of an emergency situation. The server then sends a message to a receiving network, such as other smartphones (depicted as object 708), each of which is running a version of the receiving application that the server has registered to correspond with the receiving application running in object 704. The receiving network can be predefined at the server. However, in some embodiments, the receiving network can be determined dynamically based on various factors. Such factors can include, but are not limited to type of emergency, location of the platform, and local emergency response capabilities.

[0032] It should be noted that while the various embodiments will be discussed with respect to particular types of computing devices (e.g., smartphones and servers), any type of computing device can be used in the various embodiments for any components of the system.

[0033] In general, the device operates by receiving a stimulus, detecting that the stimulus corresponds to an event, changing a value of a characteristic based on the event, and sending a notification of the change in the value to the application/platform. In some embodiments, the device can include one or more timers or components providing timers in order to look for patterns of events with a particular time period. Some examples of the processing of different types of events at the device are illustrated in FIGs. 2-6.

[0034] FIG. 2 presents a diagram of actions in an exemplary method of the device in which a hardware interrupt pattern is used to activate the system alert used in the various embodiments. That is, the device is configured such that a user action on the device causes the device to generate an interrupt. For example, the pressing of a button or other input. However, the present technology is not limited in this regard and any type of action generating an interrupt can be used to define the occurrence of an event..

[0035] The method can begin at step 202 and continue to step 204. At step 202, the device is in an idle state and ready to receive external stimuli. At step 204, an external stimulus is detected in the form of an interrupt caused by a hardware component on the device. This initial hardware interrupt initiates a process on the device where the interrupt signals being detected by the device are combined with multiple timers to create a pattern of interrupts. This interrupt pattern is then later compared within the current method with a pre-defined pattern stored in memory to determine the appropriate action to be taken. Continuing from step 204 to step 206, a timer which we can refer to as Timer 1 is reset to a pre-defined starting value and will begin counting, iterating in a pre-defined fashion throughout the remainder of this method until reaching a predefined ending value. At the same time, step 204 will also continue to step 208. At step 208, a second timer which we can refer to as Timer 2 is reset to a pre-defined starting value and will begin counting in a pre-defined fashion throughout the remainder of this method until reaching a pre-defined ending value. In this example, Timer 1 is to determine the time taken to complete a pattern of interrupts and Timer 2 is used to provide a time increment between different interrupts necessary to create unique patterns.

[0036] The pre-defined fashion of incrementing that Timer 1 and Timer 2 follow can refer to the time value between each increment and the direction in which each increment follows. For example, one such fashion for incrementing could be to transition 0.1 seconds in the positive direction every increment. So, if Timer 1 begins at the value of 1 seconds and follows this exemplified fashion of incrementing, the next increment of Timer 1 would have the value of 1.1 seconds. Inversely, if the increment direction in this example was in the negative direction with the same value of 0.1 seconds and Timer 1 starts with a value of 1 seconds, the next increment would have the value of 0.9 seconds. This method of determining the particular fashion of incrementing can be applied to all other embodiments described herein. However, any other type of incrementing can be used as well.

[0037] Step 208 continues to step 210, where a concurrent interrupt is detected after Timer 2 has been reset due to an earlier interrupt that was detected. After an interrupt is detected in step 210, the method will then transition into comparing the current interrupt pattern that has been recorded against a pre-defined pattern which is saved in memory. If the current saved interrupt pattern does not match the pre-defined pattern in memory, and Timer 1 has not yet reached its ending value which is checked in step 214, step 212 will transition back to step 208 where Timer 2 is reset to its initial value and the method waits for another interrupt to occur. In the event that Timer 1 reaches its ending value before an appropriate pattern of interrupts is detected, the method will then transition from step 214 back to step 202 and return the device to an idle state. Any interrupt detected after this point will be treated as a new pattern of interrupts and will not be associated with any interrupts recorded prior to step 214. In the event where an appropriate pattern of interrupts is detected before Timer 1 reaches its ending value, the method will then transition to step 216. In step 216, the value of a GAP Characteristic stored on the device will be changed to the appropriate value associated with the specific interrupt pattern which was detected. The method will then transition to step 218 where the device transmits a signal to the receiving device, thus notifying the receiving device of the change in GAP characteristic value. After this notification occurs, the method returns to step 202 where the device is transitioned back into idle state.

[0038] For the patterns mentioned in the previous embodiment exemplified by FIG. 2, the patterns are determined by a relationship between the number of interrupts detected and the value of the timer which separates said interrupts. This relationship between time values and interrupts can be described mathematically below:

[0039] The following mathematical formulas and concepts below are explained in greater device in U.S. Patent Application No. 13/891,223, filed May 10, 2013 and entitled "System and Method for Emergency Communications," the contents of which are herein incorporated by reference in their entirety.

btj x : is the change in timer form one detected interrupt created by the User Interface Compo to the next interrupt which is illustrated by the increment of Timer 2. t(S jx ): is the time that the interrupt of the User Interface Components S jx occurred

T : is the Total Time duration in which a pattern can occur bt jx = t(S jx ) - t(S j ( x .i))

T = > St jf k: number of User Interface Components on the device

/ = { 1,2,3,...,k} : set of integers representing each User Interface Component on the device

R = { 1,2,3,..., 2* .· set of integers representing each unique state Combination of the User

Interface the total state set, where each row of

the matrix represents one of unique combinational state configurations of the User Interface Components

S Ji =< S R J .i 1 , S R J , l7 2 , S R J ./ 3, , ... , S R J . / K >: A specific unique combinational state configuration of the User Interface Components

m: the number of combinational state configurations of the User Interface Components that the user enters, representing a pattern

Sj X : a specific unique combinational state configuration of the User Interface Components for a specific pattern index

P: set of patterns *

[0040] FIG. 3 presents a diagram of actions in an exemplary method of the device in which a vocal command is used to activate the system alert used in the various embodiments. The method can begin at step 302 where the device is in an idle state and ready to receive an external stimulus. The method continues on to step 304 when the device has been prompted to receive a vocal command. In this particular embodiment, the process responsible for receiving the vocal command is manually invoked by the user of the device. It should be known that in other embodiments, the device can be configured in such a way that the device is always capable of receiving a vocal command without the need to be manually invoked by the user. The device receives the vocal commands in the form of acoustic waves which are collected in an integrated acoustic-to-electric transducer within the device. Once the vocal command is received in step 306, the method continues to step 308 where the vocal command is interpreted by the device. The collected acoustic waveform is passed through an analog-to-digital converter to be recorded, stored in a buffer memory space, and transformed for processing. The processing of the signal is done by targeting varying intensities and frequencies of interest in the stored digital information in order to interpret and extract defined vocal dictations and/or patterns within said digital information. In step 310, the now processed vocal data is compared against a pre-set data list within the device's memory. The pre-set data list can contain several patterns of particular words, phrases, dictation, rhythms, and tones. These can be combined in any number of possible order and magnitude. A specific example of a pattern which can be used is the user speaking the phrase, "Call for help", into the device. This phrase can then be interpreted based on the particular words in the phrase, the time elapsed between each word in the phrase, the total time elapsed for the entirety of the phrase to be spoken, the particular tone of the phrase or individual words in the phrase, and dictation of the phrase or individual words in the phrase. In step 310, if the processed vocal data does not match any of the patterns in the pre-set data list, the method will transition to step 302 and return the device to an idle state. No further actions will be taken by the method. If the processed vocal data does match at least one of the patterns in the pre-set data list, the method will transition from step 310 to step 312, where the GAP characteristic value will be changed to the value associated with the particular acoustic pattern which was detected. The method will then transition to step 314 where the device will notify the receiving application of the change in GAP Characteristic value. After this notification step has completed, the method will transition to step 302 where the device is returned to an idle state until more acoustic data is ready available to be collected.

[0041] FIG. 4 presents a diagram of actions in an exemplary method of the device in which a pattern of rotations in a multidimensional plane is used to activate the system alert used in the various embodiments. This method begins at step 402 where the device is in an idle state and not performing any form of rotation. This continues into step 404 where an initial rotation of the device is detected. This starts two timers within the method which are exemplified by steps 406 and 408. Step 406 represents Timer 1 which records the total time elapsed for a particular pattern of rotations by the device. Step 408 represents Timer 2 which records the time elapsed between each individual rotation of the device. The combination of retains made by the device in a multi-dimensional plane and the time increments between each rotation create a unique pattern of rotations. Each new rotation in the pattern is recorded in step 410. After each new rotation, the method checks the recorded pattern of rotations against a pre-defined pattern saved in memory on the device. If the recorded pattern matches the pre-defined pattern in memory, the method will then continue to step 416 where the GAP characteristic value is changed to the value associated with the matched pattern. The method then continues to step 418 where the device sends a transmission to the receiving application notifying the application that the GAP characteristic value has been changed. The method detects the particular rotations of the device using a combination of an accelerometer and a gyroscope. This allows the method to determine both the acceleration and orientation of the device in a multi-dimensional plane. The pattern created by these recorded rotations can be any combination of change in angle, change in elevation, change in acceleration, change in horizontal position, increment of time between recorded rotations, and total time taken to record a set pattern.

[0042] FIG. 5 presents a diagram of actions in an exemplary method of the device in which a pressure gauge or other pressure sensor is used to activate the system alert used in the various embodiments. For example, a pressure sensor can be activated by depression thereof by the user and an emergency can be indicated if the pressure is maintained for an extended period of time. The method begins at step 502 where the device is in an idle state. The method will then continue to step 504 when a change in pressure generates a signal that causes an interrupt to be generated and this interrupt is detected. Once this interrupt is detected, a timer initiated at step 506. The timer is used to determine whether the pressure change is real or cause by accidental activation of the sensor. As the timer counts, the signals from sensor are monitored at step 508. Thereafter, at step 510, it is determined whether the signals from the sensor indicate a threshold has been met, i.e., indicate the sensor was intentionally activated. If the threshold is not met, the method returns to step 502. If the threshold is met, it is next determined whether the threshold was met prior to the timer completing counting at step 512. If the threshold was not met before the time completed counting, the method continues to step 514 to determine is the interrupt with the sensor is still active, e.g., pressure is still being applied. If so, the method returns to step 506, else the method returns to step 502. If the threshold was met before the timer completed counting, the method continues to step 516. In step 516, the value of a GAP Characteristic stored on the device will be changed to the appropriate value associated with the pressure change which was detected. The method will then transition to step 518 where the device transmits a signal to the receiving device, thus notifying the receiving device of the change in GAP characteristic value. After this notification occurs, the method returns to step 502 where the device is transitioned back into idle state.

[0043] FIG. 6 presents a diagram of actions in an exemplary method of the device in which a biometric sensor is used to activate the system alert used in the various embodiments. The method begins at step 602 where the device is in an idle state. The method will then continue to step 604 when the presence of an external object is detected on the scanner. Once an object is detected, a timer is initiated in step 606. This timer is used to make sure that the detected object was not placed on the scanner by accident, and was intentionally placed on the scanner to be scanned. After the timer has elapsed in step 608, the method continues to step 610 where the method checks to determine if the object is still present on the scanner. If the object is still present on the scanner, the scanner will then initiate the process of interpreting the pattern of the object in step 612. This scanned pattern is then compared against a pre-determined pattern in memory on the device in step 614. If the scanned pattern matches the pre-determined pattern, the method continues to step 616 where the GAP Characteristic value is changed to a value associated with the matched pattern. Then in step 616, the method sends a transmission to the receiving application notifying said application that the GAP Characteristic value has changed.

[0044] A specific example of this illustrated method can be the scanning of a user's fingerprint. The user would have their particular fingerprint stored in the device's memory as a pattern. When the user chooses to activate an action on the device, the user would place their finger on the scanner for a set amount of timer necessary for the scanning to take place. The device would then interpret the user's fingerprint and compare it against the stored pattern. If the user's fingerprint is a match to the stored pattern, the particular action associated with the user's fingerprint would be initiated.

[0045] Advantages. There are a myriad of advantages provided by the invented system, but three primary advantages are its originality, its efficiency, and its flexibility. Most Bluetooth 4.0 inventions involve the passive or reactive conveying of information, such as a BLE-enabled pedometer that records steps and sends them to a smartphone upon request. In this example, like in many others, the smartphone (the master) has complete control over and access to the pedometer (the slave), having to actively access information from it as it sees fit. Our system is the first invention that uses slave to essentially control the master. Although the device acts as the slave in this relationship, we have written the application (which is the master) in such a way that it waits on an update from the device before performing an action. This is not only incredibly beneficial, but it is the first instance of it occurring in an invention using BLE. Credit for the efficiency of this system also goes to the new BLE technology: its low power consumption allows for longer battery life, opening up numerous possibilities and applications that were previously ruled out by the need for wired or installed systems to accomplish what ours can now do wirelessly. Thanks to this and the manner in which it has been designed, the invented system can be applied to a variety of products in a variety of industries, as shown in this patent.

EXAMPLES

[0046] The following examples and results are presented solely for illustrating the various embodiments and are not intended to limit the various embodiments in any way. A safety alert system has been configured which consists of a transmitting BLE device and a receiving application, and which utilizes BLE to integrate wireless contact for notifications.

[0047] Transmitting BLE device. The transmitting device can perform a number of actions specific to the invented system. The execution of said specific action is dependent on the intensity and form of detected/measured stimuli. For each stimulus, a specific piece(s) of electronic hardware is integrated into the device. Each piece(s) of electronic hardware can be added during production or at a later time by the inventing party, third-party, or device user based on the use-requirements. At any time each piece(s) of electronic hardware can be removed by the invention party, third-party, or device user. These activation methods include:

a. Voice and/or audible patterns

i. The device monitors acoustic waves of the surrounding environment it's operating in through the integration of an acoustic-to-electric transducer. The measured waveform is passed through an analog-to-digital converter to be recorded, stored in a buffer, and transformed for processing. Areas of varying intensities and frequencies of interest in the stored digital information is targeted during processing to interpret and extract defined vocal dictations and/or patterns to invoke a value change and transmission of the characteristic. This process either continuously occurs while the device is operating or can be manually invoked by the user.

b. Hardware interrupts

i. The device accepts hardware interrupts which could be in the form of a tactile switch. There can be one or more interrupts, occurring individually, simultaneously, and/or in specific patterns. The device continuously scans for a predetermined voltage or current value on each interrupt port to be met or exceeded to trigger. Once detected, a value change and transmission of the characteristic is invoked.

ii. Pushing one of said buttons will enter the device into a pairing mode.

iii. Pushing a different said button will initiate the message service of the device. iv. One button can serve both functions of entering pairing mode and of initiating the message service.

v. There can be multiple buttons that perform different actions which can include: entering pairing mode; sending a specific message; sending a multitude of messages depending on which button was pressed or a set pattern of button presses.

c. Shaking device

i. The device constantly monitors the acceleration of itself in singular or multidimensional free space, with reference to its directional velocity, if any, at device initialization, through the integration of an accelerometer. Two key components constitute execution from this action: Movement in one or more dimensions at and within any fixed instance of time, and being in accordance with a defined pattern of variations in acceleration in one or more dimensions. The detection of the specific pattern requirements being met will invoke a value change and transmission of the characteristic.

d. Rotating device

i. In similar fashion to shaking the device, a gyroscope is integrated to detect and measure the roll, pitch, and yaw of the device in multidimensional space. A base orientation will be established on device initialization and, with reference to that base orientation, the activation orientation is automatically set. Once the device is rotated within activation parameters a value change and transmission of the characteristic is invoked.

e. Applying pressure

i. The device monitors the feedback of an integrated pressure-sensitive sensor.

The pattern and intensity of the pressure measured and detected at and within any fixed instance of time will invoke a value change and transmission of the characteristic. If a specific pressure is sensed by the pressure pad, a specific response will be initiated based on the said pressure.

f. Sensing motion

i. The device monitors a fixed-degree range of space with electro-optical sensors and image sensors. Visual deviations and interference are detected and each sensor targets and invokes a value change and transmission of the characteristic based off specific stimuli.

1. An electro-optical sensor is used to measure and detect the distance an object crosses in front of the device with reference to the dimensional plane the line of sight of the sensor is looking on. Fixed, changing, and repetitive variations in distance detected by the sensor can invoke a specific action. Multiple electro-optical sensors can be used in tandem to determine the speed of an object by measuring the difference in time between detections. The direction an object is traveling with respect to the object-facing side of the device can also be determined by the measured difference in distance between detections. The integration of one or more electro-optical sensors allows the user to invoke a specific security-oriented action by raising their fingers in a specific pattern. The time an object remains detected by the sensor, as well as repetitive or specific cycles of detection time, can also invoke an action. Both time and distance can be processed in tandem for detecting more complex patterns and events. One instance is the detection and processing of the device being dropped and spinning rapidly towards the ground. This event can be characterized even with the absence of an accelerometer or gyroscope.

2. The image sensor allows the device to process two-dimensional space, either in grayscale, color, or other spectrums of light depending on the sensor used. Movement in one or two dimensions, changes in detected object(s) size, and shifts in color of the surrounding environment are parameters that can invoke an action.

g. Facial recognition

i. In similar fashion to sensing motion, identifying unique facial characteristics is achieved through the integration of an image sensor. Unique physical details coupled with facial curvature and skin tones with reference environmental lighting form the foundation for identifying a specific user. Unique facial expressions defined by the user allow optional activation methods. The identification of a user or detection of a set facial expression will invoke a value change and transmission of characteristic. h. Thermal sensing

i. The device monitors thermal radiation in the surrounding environment with an integrated thermal sensor. The device will invoke a value change and transmission of the characteristic when the measured radiation meets or exceeds defined maximum/minimum limits.

i. Biometric scanner

i. The device identifies the user by scanning and identifying unique definitions via the optical or capacitance scanning routine of the biometric scanner that is integrated. The device will invoke a value change and transmission of the characteristic upon detection and identification of the correct user.

[0048] Upon the measurement and detection of specific Stimuli by the transmitting device the invoked value change and transmission of the characteristic is received by the application.

Dependent on the type of action invoked, the application responds with an appropriate action.

These actions include: a. Sending an SMS message

ii. If the device is paired with a device enabling cellular communication capabilities the option of sending a SMS message to a predefined number of recipients becomes available. The cellular device can be any electronic hardware enabling the execution of foreground or background services pertaining to BLE.

b. Phone call

iii. If the device is paired with a device enabling cellular communication capabilities the process of cellular voice communication to a predefined number of recipients becomes available. The cellular device can be any electronic hardware enabling the execution of foreground or background services pertaining to BLE.

c. Server call/message

iv. If the device is paired with a BLE-compatible device enabling the transfer of data through cellular communication, Wi-Fi, or other wireless and physical connections leading to a server the ability to call/message said server becomes available. The transferred information contains data such as user profile, user location, alert messages, and gateway device status. Gateway device is the BLE-compatible device the device contacts the application through.

d. Cloud message

v. If the device is paired with a BLE-compatible device enabling the transfer of data through cellular communication, Wi-Fi, or other wireless and physical connections leading to a server facilitating cloud operations and services said cloud platform becomes available. Data will be transmitted through a messaging service on the cloud platform to a predefined number of recipients. e. Open application

vi. If the device is paired with a BLE-compatible device enabling the execution of foreground and background services the ability to open a localized application on said device becomes available. Upon successful action- invoking transmission, the designated application will alert the user if it's already running in the foreground. If not, the application will be brought to the foreground to alert the user or, if the application has not been initialized prior, will be executed and promptly brought to the foreground to alert the user. f . Vibrate alert

vii. If the device is paired with a BLE-compatible device with integrated vibration-inducing hardware the ability to invoke vibration alerts becomes available.

g. Audio alert

viii. If the device is paired with a BLE-compatible device with integrated acoustic- producing hardware the ability to invoke audio alerts becomes available. These alerts can consist of a specific notification tone or pattern, system sounds, ringtone, or audio track depending on the capabilities of said connected device.

h. Flash screen

ix. If the device is paired with a BLE-compatible device with integrated screen of any size and with any range of producible colors the ability to flash the screen becomes available. Flashing consists of increasing and decreasing the luminosity/intensity/brightness of said screen for a specific amount of time with a specific amount of time between set maximum and minimum brightness levels in any predetermined pattern for the action. i. Flash LED

x. If the device is paired with a BLE-compatible device with integrated LED's or other light-emitting electrical component the ability to flash the light becomes available. Flashing consists of increasing and decreasing the luminosity/intensity/brightness of said light or turning on and off the light for a specific amount of time with a specific amount of time between set maximum and minimum brightness levels in any predetermined pattern for the action.

[0049] FIG. 8A and FIG. 8B illustrate exemplary possible configurations for a computing device for implementing the various embodiments. The more appropriate embodiment will be apparent to those of ordinary skill in the art when practicing the present technology. Persons of ordinary skill in the art will also readily appreciate that other system embodiments are possible.

[0050] FIG. 8A illustrates a conventional system bus computing system architecture 800 wherein the components of the system are in electrical communication with each other using a bus 805. Exemplary system 800 includes a processing unit (CPU or processor) 810 and a system bus 805 that couples various system components including the system memory 815, such as read only memory (ROM) 820 and random access memory (RAM) 825, to the processor 810. The system 800 can include a cache of high-speed memory connected directly with, in close proximity to, or integrated as part of the processor 810. The system 800 can copy data from the memory 815 and/or the storage device 830 to the cache 812 for quick access by the processor 810. In this way, the cache can provide a performance boost that avoids processor 810 delays while waiting for data. These and other modules can control or be configured to control the processor 810 to perform various actions. Other system memory 815 may be available for use as well. The memory 815 can include multiple different types of memory with different performance characteristics. The processor 810 can include any general purpose processor and a hardware module or software module, such as module 1 832, module 2 834, and module 3 836 stored in storage device 830, configured to control the processor 810 as well as a special- purpose processor where software instructions are incorporated into the actual processor design. The processor 810 may essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor may be symmetric or asymmetric.

[0051] To enable user interaction with the computing device 800, an input device 845 can represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. An output device 835 can also be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems can enable a user to provide multiple types of input to communicate with the computing device 800. The communications interface 840 can generally govern and manage the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.

[0052] Storage device 830 is a non-volatile memory and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, random access memories (RAMs) 825, read only memory (ROM) 820, and hybrids thereof.

[0053] The storage device 830 can include software modules 832, 834, 836 for controlling the processor 810. Other hardware or software modules are contemplated. The storage device 830 can be connected to the system bus 805. In one aspect, a hardware module that performs a particular function can include the software component stored in a computer-readable medium in connection with the necessary hardware components, such as the processor 810, bus 805, display 835, and so forth, to carry out the function.

[0054] FIG. 8B illustrates a computer system 850 having a chipset architecture that can be used in executing the described method and generating and displaying a graphical user interface (GUI). Computer system 850 is an example of computer hardware, software, and firmware that can be used to implement the disclosed technology. System 850 can include a processor 855, representative of any number of physically and/or logically distinct resources capable of executing software, firmware, and hardware configured to perform identified computations. Processor 855 can communicate with a chipset 860 that can control input to and output from processor 855. In this example, chipset 860 outputs information to output 865, such as a display, and can read and write information to storage device 870, which can include magnetic media, and solid state media, for example. Chipset 860 can also read data from and write data to RAM 875. A bridge 880 for interfacing with a variety of user interface components 885 can be provided for interfacing with chipset 860. Such user interface components 885 can include a keyboard, a microphone, touch detection and processing circuitry, a pointing device, such as a mouse, and so on. In general, inputs to system 850 can come from any of a variety of sources, machine generated and/or human generated.

[0055] Chipset 860 can also interface with one or more communication interfaces 890 that can have different physical interfaces. Such communication interfaces can include interfaces for wired and wireless local area networks, for broadband wireless networks, as well as personal area networks. Some applications of the methods for generating, displaying, and using the GUI disclosed herein can include receiving ordered datasets over the physical interface or be generated by the machine itself by processor 855 analyzing data stored in storage 870 or 875. Further, the machine can receive inputs from a user via user interface components 885 and execute appropriate functions, such as browsing functions by interpreting these inputs using processor 855.

[0056] It can be appreciated that exemplary systems 800 and 850 can have more than one processor 810 or be part of a group or cluster of computing devices networked together to provide greater processing capability.

[0057] Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium). When these instructions are executed by one or more processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, flash drives, RAM chips, hard drives, EPROMs, etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.

[0058] In this specification, the term "software" is meant to include firmware residing in read-only memory or applications stored in magnetic storage, which can be read into memory for processing by a processor. Also, in some implementations, multiple software aspects of the subject disclosure can be implemented as sub-parts of a larger program while remaining distinct software aspects of the subject disclosure. In some implementations, multiple software aspects can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software aspect described here is within the scope of the subject disclosure. In some implementations, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.

[0059] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

[0060] These functions described above can be implemented in digital electronic circuitry, in computer software, firmware or hardware. The techniques can be implemented using one or more computer program products. Programmable processors and computers can be included in or packaged as mobile devices. The processes and logic flows can be performed by one or more programmable processors and by one or more programmable logic circuitry. General and special purpose computing devices and storage devices can be interconnected through communication networks.

[0061] Some implementations include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu- Ray® discs, ultra-density optical discs, any other optical or magnetic media. The computer- readable media can store a computer program that is executable by at least one processing unit, such as a microcontroller, and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.

[0062] While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some implementations are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some implementations, such integrated circuits execute instructions that are stored on the circuit itself.

[0063] As used in this specification and any claims of this application, the terms "computer", "server", "processor", and "memory" all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this application, the terms "computer readable medium" and "computer readable media" are entirely restricted to non-transitory tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any transitory wireless signals, wired download signals, and any other ephemeral signals.

[0064] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), an internetwork (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0065] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client- server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.

[0066] While various embodiments of the present technology have been described above, it should be understood that they have been presented by way of example only, and not limitation. Numerous changes to the disclosed embodiments can be made in accordance with the disclosure herein without departing from the spirit or scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above described embodiments. Rather, the scope of the invention should be defined in accordance with the following claims and their equivalents.

[0067] Although the present technology has been illustrated and described with respect to one or more implementations, equivalent alterations and modifications will occur to others skilled in the art upon the reading and understanding of this specification and the annexed drawings. In addition, while a particular feature of the invention may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application.

[0068] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Furthermore, to the extent that the terms "including", "includes", "having", "has", "with", or variants thereof are used in either the detailed description and/or the claims, such terms are intended to be inclusive in a manner similar to the term "comprising."

[0069] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Also, the terms "about", "substantially", "approximately", or variants thereof, as used herein with respect to a stated value or a property, are intend to indicate being within 20% of the stated value or property, unless otherwise specified above. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.

[0070] While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Numerous changes to the disclosed embodiments can be made in accordance with the disclosure herein without departing from the spirit or scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above described embodiments. Rather, the scope of the invention should be defined in accordance with the following claims and their equivalents.