Я разрабатываю приложение для iOS, в котором я использую основные службы BLE и характеристики для чтения и записи данных.
Здесь я использую сервис, имеющий уникальный CBUUID, и этот сервис, имеющий две характеристики по умолчанию, я могу читать и записывать эти характеристики, но когда мы добавляем другую характеристику в этот сервис, я не могу прочитать эти новые добавленные характеристики.
Пожалуйста, проверьте код следующим образом
Для сканирования периферийного устройства
var centralManager: CBCentralManager!
centralManager = CBCentralManager(delegate: self, queue: nil)
После обнаружения подключения периферийного устройства к определенному устройству с использованием следующих методов делегирования
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any], rssi RSSI: NSNumber)
{
if(peripheral.name == "myBLE")
{
centralManager.stopScan()
centralManager.connect(myPeripheral)
}
}
После подключения устройства Bluetooth откройте сервис
func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral)
{
//centralManager.stopScan()
peripheral.discoverServices(nil) // For all services
}
Мы получаем услуги по следующим методам делегирования
func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?)
{
guard let services = peripheral.services else { return }
for service in services
{
peripheral.discoverCharacteristics(nil, for: service)
}
}
Мы получаем характеристики в следующих методах делегата
func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?)
{
guard let characteristics = service.characteristics else { return }
for characteristic in characteristics
{
print(characteristic)
//Here we get only default characteristics, but not getting newly added characteristics
if characteristic.properties.contains(.read)
{
peripheral.readValue(for: characteristic)
}
if characteristic.properties.contains(.notify)
{
peripheral.setNotifyValue(true, for: characteristic)
}
}
}
Здесь я не могу прочитать недавно добавленные характеристики, есть ли решение, пожалуйста, дайте мне знать.