Попытка подключения датчика окружающей среды через Bluetooth в Swift - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь подключить сельскохозяйственный метеорологический измеритель погоды Kestrel 5500AG к iOS через Bluetooth с помощью swift.Мне нужно отправить в приложение температуру, скорость ветра и направление ветра, но у меня возникли проблемы с подключением.Если я найду withServices: nil в операторе switch, он распечатает все устройства Bluetooth вокруг меня, включая устройство, к которому я хочу подключиться, но когда я ищу датчик окружающей среды, я ничего не получаю.

Эточто напечатано для устройства

<CBPeripheral: 0x282a25400, identifier = 35CA57D6-71A5-975C-E7F9-EADE3447BA32, name = AGRICULTR - 2403246, state = disconnected>

let kestrelServiceCBUUID = CBUUID(string: "0x181A")

class ViewController: UIViewController {




    var manager:CBCentralManager!

    var kestrelPeripheral:CBPeripheral!
    var windDirectionCharacteristicCBUUID = CBUUID(string: "2A73")
    var windSpeedCharacteristicCBUUID = CBUUID(string: "2A72")
    var temperatureCharacteristicCBUUID = CBUUID(string: "2A20")
    var windSpeedCharacter = UUID(uuidString: "0000x2A72-0000-1000-8000-00805f9b34fb")


    override func viewDidLoad() {
        super.viewDidLoad()

        manager = CBCentralManager(delegate: self, queue: nil)


    }


}
extension ViewController: CBCentralManagerDelegate {
    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        switch central.state {

        case .unknown:
            print("unknow")
        case .resetting:
            print("resetting")
        case .unsupported:
            print("unsupported")
        case .unauthorized:
            print("unauthorized")
        case .poweredOff:
            print("off")
        case .poweredOn:
            print("on")
            manager.scanForPeripherals(withServices: [kestrelServiceCBUUID])
        @unknown default:
            break
        }
    }



    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
        if(peripheral.name != nil){
            print(peripheral)
        }
    }

}
...