私はarduinoフェザーBLEボードを使用しており、BLE経由でボードにデータを送信できるiOSアプリケーションを作成しようとしています。私は接続できますが、私はtxCharacteristiciOS Bluetooth Low Energy(BLE)がTX特性を検出しない
func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {
guard let characteristics = service.characteristics else {
return
}
for characteristic in characteristics {
if characteristic.properties.contains(.write) || characteristic.properties.contains(.writeWithoutResponse) {
writableCharacteristic = characteristic
}
// if(characteristic.uuid == CBUUID(string: "6e400002-b5a3-f393-e0a9-e50e24dcca9e"))
// {
// txCharacteristic = characteristic
// }
var txUUID = CBUUID(string: "6e400002-b5a3-f393-e0a9-e50e24dcca9e")
let temp = characteristic.uuid.uuidString;
switch characteristic.uuid {
case txUUID:
txCharacteristic = characteristic;
break;
default:
break;
}
peripheral.setNotifyValue(true, for: characteristic)
}
}
このコードが動作へのアクセスを取得することはできませんが、唯一、次のUUIDを検出します。
temp String "00001532-1212-EFDE-1523-785FEABCD123"
temp String "00001531-1212-EFDE-1523-785FEABCD123"
temp String "00001534-1212-EFDE-1523-785FEABCD123"
私はこれらのUUID年代はDFUのUUIDであることを考え出しました。代わりにtxCharacteristicをどのように発見できますか?私はこのウェブサイトで情報を読むことによって、これを理解することができた
extension SimpleBluetoothIO: CBPeripheralDelegate {
func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) {
guard let services = peripheral.services else {
return
}
targetService = services.first
if let service = services.first {
targetService = service
peripheral.discoverCharacteristics(nil, for: service)
}
}
あなたは確かのことです適切なデバイスの適切なサービス?あなたは適切な引数で 'discoverServices'と' discoverCharacteristics'を呼び出しましたか? BLEブラウザをダウンロードし、表示される内容を確認してください。 – Kevin
こんにちは、ご協力いただきありがとうございます。すべてのサービスを検出するdiscoverServices(nil)を呼び出しました。上記の質問にdiscoverCharacteristics()を呼び出すコードを追加しました。 – Megan