gpt4 book ai didi

java - 使用Java FTDI lib - jd2xx - openport1.3 USB电缆创建OBD2 MUT扫描仪

转载 作者:行者123 更新时间:2023-12-01 22:56:33 26 4
gpt4 key购买 nike

我正在尝试为我的三菱 lancer mx 1997 创建一个 Java obd2 扫描仪应用程序,它使用 OBD2 上的 MUTII 协议(protocol)。谁能帮我读一下MUT request codes使用jd2xx图书馆。我尝试过以下程序,但它没有读取引擎转速。

package lancerscan;

import jd2xx.JD2XX;

public class Test2 {

public static void main(String[] args) throws Exception {

JD2XX jd = new JD2XX();
jd.open(0);
jd.setBaudRate(38400);
jd.setDataCharacteristics(
8, JD2XX.STOP_BITS_1, JD2XX.PARITY_NONE);
jd.setFlowControl(
JD2XX.FLOW_NONE, 0, 0);
jd.setTimeouts(1000, 1000);

String msg = "21";
int ret = jd.write(msg.getBytes());
System.out.println(ret + " bytes sent.");

int rd = jd.read();
System.out.println(">>>" + rd);

int status = jd.getQueueStatus();
byte[] data = new byte[(int) status];
long lngBytesReturned = jd.read(data, 0, data.length);

System.out.println("======= " + lngBytesReturned);
}
}

发动机 RPM 的 MUT 请求代码为 0x21更多MUT请求代码可参见here

类似的运行良好的 C 程序是 here ;主要项目文件是 here

谢谢,哈沙

最佳答案

首先,您使用与示例中不同的波特率。该示例使用 15625 波特,但您使用的是 38400 波特

其次,您缺少一些设置命令。我不确定这是否会产生影响,但您的代码和示例之间有所不同。

三菱要求您通过在其中一个引脚上以 5 波特 的速率发送 0x00 来将汽车 ECU 设置为诊断模式。在 OpenPort 1.3D 电缆上,这意味着将中断设置为打开 1800 毫秒,然后将其关闭。您可以看到这是通过 libftdimut.c 中的 ftdimut_init() 命令完成的。文件。

      printf("Sending 0x00 at 5 baud\n");

printf("Break on......\n");
ftStatus = FT_SetBreakOn(ftdimut_ftHandle);
if(ftStatus != FT_OK) return ftStatus;
ftdimut_msleep(1800);
printf("Break off......\n");
ftStatus = FT_SetBreakOff(ftdimut_ftHandle);
if(ftStatus != FT_OK) return ftStatus;

然后汽车 ECU 将向您发送包含 ECU ID 的 4 个字节。然后可用于检查 ECU 是否正确进入诊断模式。您可以在 libftdimut.c 中看到这一点.

      ftStatus = FT_Read(ftdimut_ftHandle, buf, 4, &bytesRead);
if(ftStatus != FT_OK) return ftStatus;

if(bytesRead == 4) {
return FT_OK;
}

现在假设您已取回 4 个字节,您可以开始发送诊断代码,例如 0x170x21

关于java - 使用Java FTDI lib - jd2xx - openport1.3 USB电缆创建OBD2 MUT扫描仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23949256/

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