1. A dimmable beacon light source for a light based positioning system comprising:
a dimmer control switch configured to generate a dimmer signal having a desired light output level;
a dimmable driver for controlling the light output of the light source; and
a modulator for receiving the dimmer signal from the dimmer control switch, generating a digital pulse recognition signal by controlling the frequency of the dimmer signal to a desired frequency value, and transmitting the digital pulse recognition signal to the dimmable driver to drive the light output of the light source, wherein the modulator comprises:
a digital pulse recognition tone generator for receiving binary data from an information source and converting the binary data into one or more digital pulse recognition tones representing the desired frequency value; and
a waveform generator for using the one or more digital pulse recognition tones and the dimmer signal to generate the digital pulse recognition signal.
2. The light source of claim 1, wherein the digital pulse recognition signal comprises a pulse width modulated signal.
3. The light source of claim 1, wherein the digital pulse recognition signal has a duty cycle based on the dimmer signal.
4. The light source of claim 1, wherein the frequency of the digital pulse recognition signal is based on the one or more digital pulse recognition tones.
5. The light source of claim 1, wherein the one or more digital pulse recognition tones are chosen from a set of possible digital pulse recognition tones and the set of possible digital pulse recognition tones comprises a minimum frequency, a maximum frequency, and are separated by a minimum frequency step interval.
6. The light source of claim 5 wherein the minimum frequency, the maximum frequency, and the minimum frequency step interval are chosen based on the frequency response of the light source and the sampling time of a target imaging sensor.
7. The light source of claim 1, wherein the digital pulse recognition tone generator comprises an encoder for mapping the binary data to one or more digital pulse recognition tones.
8. The light source of claim 1, wherein the one or more digital pulse recognition tones are chosen based on pre-computed mappings between the binary data and the digital pulse recognition tones.
9. The light source of claim 1, wherein the one or more digital pulse recognition tones are computed based on the binary data after receipt of the binary data from the information source.
10. The light source of claim 1 wherein the waveform generator combines the one or more digital pulse recognition tones with a periodic symbol created by a symbol creator to generate the digital pulse recognition signal.
11. The light source of claim 10, wherein the symbol created by the symbol creator is selected from a set of symbols by a symbol selector.
12. The light source of claim 11, wherein the set of symbols comprises a saw tooth wave, a sine wave, a square wave, and a square wave with a DC offset.
13. The light source of claim 1, wherein the digital pulse recognition signal has an average output determined by the dimmer signal.
14. The light source of claim 1, wherein the digital pulse recognition signal comprises a hard-coded average output.
15. The light source of claim 1, wherein the dimmable driver comprises the modulator.
16. The light source of claim 1, wherein the dimmable driver converts the digital pulse recognition signal to a pulse width modulated signal to control the output of the light source.
17. The light source of claim 1, wherein the digital pulse recognition signal has a pulse width causing the light output to be substantially the same as the desired light output of the dimmer signal.
18. The light source of claim 1, wherein the dimmer signal is generated by a triac dimmer.
19. The light source of claim 1, wherein the binary data comprises an arbitrary identifier for the light source.
20. The light source of claim 1, wherein the modulator sends the digital pulse recognition signal to the dimmable driver using an override input of the dimmable driver.
21. The light source of claim 20, wherein the dimmable driver receives and ignores the dimmer signal based on receiving the digital pulse recognition signal using the override input of the dimmable driver.
22. The light source of claim 1, wherein the light output of the light source is emitted by a light-emitting diode (LED).
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A computer-implemented method for enforcing entitlements, the computer-implemented method comprising:
loading a library into a memory of a computing device, wherein the library includes a first library function having a first entitlement to use a system resource of the computing device and a second library function not having the first entitlement;
loading an application into the memory of the computing device, the application having a second entitlement;
determining, by the computing device, whether the second entitlement provides access to the system resource; and
when the second entitlement does not provide access to the system resource:
denying linking between the application and the first library function to prevent the application from using the system resource, and
linking the application to the second library function to restrict access to the system resource.
2. The computer-implemented method as in claim 1, wherein determining comprises identifying that the application has made an appropriate application programming interface (API) call required to access the library.
3. The computer-implemented method as in claim 1, wherein determining comprises identifying that the application has made an API call using a correct token as a parameter to access the library with the first entitlement.
4. The computer-implemented method as in claim 1, wherein the system resource is a network socket that provides access to a network.
5. The computer-implemented method as in claim 1, wherein the application is linked to at least one library with a particular entitlement, but the application is denied access to the particular entitlement.
6. The computer-implemented method as in claim 1, wherein the system resource corresponds to a type of socket function.
7. A computing device, comprising:
a processor; and
a memory storing instructions that, when executed by the processor, cause the computing device to perform steps that include:
loading a library into a memory of the computing device, wherein the library includes a first library function having a first entitlement to use a system resource of the computing device and a second library function not having the first entitlement;
loading an application into the memory of the computing device, the application having a second entitlement;
determining, by the computing device, whether the second entitlement provides access to the system resource; and
when the second entitlement does not provide access to the system resource:
denying linking between the application and the first library function to prevent the application from using the system resource, and
linking the application to the second library function to restrict access to the system resource.
8. The computing device as in claim 7, wherein determining whether the second entitlement provides access to the system resource comprises identifying that the application has made an appropriate application programming interface (API) call required to access the library.
9. The computing device as in claim 7, wherein determining whether the second entitlement provides access to the system resource comprises identifying that the application has made an API call using a correct token as a parameter to access the library with the first entitlement.
10. The computing device as in claim 7, wherein the system resource is a network socket that provides access to a network.
11. The computing device as in claim 7, wherein the application is linked to at least one library with a particular entitlement but the application is denied access to the particular entitlement.
12. The computing device as in claim 7, wherein the steps further include:
linking the application to the first function to permit the application to use the first function when the application has the first entitlement of the first function.
13. The computing device as in claim 7, wherein the system resource corresponds to a type of socket function.
14. A machine-readable non-transitory storage medium storing instructions that, when executed by a processor included in a computing device, cause the computing device to carry out steps that include:
loading a library into a memory of the computing device, wherein the library includes a first library function having a first entitlement to use a system resource of the computing device and a second library function not having the first entitlement;
loading an application into the memory of the computing device, the application having a second entitlement;
determining, by the computing device, whether the second entitlement provides access to the system resource; and
when the second entitlement does not provide access to the system resource:
denying linking between the application and the first library function to prevent the application from using the system resource, and
linking the application to the second library function to restrict access to the system resource.
15. The machine-readable non-transitory storage medium as in claim 14, wherein determining comprises identifying that the application has made an appropriate application programming interface (API) call required to access the library.
16. The machine-readable non-transitory storage medium as in claim 14, wherein determining comprises identifying that the application has made an API call using a correct token to access the library with the first entitlement.
17. The machine-readable non-transitory storage medium as in claim 14, wherein the system resource is a network socket that provides access to a network.
18. The machine-readable non-transitory storage medium as in claim 14, wherein the application is linked to at least one library with a particular entitlement but the application is denied access to the particular entitlement.
19. The machine-readable non-transitory storage medium as in claim 14, wherein the system resource corresponds to a type of socket function.
20. A method for enforcing application entitlements, the method comprising:
loading a library into a memory of a computing device, wherein the library includes a first library function having a first entitlement to use a network resource and a second library function not having the first entitlement;
loading an application into the memory of the computing device, the application having a second entitlement;
determining, by the computing device, whether the second entitlement provides access to the network resource; and
when the second entitlement does not provide access to the network resource:
denying linking between the application and the first library function to prevent the application from using the network resource, and
linking the application to the second library function to restrict access to the network resource.
21. The method as in claim 20, further comprising:
identifying that the application has made an appropriate application programming interface (API) call required to access the library.
22. The method as in claim 20, further comprising:
identifying that the application has made an API call using a correct token as a parameter to access the library with the first entitlement.
23. The method as in claim 20, wherein the network resource is a network socket that provides access to a network.
24. The method as in claim 20, wherein the application is linked to at least one library with a particular entitlement but the application is denied access to the particular entitlement.
25. The method as in claim 20, further comprising linking the application to the first function to permit the application to use the first function when the application has the first entitlement of the first function.
26. The method as in claim 20, wherein the network resource corresponds to a type of socket function.