Мне нужна ваша помощь, чтобы понять, как восстановить данные с устройства Sensortag 2.0.
У меня есть следующая информация:
Transfert: BLE
Сервис: f000fff0-0451-4000-b000-000000000000
Характеристики: f000fff1-0451-4000-b000-000000000000
Уведомление со следующей характеристикой: f000fff2-0451-4000-b000-000000000000
команда пуска: 0x73 или 0x53
команда завершения: 0x65 или 0x45
1 пакетов 20Byte
Второй байт используется в качестве кода распознавания.
Мой тест:
Чтобы помочь мне понять, я использую этот исходный код: https://github.com/degtiarev/DataCollector
1) В файле Device.swift я добавил UUID следующим образом:
static let TestServiceUUID = "f000fff0-0451-4000-b000-000000000000"
static let TestCharacteristicsUUID = "f000fff1-0451-4000-b000-000000000000"
static let TestNotificationUUID = "f000fff1-0451-4000-b000-000000000000"
2) В CollectingDataVC.swift я изменил sensorTagName следующим образом:
let sensorTagName = "my-device"
3) Я добавилмой сервис:
if let services = peripheral.services {
for service in services {
print("Discovered service \(service)")
// If we found movement service, discover the characteristics for those services.
if (service.uuid == CBUUID(string: Device.MovementServiceUUID)) ||
(service.uuid == CBUUID(string: Device.TestServiceUUID)) ||
(service.uuid == CBUUID(string: Device.IOServiceUUID)) || (service.uuid == CBUUID(string: Device.SimpleKeyUUID)) {
peripheral.discoverCharacteristics(nil, for: service)
}
}
}
4) Я добавил характеристики :
for characteristic in characteristics {
// Test
if characteristic.uuid == CBUUID(string: Device.TestCharacteristicsUUID) {
movementCharacteristics[peripheral.identifier.uuidString] = characteristic
sensorTags[peripheral.identifier.uuidString]?.setNotifyValue(true, for: characteristic)
}
if characteristic.uuid == CBUUID(string: Device.TestNotificationUUID) {
movementCharacteristics[peripheral.identifier.uuidString] = characteristic
sensorTags[peripheral.identifier.uuidString]?.setNotifyValue(true, for: characteristic)
}
}
Программа работает, потому что мое устройство подключено, и у меня есть этоинформация на моей консоли:
SENSOR TAG FOUND! ADDING NOW!!!
**** SUCCESSFULLY CONNECTED TO SENSOR TAG!!!
======= SERVICES ========
▿ Optional([<CBService: 0x1c0677a40, isPrimary = YES, UUID = Device Information>, <CBService: 0x1c0678180, isPrimary = YES, UUID = F000FFF0-0451-4000-B000-000000000000>])
▿ some: 2 elements
- <CBService: 0x1c0677a40, isPrimary = YES, UUID = Device Information> #0
- super: CBAttribute
- super: NSObject
- <CBService: 0x1c0678180, isPrimary = YES, UUID = F000FFF0-0451-4000-B000-000000000000> #1
- super: CBAttribute
- super: NSObject
==========
Discovered service <CBService: 0x1c0677a40, isPrimary = YES, UUID = Device Information>
Discovered service <CBService: 0x1c0678180, isPrimary = YES, UUID = F000FFF0-0451-4000-B000-000000000000>
======= CHARACTERISTICS ========
▿ 2 elements
- <CBCharacteristic: 0x1c42a3c60, UUID = F000FFF1-0451-4000-B000-000000000000, properties = 0xA, value = (null), notifying = NO> #0
- super: CBAttribute
- super: NSObject
- <CBCharacteristic: 0x1c42a4320, UUID = F000FFF2-0451-4000-B000-000000000000, properties = 0x12, value = (null), notifying = NO> #1
- super: CBAttribute
- super: NSObject
==========
4) Отсюда я не знаю, что делать.
Я создал «Hello World»:
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
print("Hello World!")
}
Но этот код никогда не выполняется.Это моя первая программа на swift, поэтому мне нужна помощь, чтобы понять и понять, что я должен делать.