账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    swift corebluetooth 如何手动输入mac server地址和远程设备id?
    25
    0
    我需要改一个open source的代码。目前的问题是当我要连接多个toio cube(远程设备)的时候,需要一个一个地打开蓝牙设备然后建立连接。过程可以说是非常的重复和麻烦。所以解决的方法是手动输入mac server地址和每个设备的id并且匹配连接。这样的话就方便许多。所以想请教一下大家我需要改以下这个代码的哪些部分?//// BluetoothService.swift// toio100//// Created by Saqoosha on 2020/08/11.// Copyright © 2020 Whatever Inc. All rights reserved.//import CoreBluetoothfinal class BluetoothService: NSObject, CBCentralManagerDelegate { private var centralManager: CBCentralManager! private var peripherals: [CBPeripheral]! private var connected: [CBPeripheral]! private var cubes: [toioCoreCube]! func startBluetoothScan() { centralManager = CBCentralManager(delegate: self, queue: nil) peripherals = [] connected = [] cubes = [] } func centralManagerDidUpdateState(_ central: CBCentralManager) { switch central.state { case .poweredOff: print("Bluetooth PoweredOff") break case .poweredOn: print("Bluetooth poweredOn") centralManager.scanForPeripherals(withServices: [CBUUID(string: "10B20100-5B3B-4571-9508-CF3EFCD7BBAE")], options: nil) break case .resetting: print("Bluetooth resetting") break case .unauthorized: print("Bluetooth unauthorized") break case .unknown: print("Bluetooth unknown") break case .unsupported: print("Bluetooth unsupported") break } } func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String: Any], rssi RSSI: NSNumber) { if peripheral.name == "toio Core Cube" && !peripherals.contains(peripheral) { print(peripheral) print(advertisementData)// centralManager.connect(peripheral, options: nil)// peripherals.append(peripheral) } } func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) { print("didConnect") if connected.contains(peripheral) { return } connected.append(peripheral) cubes.append(toioCoreCube(peripheral)) }}class toioCoreCube: NSObject, CBPeripheralDelegate { var peripheral: CBPeripheral! init(_ peripheral: CBPeripheral) { super.init() self.peripheral = peripheral self.peripheral.delegate = self self.peripheral.discoverServices([CBUUID(string: "10B20100-5B3B-4571-9508-CF3EFCD7BBAE")]) } func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) { print("didDiscoverService")// print(peripheral.services) peripheral.discoverCharacteristics([CBUUID(string: "10B20103-5B3B-4571-9508-CF3EFCD7BBAE")], for: (peripheral.services?.first)!) } func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) { print("didDiscoverCharacteristicsFor")// print(service.characteristics) var data = Data() // data.append(contentsOf: [0x03, 0x64, 0x01, 0x01, 0xFF, 0x00, 0x00]) // Turn on and off the lamp data.append(contentsOf: [0x04, 0x00, 0x03, 0x04, 0x01, 0x01, 0xff, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0xff, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0xff]) peripheral.writeValue(data, for: (service.characteristics?.first)!, type: .withoutResponse) }}一个非常有用的参考在这里:https://github.com/mitmediala...。这个是要达到的最终目标只不过是用python写的。大家可以看到里面有mac地址和蓝牙设备id。
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 大幻想家 普通会员 3楼
      { "error": "Failed to generate content." }
    更多回答
    扫一扫访问手机版