gpt4 book ai didi

android - OBDKey 蓝牙

转载 作者:行者123 更新时间:2023-11-29 22:33:18 30 4
gpt4 key购买 nike

我想通过蓝牙将我的摩托罗拉机器人连接到 OBDKey。我以 BluetoothChat 为例连接蓝牙,使用 KWP 作为协议(protocol)

然后我写byte[]命令

 command[0]=rawToByte(0x02);
command[1]=rawToByte(0x85);
command[2]=rawToByte(0x05);
command[3]=rawToByte(0xc7);
command[4]=rawToByte(0x33);
command[5]=rawToByte(0xf1);
command[6]=rawToByte(0x00);
command[7]=rawToByte(0x00);
command[8]=rawToByte(0x00);
command[9]=rawToByte(0x00);
command[10]=rawToByte(0x00);
command[11]=rawToByte(0x00);
command[12]=rawToByte(0x00);
command[13]=rawToByte(0x00);
command[14]=rawToByte(0x76);

其中函数“rawToByte”是:

public static byte rawToByte(int b) {
return (byte) (0xff & b);
}

结果OBDKey发送到设备字节0x02这个值是第一个命令,所以它复制值。我做错了什么?

最佳答案

OBDKey 是一个基于 ELM327 的蓝牙 OBD 适配器。就功能和使用方法而言,它就像 DealExtreme 和 scantool.net 蓝牙适配器一样。我对后两者很熟悉。

假设您已经打开了套接字和流,并且输出套接字名为 mBTOutputStream,这里是如何向设备发送字符串

/**
* Send the exact string provided.
* We don't append a CRLF or anything like that - we just send the exact string to the device as-is.
* @param sendThis - exact string to send to the device.
* @return - returns true unless a problem occurs, in which case we return false;
*/
public boolean sendRaw(String sendThis) {

// Ya can't send data if we're not connected!
if (isConnected() != true)
return false;

byte bsendThis[] = sendThis.getBytes();

try {mBTOutputStream.write(bsendThis);} catch (Exception e) {
ioErrorOccurredDuringOutput();
return false;
}

ioResetOutputErrorCount();
return true;
}

还要记住还要从设备读取,否则输入缓冲区将变满并开始阻塞 I/O。

关于android - OBDKey 蓝牙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3038771/

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