EasyBLE
Swift BLE Library using CoreBluetooth and Combine for handling of asynchronous Bluetooth events.
Subscribers
BLE State
let ble = EasyBLE(serviceUUIDs: [])
// Subscribe for BLE state
self.bleState = ble.statePublisher?.sink(receiveValue: { state in
if (state == .poweredOn) {
print("BLE POWERED ON")
ble.startDiscovering()
}
})
Discovery
// Subscribe for discoveries
self.discoveredSusbcriber = ble.discoveredPublisher?.sink(receiveValue: { load in
switch load {
case .descriptors(let descriptors):
print("Discovered Descriptors: \(descriptors)")
break
case .characteristics(let characteristics):
print("Discovered Characteristics: \(characteristics)")
break
case .services(let services):
print("Discovered Services: \(services)")
break
case .peripheral(let peripheral):
print("Discovered Peripheral: \(peripheral)")
break
}
})
Peripheral Updates
// Subscribe for peripheral updates
self.peripheralsSubscriber = ble.peripheralPublisher?.sink(receiveValue: { peripherals in
print("Peripherals Updated: \(peripherals)")
})
Writes
// Subscribe for writes
self.valuesSubscriber = ble.valuePublisher?.sink(receiveValue: { load in
switch load {
case .descriptor(let descriptor):
print("Descriptor Data: \(String(describing: descriptor.value))")
case .characteristic(let characteristic):
print("Characteristic Data: \(String(describing: characteristic.value))")
}
})