func onPeriphConnected(p gatt.Peripheral, err error) { log.Debugf("Peripheral Connected") services, err := p.DiscoverServices(nil) if err != nil { log.Debugf("Failed to discover services, err: %s", err) return } var isCoap bool = false for _, service := range services { if service.UUID().Equal(newtmgrServiceId) || service.UUID().Equal(newtmgrCoapServiceId) { log.Debugf("Newtmgr Service Found %s", service.Name()) if service.UUID().Equal(newtmgrCoapServiceId) { isCoap = true } cs, _ := p.DiscoverCharacteristics(nil, service) for _, c := range cs { if (isCoap == false && c.UUID().Equal(newtmgrServiceCharId)) || (isCoap == true && c.UUID().Equal(newtmgrCoapServiceCharId)) { log.Debugf("Newtmgr Characteristic Found") p.SetNotifyValue(c, newtmgrNotifyCB) deviceChar = c devicePerph = p p.SetMTU(BleMTU) <-CharDisc } } } } }