gpt4 book ai didi

ios - Swift Core 与 OBD2 的蓝牙通信

转载 作者:行者123 更新时间:2023-11-29 05:29:46 25 4
gpt4 key购买 nike

我正在尝试使用 OBD2 观察我的汽车的速度,以尝试硬件是否正常工作,我使用了应用程序“Auto Doctor”并且它可以正常工作。但我需要更多功能,所以我开始创建自己的应用程序

要向特征发送命令,我使用以下代码:

var commandSended = String() {
didSet {
if let peripheral = self.peripheralConnected {
for char in characteristicConnected {
peripheral.writeValue(self.commandSended.data(using: .utf8)!, for: char, type: .withoutResponse)
peripheral.writeValue(self.commandSended.data(using: .ascii)!, for: char, type: .withoutResponse)
peripheral.readValue(for: char)
}
} else {
self.myTerminal.printToTerminalCommand("You are not connected to the peripheral")
}
}
}

characteristicConnected:都是找到的特征

独立地,我向特征发送哪个命令,我每次收到相同数量的字节,但无法使用 utf8 或 ascii 对其进行解码。

我希望我已经为您提供了足够的信息。

最佳答案

(几乎所有)OBD2 适配器的答案都是 ASCII 字符串响应,因此您需要将 NSData 解码为 ASCII。要提取响应的实际有效负载,您需要了解如何解码各种汽车协议(protocol)。许多此类信息均可在网络上免费获取,对于某些内容您可能需要购买官方 SAE 标准。

也就是说,即使您使用的是 Swift,您也可能有兴趣使用 OBD2 库来为您完成所有繁重的工作。事实上,我写了一个,你可以在https://github.com/mickeyl/LTSupportAutomotive下载。 .

更新:从那时起,我用 Swift 重写了类似的东西,这对你来说可能更有趣。请查看https://github.com/Cornucopia-Swift/CornucopiaUDS

关于ios - Swift Core 与 OBD2 的蓝牙通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57755222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com