// SomeUUID is one of the incomplete service UUID list. func SomeUUID(u ble.UUID) Field { return func(p *Packet) error { if u.Len() == 2 { return p.append(someUUID16, u) } if u.Len() == 4 { return p.append(someUUID32, u) } return p.append(someUUID128, u) } }
// IBeacon returns an iBeacon advertising packet with specified parameters. func IBeacon(u ble.UUID, major, minor uint16, pwr int8) Field { return func(p *Packet) error { if u.Len() != 16 { return ErrInvalid } md := make([]byte, 23) md[0] = 0x02 // Data type: iBeacon md[1] = 0x15 // Data length: 21 bytes copy(md[2:], ble.Reverse(u)) // Big endian binary.BigEndian.PutUint16(md[18:], major) // Big endian binary.BigEndian.PutUint16(md[20:], minor) // Big endian md[22] = uint8(pwr) // Measured Tx Power return ManufacturerData(0x004C, md)(p) } }