code: func (b *ClientAdaptor) Connect() (err error) {
  	bleMutex.Lock()
  	defer bleMutex.Unlock()
  
  	b.device, err = getBLEDevice(b.DeviceName)
  	if err != nil {
  		return errors.Wrap(err, "can't connect to device "+b.DeviceName)
  	}
  
  	var cln blelib.Client
  
  	cln, err = blelib.Connect(context.Background(), filter(b.Address()))
  	if err != nil {
  		return errors.Wrap(err, "can't connect to peripheral "+b.Address())
  	}
  
  	b.addr = cln.Addr()
  	b.address = cln.Addr().String()
  	b.SetName(cln.Name())
  	b.client = cln
  
  	p, err := b.client.DiscoverProfile(true)
  	if err != nil {
  		return errors.Wrap(err, "can't discover profile")
  	}
  
  	b.profile = p
  	b.connected = true
  	return
  }
docs: // Connect initiates a connection to the BLE peripheral. Returns true on successful connection.