Documentation ¶
Overview ¶
Package eddystone provides tools for making Eddystone frame
Index ¶
- Constants
- Variables
- func ComputeEIDValue(identityKey []byte, ts uint32, k byte) (eid []byte, err error)
- func ConstructNSByElidedUUID(id uuid.UUID) []byte
- func ConstructNSByTruncatedHashFQDN(fqdn string) []byte
- func ParseTLMFrame(f []byte) (batt uint16, temp float32, advCnt uint32, secCnt uint32)
- func ParseUIDFrame(f []byte) (ns, instance string, txPower int)
- func ParseURLFrame(f []byte) (url string, txPower int, err error)
- type Frame
- func MakeEIDFrameFromBytes(eid []byte, txPwr int) (Frame, error)
- func MakeTLMFrame(batt uint16, temp float32, advCnt, secCnt uint32) (Frame, error)
- func MakeUIDFrame(namespace, instance string, txPwr int) (Frame, error)
- func MakeUIDFrameFromBytes(namespace, instance []byte, txPwr int) (Frame, error)
- func MakeURLFrame(url string, txPwr int) (Frame, error)
- type Header
Examples ¶
Constants ¶
const ( // UID means UID frame UID Header = 0x00 // URL means URL frame URL = 0x10 // TLM means TLM frame TLM = 0x20 // EID means EID frame EID = 0x30 // Unknown means it may not Eddystone frame Unknown = 0xff )
Eddystone frame types
const SvcUUID = 0xFEAA
SvcUUID is Eddystone service UUID
Variables ¶
var ( // SvcUUIDBytes is Eddystone service UUID in Little Endian format SvcUUIDBytes = []byte{0xAA, 0xFE} )
Functions ¶
func ComputeEIDValue ¶ added in v1.3.1
ComputeEIDValue returns 8 bytes EID value https://github.com/google/eddystone/blob/master/eddystone-eid/eid-computation.md
func ConstructNSByElidedUUID ¶ added in v1.3.1
ConstructNSByElidedUUID return 10 bytes namespace for UID frame by elided version 4 UUID
func ConstructNSByTruncatedHashFQDN ¶ added in v1.3.1
ConstructNSByTruncatedHashFQDN return 10 bytes namespace for UID frame by traucated hash of FQDN
func ParseTLMFrame ¶
ParseTLMFrame returns contents of TLM frame
func ParseUIDFrame ¶
ParseUIDFrame returns contents of UID frame
Types ¶
type Frame ¶
type Frame []byte
Frame represent Eddystone frame
func MakeEIDFrameFromBytes ¶ added in v1.3.1
MakeEIDFrameFromBytes makes Eddystone-EID frame from EID bytes https://github.com/google/eddystone/tree/master/eddystone-eid
Example ¶
package main import ( "fmt" eddystone "github.com/suapapa/go_eddystone" ) func main() { eid, _ := eddystone.ComputeEIDValue([]byte("0123456789abcdef"), 0x12345678, 8) f, _ := eddystone.MakeEIDFrameFromBytes(eid, -30) fmt.Println(f) fmt.Println([]byte(f)) // EID[EphemetalIdentifier:0xb846453b3c9e7b59 TxPwr:-30dBm] // [48 226 184 70 69 59 60 158 123 89] }
Output:
func MakeTLMFrame ¶
MakeTLMFrame makes Eddystone-TLM frame https://github.com/google/eddystone/tree/master/eddystone-tlm
Example ¶
package main import ( "fmt" eddystone "github.com/suapapa/go_eddystone" ) func main() { f, _ := eddystone.MakeTLMFrame(3300, 23.5, 1, 2) fmt.Println(f) fmt.Println([]byte(f)) }
Output: TLM[batt:3300 temp:23.500000, advCnt:1 secCnt:2] [32 0 12 228 23 128 0 0 0 1 0 0 0 2]
func MakeUIDFrame ¶
MakeUIDFrame makes Eddystone-UID frame https://github.com/google/eddystone/tree/master/eddystone-uid
Example ¶
package main import ( "fmt" eddystone "github.com/suapapa/go_eddystone" ) func main() { f, _ := eddystone.MakeUIDFrame("0102030405060708090a", "0b0c0d0e0f10", -30) fmt.Println(f) fmt.Println([]byte(f)) }
Output: UID[Namespace:0x0102030405060708090a Instance:0x0b0c0d0e0f10 TxPwr:-30dBm] [0 226 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 0]
func MakeUIDFrameFromBytes ¶ added in v1.3.1
MakeUIDFrameFromBytes makes Eddystone-UID frame from namespace and instance bytes https://github.com/google/eddystone/tree/master/eddystone-uid
func MakeURLFrame ¶
MakeURLFrame makes Eddystone-URL frame https://github.com/google/eddystone/tree/master/eddystone-url
Example ¶
package main import ( "fmt" eddystone "github.com/suapapa/go_eddystone" ) func main() { f, _ := eddystone.MakeURLFrame("http://github.com", -30) fmt.Println(f) fmt.Println([]byte(f)) }
Output: URL[Url:http://github.com TxPwr:-30dBm] [16 226 2 103 105 116 104 117 98 7]