func (w *BleDbusWrapper) OnPeripheralDiscovered(p gatt.Peripheral, a *gatt.Advertisement, rssi int) { w.devicesDiscoveredsync.Lock() defer w.devicesDiscoveredsync.Unlock() id, _ := normalizeHex(p.ID()) name := strings.Trim(p.Name(), "\x00") dev, ok := w.devicesDiscovered[id] if !ok { w.devicesDiscovered[id] = &DiscoveredDeviceInfo{name: name, rssi: rssi, peripheral: p, ready: false, connectedOnce: false} w.emitPeripheralDiscovered(id, name, int16(rssi)) } else { if (dev.name == "") && (name != "") { dev.name = name } w.emitPeripheralDiscovered(id, dev.name, int16(rssi)) } }