81 lines
3.5 KiB
Markdown
81 lines
3.5 KiB
Markdown
|
# Eddystone-URL
|
|||
|
|
|||
|
The Eddystone-URL frame broadcasts a URL using a compressed encoding format in order to fit more within the limited advertisement packet.
|
|||
|
|
|||
|
Once decoded, the URL can be used by any client with access to the internet. For example, if an Eddystone-URL beacon were to broadcast the URL `https://goo.gl/Aq18zF`, then any client that received this packet could choose to [visit that url](https://goo.gl/Aq18zF).
|
|||
|
|
|||
|
The Eddystone-URL frame forms the backbone of the [Physical Web](http://physical-web.org), an effort to enable frictionless discovery of web content relating to one’s surroundings. Eddystone-URL incorporates all of the learnings from the [UriBeacon](http://uribeacon.org) format from which it evolved.
|
|||
|
|
|||
|
## Frame Specification
|
|||
|
|
|||
|
Byte offset | Field | Description
|
|||
|
------------|-------|------------
|
|||
|
0 | Frame Type | Value = `0x10`
|
|||
|
1 | TX Power | Calibrated Tx power at 0 m
|
|||
|
2 | URL Scheme | Encoded Scheme Prefix
|
|||
|
3+ | Encoded URL | Length 1-17
|
|||
|
|
|||
|
### Tx Power Level
|
|||
|
|
|||
|
Tx power is the received power at 0 meters, in dBm, and the value ranges from -100 dBm to +20 dBm to a resolution of 1 dBm.
|
|||
|
|
|||
|
Note to developers: the best way to determine the precise value to put into this field is to measure the actual output of your beacon from 1 meter away and then add 41dBm to that. 41dBm is the signal loss that occurs over 1 meter.
|
|||
|
|
|||
|
The value is a signed 8 bit integer as specified by
|
|||
|
[TX Power Level Bluetooth Characteristic](https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.tx_power_level.xml).
|
|||
|
|
|||
|
#### Examples
|
|||
|
|
|||
|
* The value 0x12 is interpreted as +18dBm
|
|||
|
* The value 0xEE is interpreted as -18dBm
|
|||
|
|
|||
|
### URL Scheme Prefix
|
|||
|
|
|||
|
The URL Scheme Prefix byte defines the identifier scheme, an optional prefix and how the remainder of the URL is encoded.
|
|||
|
|
|||
|
|Decimal | Hex | Expansion
|
|||
|
|:------- | :--------- | :--------
|
|||
|
|0 | 0x00 | `http://www.`
|
|||
|
|1 | 0x01 | `https://www.`
|
|||
|
|2 | 0x02 | `http://`
|
|||
|
|3 | 0x03 | `https://`
|
|||
|
|
|||
|
### Eddystone-URL HTTP URL encoding
|
|||
|
|
|||
|
The HTTP URL scheme is defined by RFC 1738, for example
|
|||
|
`https://goo.gl/S6zT6P`, and is used to designate Internet resources
|
|||
|
accessible using HTTP (HyperText Transfer Protocol).
|
|||
|
|
|||
|
The encoding consists of a sequence of characters. Character codes
|
|||
|
excluded from the URL encoding are used as text expansion codes. When
|
|||
|
a user agent receives the Eddystone-URL the byte codes in the URL
|
|||
|
identifier are replaced by the expansion text according to the table
|
|||
|
below.
|
|||
|
|
|||
|
|Decimal | Hex | Expansion
|
|||
|
|:------- | :--------- | :--------
|
|||
|
|0 | 0x00 | .com/
|
|||
|
|1 | 0x01 | .org/
|
|||
|
|2 | 0x02 | .edu/
|
|||
|
|3 | 0x03 | .net/
|
|||
|
|4 | 0x04 | .info/
|
|||
|
|5 | 0x05 | .biz/
|
|||
|
|6 | 0x06 | .gov/
|
|||
|
|7 | 0x07 | .com
|
|||
|
|8 | 0x08 | .org
|
|||
|
|9 | 0x09 | .edu
|
|||
|
|10 | 0x0a | .net
|
|||
|
|11 | 0x0b | .info
|
|||
|
|12 | 0x0c | .biz
|
|||
|
|13 | 0x0d | .gov
|
|||
|
|14..32 | 0x0e..0x20 | Reserved for Future Use
|
|||
|
|127..255 | 0x7F..0xFF | Reserved for Future Use
|
|||
|
|
|||
|
Note:
|
|||
|
* URLs are written only with the graphic printable characters of the US-ASCII coded character set. The octets **00-20** and **7F-FF** hexadecimal are not used. See “Excluded US-ASCII Characters” in RFC 2936.
|
|||
|
* Range **07-13** define the same top level domains as **00-06** without a /.
|
|||
|
|
|||
|
## See Also
|
|||
|
|
|||
|
* **[Configuration Service Specification](docs/config-service-spec.md)** — An optional GATT service for configuring the Eddystone-URL output of your beacon
|