我目前正在寻找WLAN协议的规范,以获得OBDII数据。市场上有一些与ELM327类似的适配器,它使iPhone能够连接到与无线局域网的OBDIIⅡ接口。这是因为蓝牙串口因为附件接口而被扰乱。其他程序,如用于android的Torque也可以使用此通信协议。然而,我没有找到创建网络客户端的规范。
欢迎任何帮助,
谢谢
发布于 2013-02-28 21:02:28
好的,经过进一步的研究,我发现了两个来源:
>之前,使用WiFi description进行
请求信息可以通过发送以下格式(ASCII字符)的命令来完成:
MM PP\r
其中MM是测试模式,PP是PID,\r是回车(十六进制:0x0d)。Kiwi忽略所有空格字符。*测试模式03和04不需要PID值。
所说的“测试模式”是SAE J1979标准中定义的十种诊断模式:
Test mode Description
01 Show current data
02 Show freeze frame data
03 Show diagnostic trouble codes
04 Clear trouble codes and stored values
05 Test results, oxygen sensors
06 Test results, non-continuously monitored
07 Show 'pending' trouble codes
08 Special control mode
09 Request vehicle information
0A Request permanent trouble codes PID值是车内传感器的代码。一个(非详尽的)list of possible PID values is on Wikipedia。
发布于 2018-05-19 04:07:24
下面是我用C和socket做的事情:
int sockfd = 0, n = 0;
char recvBuff[1024];
struct sockaddr_in serv_addr;
char *ip = "192.168.0.10";
char str [128];
int i;
memset(recvBuff, '0',sizeof(recvBuff));
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
printf("\n Error : Could not create socket \n");
return 1;
}
memset(&serv_addr, '0', sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(35000);
if(inet_pton(AF_INET, ip, &serv_addr.sin_addr)<=0)
{
printf("\n inet_pton error occured\n");
return 1;
}
if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
{
printf("\n Error : Connect Failed \n");
return 1;
}
printf ("reading...\n");
strcpy (str,"AT Z\x0d");
sleep(2);
write (sockfd, str, strlen (str));
while ( (n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0)
{
recvBuff[n] = 0;
printf ("received: ");
if(fputs(recvBuff, stdout) == EOF)
{
printf("\n Error : Fputs error\n");
}
printf ("\r\ntype: ");
fgets (str, sizeof (str), stdin);
i = strlen (str);
if (str [i-1] == 0x0a)
str [i-1] = 0;
strcat (str, "\x0d");
write (sockfd, str, strlen (str));
printf ("\r\n");
} 输入1或2回车键,你应该看到提示: ELM327然后,输入任何你想要的,例如: AT RV (将显示电压)然后对所有代码使用这个pdf:https://www.obd-2.de/carcode/dl/ELM327DS.pdf
发布于 2020-04-12 07:30:30
看一下TCP加密狗将ELM327 RS232端口透明地绑定到ELM327 datasheet服务器。并没有真正的WIFI协议。您可以通过原始TCP连接使用ELM327协议。
您可以使用telnet命令发送AT命令和称为PID的OBD2命令:
telnet 192.168.0.1 35000如果连接成功,您可以尝试发送:
AT Z服务器应响应"ELM327“和版本号。
https://stackoverflow.com/questions/10498747
复制相似问题