コード例 #1
0
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))
	}
}