Carista OBD ||与iOS设备的设备通信

时间:2018-08-08 09:55:11

标签: ios swift core-bluetooth obd-ii

我刚刚开始与Carista设备通信。我得到了所有的服务和特色。但是,当我编写命令“ ATZ”时,它将给出“ ATZ”的答案。

我期望从设备获得的实际结果是“ ATZELM327 v1.5”

我在此处附加了我的代码,请对其进行审核。

func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {
    guard let characteristics = service.characteristics else { return }
    for characteristic in characteristics {
        print(characteristic)
        caristaPeripheral.setNotifyValue(true, for: characteristic)
        let ATZCommand = "ATZ"
        let ATZBytes = ATZCommand.data(using: .utf8)
        caristaPeripheral.writeValue(ATZBytes!, for: characteristic, type: .withResponse)
    }
}


func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {

    let string = String(data: characteristic.value!, encoding: .utf8)

    print("CBCharacteristic : \(characteristic.uuid) ====> \(string ?? "none")")

}

请指导我。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法,它在下面。 当我们此时在Cari​​sta设备中编写任何命令时,我们需要附加“ \ r \ n”。因此,根据上述问题,我们需要将let ATZCommand = "ATZ"替换为let ATZCommand = "ATZ\r\n"

现在,根据异常情况,我从Carista设备获得了准确的响应。

谢谢....:)