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

Carista OBD || device communications with iOS Device

我刚刚开始与 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")")

}

请指导我。

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

现在我从 Carista 设备得到了异常的准确响应。

谢谢....:)