问题标签 [obd-ii]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2118 浏览

ios - iOS Core 蓝牙串口

鉴于我有一个返回一些串行数据的蓝牙设备 - 我如何使用 CoreBluetooth 读取它?

没有特征或服务。只是一些已知(实际上是 obd ii)格式的二进制数据。

0 投票
1 回答
5789 浏览

android - 如何请求 OBD 参数并接收它们

我是 android 新手,我想开发一个蓝牙应用程序来从 OBDII 设备中检索参数。我已经下载了示例蓝牙聊天应用程序并对其进行了配置。问题是我需要发送到 OBDII 设备以接收参数的方式和信息是什么?我应该如何在应用程序端处理它们?

谢谢你。

0 投票
2 回答
733 浏览

c# - 在等待来自 ECU 的 OBD 数据时我应该让我的线程休眠多长时间

我正在使用 C# 为 Windows 开发 OBD2 扫描仪应用程序。我希望有人能告诉我在从串行端口读取响应之前等待汽车 ecu 响应(使用 thread.Sleep())的最佳时间。

我正在使用蓝牙适配器进行开发,波特率为 9600。我目前将等待时间设置为 100 毫秒,但我希望尽可能短得多。我只是不想遇到在端口未准备好时尝试读取数据的情况。我想在流畅的 GUI 和舒适的错误余量之间取得良好的平衡。

更新:感谢这些想法。处理 DataReceived 是一个很好的一般想法,但我正在休眠线程的原因是我需要定期轮询 ECU,以便我可以执行诸如更新 RPM 仪表之类的操作。我正试图找到一个甜蜜点,在那里我可以从 ECU 获得尽可能多的代表,而不会压倒它。如果我只轮询一次,那么只需处理一个事件就可以了,但我需要知道轮询之间可接受的间隔是多少。我肯定会将我的代码更改为事件驱动的,但我仍然需要知道民意调查之间的可观时间有多长。

0 投票
4 回答
28097 浏览

obd-ii - 使用 OBD2 参数获取油耗 (MPG) 的最佳方法是什么?

使用 OBD2 参数获取油耗 (MPG) 的最佳方法是什么。

下面的公式很简单但不是最准确的,任何其他公式都可以得到准确的估计。车速值以 Km/Hr 为单位,转换为英里乘以 0.621317。计算 MPG 将 MPH 除以 GPH。MPG 的最终数学表达式为:

汽油机用

我想知道柴油机计算即时消耗。此外,我正在尝试根据 obd2 标准提供的参数独立于汽车模型来计算它。


一些链接可能对那些正在研究同一主题的人有用。

0 投票
1 回答
8201 浏览

android - 如何与 OBD II ELM327 适配器​​进行持续通信?

目前我正在开发一个应用程序,我已经与 OBD II ELM 327 适配器​​建立了连接,并且可以从 OBD II 读取数据。例如,我使用 OBD 命令“ 01 0C ”来获取车辆的转速。

我想从车辆检索实时数据,例如速度或转速。这就是我卡住的地方。我没有得到 - “我如何能够不断地从车辆中获取这样的实时数据?

我知道,OBD II 正在响应我的每个 AT 或 OBD 命令。我的想法是,如果我反复向 OBD II 适配器发送任何命令,它每次都会发回数据。

谁能告诉我,如何连续发送单个命令,例如“01 0C”?我应该使用哪种方法从车辆中获取真实数据?

请有人指导我解决这个问题。任何指导都会有很大帮助。

谢谢你。

0 投票
1 回答
772 浏览

obd-ii - 从 OBD(车载诊断)数据中找出崩溃?

在我们的应用程序中,我们不断地从车辆端口收集 OBD 数据。我们的要求是找出车辆碰撞场景(事故等)。目前我们正在读取OBD参数速度,温度,转速等。是否可以从这些参数中识别车辆事故场景或者我们需要使用更多参数。

请提前分享您的知识谢谢。

0 投票
1 回答
3504 浏览

bluetooth - 福特 CAN 数据和 ELM327

我正在尝试使用蓝牙ELM327无线OBD-II接收器从车辆 OBD-II 端口获取数据。我不是想收集有关发动机的信息,而是收集车辆中的一些电子设备。我已经获得了访问设备的某些命令,并且成功使用了 ELM327 以外的其他设备和软件。

一般来说,我在处理 CAN 总线和数据传输方面没有太多经验。如果我遗漏了这个过程的关键部分,请原谅我。但是,我确实了解 CAN 基础知识,例如消息头和数据字节。

到目前为止,我一直在使用 Ford DET 工具从设备收集数据。我能够发送一个 8 字节的 CAN 消息并接收回数据。我有许多命令需要从它们产生的输出中解析正确的数据。例如,如果我要发送命令

我的日志文件显示:

这是使用goSerial与 ELM327 交谈时发生的情况。我已经包含了所有命令来说明我如何使用 ELM327 设备。

如您所见,最后一行的结果输出比诊断工程工具给我的要短得多。我没有正确配置设备吗?

基本上我试图让 ELM327 输出与福特 DET 工具的输出相匹配。我知道这是一个非常模糊的问题。

以下是有关我的配置的其他一些信息:

  • 波特率:38400(车辆标准?)
  • CAN 版本:ISO 15765-4

我所有的命令都以 0x727 开头。流量控制通过 0x727 和 0x7A7 传输。

此外,我已经阅读了大部分 ELM327 文档,因此请不要将其作为解决方案。

0 投票
2 回答
28424 浏览

android - android bluetooth can't connect

I've been having this problem for a while and haven't been able to figure it out.

I have a android application that puts all paired devices in a listview. When you click one of the list items, it will initiate a request to connect to that bluetooth device.

I can get the list of devices with their addresses no problem. The problem is that once I try to connect I get an IOException on socket.connect();

The error message is as follows: "connect read failed, socket might closed or timeout, read ret: -1"

Here is my code. ANY suggestions would be appreciated. I'm pretty stuck on this.

fyi: the "onEvent" methods is a library that simplifies callbacks...that part works. When the user clicks on a list items this method is called "public void onEvent(EventMessage.DeviceSelected event)"

Here is my logcat. Pretty short.

That last line is in the "Catch" section of a try/catch...I'm just logging the error message.

Please note, there is about a 20 second gap between "trying to connect to device" and "failed to connect"

0 投票
1 回答
1906 浏览

python - Python .readline()

首先让我先介绍一下我是 python 新手,这里没有自我。我有这个代码,我从各个站点拼凑而成,最终目标是将十六进制代码输出到 OBD-II 芯片并等待响应。此响应(也是 HEX)被转换为十进制处理并发送到输出。很简单吧?

嗯,有两个问题。

其中一个是 .readline() 删除响应的第一个字母。

例如,如果我想要“>Elm327”,我会返回“>lm327”。

另一个更大的问题是当我使用 .readline() 时,如果我使用下面的代码,我只会收到我发送的请求:

我想 .readline 返回41 0D 15而不是我得到类似的东西E\r\r01 0D \r \r"

这也会返回一个错误,但我会为此单独发布一篇文章。

有什么想法吗?谢谢

0 投票
0 回答
126 浏览

java - Does JSR 298 facilitate communication between a computer device and an OBD 2 scan tool?

I was browsing the web for obd-2 applications in java when I stumbled on the JSR 298:Telematics API for JAVA ME. Does anyone the know the exact purpose of this JSR?

I want to build a java application using which I can extract data continuously from an ELM 327 using bluetooth. Will this JSR help me with that ? If YES, then how?