func (b *DiscoveredDeviceInfo) explorePeripheral(p gatt.Peripheral) error { ss, err := p.DiscoverServices(nil) if err != nil { log.Printf("Failed to discover services, err: %s\n", err) return err } for _, s := range ss { // msg := "Service: " + s.UUID().String() // if len(s.Name()) > 0 { // msg += " (" + s.Name() + ")" // } // log.Println(msg) // Discovery characteristics cs, err := p.DiscoverCharacteristics(nil, s) if err != nil { log.Printf("Failed to discover characteristics, err: %s\n", err) continue } for _, c := range cs { // msg := " Characteristic " + c.UUID().String() // if len(c.Name()) > 0 { // msg += " (" + c.Name() + ")" // } // msg += "\n properties " + c.Properties().String() // log.Println(msg) // Discovery descriptors _, err := p.DiscoverDescriptors(nil, c) if err != nil { log.Printf("Failed to discover descriptors, err: %s\n", err) continue } // for _, d := range ds { // msg := " Descriptor " + d.UUID().String() // if len(d.Name()) > 0 { // msg += " (" + d.Name() + ")" // } // log.Println(msg) // } id, _ := normalizeHex(c.UUID().String()) b.characteristics[id] = c } b.ready = true } return nil }