如何从SAE j1939总线读取数据

时间:2019-05-01 14:17:54

标签: ios swift bluetooth-lowenergy j1939

在这里,我们正在尝试从J1939 SAE总线设备读取数据,但似乎无法在iOS上读取,我们正在使用actuator_activity连接,我们已经在android中完成了工作,并且在android中工作正常,但是同一设备未通过iOS可以读取任何人都可以帮助我。

我在这里附上我的代码段

Core bluetooth设备连接为SEA J1939

Bluetooth

蓝牙连接成功

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

从设备读取数据

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)
         }
     }

1 个答案:

答案 0 :(得分:0)

iOS设备上的常规操作系统会阻止应用程序访问USB和蓝牙服务,但Apple明确记录为白名单的设备或已加入Apple MFI程序(在NDA下)的设备除外。

我使用的解决方案是使用Raspberry Pi将其连接到非Apple允许的USB和蓝牙配置文件设备,然后通过网络套接字(通过WiFi或有线以太网)将Pi的数据提供给iOS设备Apple通过各种加密狗在iOS上提供支持),或使用Core Bluetooth BLE(已列入白名单,但速度较慢)。