Использование iOS 12.2 Xcode 10.2.1
Нужно подключиться к этому [на базе Debian UNIX] с помощью iOS iPad. Я могу видеть устройство на моем ноутбуке.Как вы можете видеть здесь.
И я вижу это на своем iPhone.И я могу связать его с моим iPhone.
Я могу войти в ev3dev и использовать команду bluetoothctl в оболочке, чтобы показать мне подробностиservice.
[bluetooth]# show
Controller 40:BD:32:3E:56:97
Name: ev3dev
Alias: ev3dev
Class: 0x020100
Powered: yes
Discoverable: yes
Pairable: yes
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: NAP (00001116-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
Modalias: usb:v0694p0005d0316
Discovering: no
[CHG] Controller 40:BD:32:3E:56:97 Discoverable: no
Но хочу написать небольшое приложение, которое сможет это сделать.Новое в Bluetooth.Я получил этот код, который, кажется, видит все, кроме того, что я хочу найти.
import UIKit
import CoreBluetooth
class ViewController: UIViewController {
var manager:CBCentralManager!
var peripheral:CBPeripheral!
let X_NAME = "ev3dev"
let options: [String: Any] = [CBCentralManagerScanOptionAllowDuplicatesKey:
false]
override func viewDidLoad() {
super.viewDidLoad()
manager = CBCentralManager(delegate: self, queue: nil)
}
}
extension ViewController: CBCentralManagerDelegate,
CBPeripheralDelegate {
func centralManagerDidUpdateState(_ central: CBCentralManager) {
if central.state == CBManagerState.poweredOn {
central.scanForPeripherals(withServices: nil, options: options)
} else {
print("Bluetooth not available.")
}
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
let device = (advertisementData as NSDictionary)
.object(forKey: CBAdvertisementDataLocalNameKey)
as? NSString
print("Discovered \(peripheral.name ?? "")")
if device?.contains(X_NAME) == true {
self.manager.stopScan()
self.peripheral = peripheral
self.peripheral.delegate = self
manager.connect(peripheral, options: nil)
print("here")
}
}
}
Что мне здесь не хватает?
Не знаю, помогает ли это, но я попробовал этоСценарии python, описанные на этой веб-странице.
http://blog.kevindoran.co/bluetooth-programming-with-python-3/
Они также не работали, не могли установить python3 bluetooth под OS X, и хотя оба они работали на Linux Debian.,Клиенту не удается подключиться к серверу с сообщением об ошибке «Нет маршрута к хосту».