Как читать данные с шины SAE j1939 - PullRequest
0 голосов
/ 01 мая 2019

Здесь мы пытаемся прочитать данные с устройств шины SAE J1939, но кажется, что они не читаются с iOS, с которой мы работаем Core bluetooth Связь, которую мы сделали в Android и Android, работает нормально, но одно и то же устройство, не читаемое с iOS, может любоеПожалуйста, помогите мне в этом.

Здесь я прилагаю мои фрагменты кода

Подключение Bluetooth устройств как SEA J1939

var manager:CBCentralManager! 
manager.connect(connectPeripheral, options: nil) 
connectPeripheral.delegate = self

Успешное подключение Bluetooth

func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) {
         print("Connected!")
         self.showAlertOneButton(withTitle: "", with: key.KBluetoothConnect, firstButton: key.KOk) { (UIAlertAction) in
             self.navigationItem.rightBarButtonItem?.tintColor = UIColor.blue
             self.vwBLTSub.removeFromSuperview()
             //all services
             self.connectPeripheral.discoverServices(nil)
         }
     }

Считывание данных с устройства

func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService,
                    error: Error?) {
        guard let characteristics = service.characteristics else { return }

        for characteristic in characteristics {
            print(characteristic)
            if characteristic.properties.contains(.read) {
                print("\(characteristic.uuid): properties contains .read")

                peripheral.readValue(for: characteristic)
            }
            if characteristic.properties.contains(.notify) {
                print("\(characteristic.uuid): properties contains .notify")

            }
        }
    }

1 Ответ

0 голосов
/ 01 мая 2019

Стандартная ОС на устройствах iOS блокирует доступ приложений к службам USB и Bluetooth, за исключением тех, которые четко задокументированы как внесенные в белый список Apple, или устройств, зарегистрированных в программе Apple MFI (под NDA).

Решение, которое я использую для подключения устройств с USB-профилем USB и Bluetooth, не разрешенных Apple, с помощью Raspberry Pi, а затем для передачи данных с устройств Pi на устройства iOS через сетевой разъем (через WiFi или по проводной сети Ethernet, которая Apple поддерживает на iOS через различные ключи) или использует Core Bluetooth BLE (который находится в белом списке, но намного медленнее).

...