![如何使用 rfcomm 通过 bt 读取 elm327 obd2 原始数据?](https://linux22.com/image/788267/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20rfcomm%20%E9%80%9A%E8%BF%87%20bt%20%E8%AF%BB%E5%8F%96%20elm327%20obd2%20%E5%8E%9F%E5%A7%8B%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
我正在尝试读取我的汽车数据,我已将一个便宜的 elm327 bt obd2 连接器连接到它,并使用 lubuntu。
基本上这就是我所做的,但它并没有完全发挥作用,我最终得到了一个有问题的终端,我一次只能看到一个租船人,而且得不到任何回复
首先我将其配对并信任它:
[bluetooth]# pair 00:10:CC:4F:36:03
Attempting to pair with 00:10:CC:4F:36:03
[CHG] Device 00:10:CC:4F:36:03 Connected: yes
Request PIN code
[agent] Enter PIN code: 1234
[CHG] Device 00:10:CC:4F:36:03 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 00:10:CC:4F:36:03 ServicesResolved: yes
[CHG] Device 00:10:CC:4F:36:03 Paired: yes
Pairing successful
[CHG] Device 00:10:CC:4F:36:03 ServicesResolved: no
[CHG] Device 00:10:CC:4F:36:03 Connected: no
[CHG] Device 00:10:CC:4F:36:03 Connected: yes
[CHG] Device 00:10:CC:4F:36:03 Connected: no
[CHG] Device 00:10:CC:4F:36:03 Connected: yes
[CHG] Device 00:10:CC:4F:36:03 Connected: no
[CHG] Device 00:10:CC:4F:36:03 Connected: yes
[CHG] Device 00:10:CC:4F:36:03 Connected: no
[CHG] Device 00:10:CC:4F:36:03 Connected: yes
[CHG] Device 00:10:CC:4F:36:03 Connected: no
[CHG] Device 00:10:CC:4F:36:03 Connected: yes
[CHG] Device 00:10:CC:4F:36:03 Connected: no
[NEW] Device 3C:5D:2A:64:34:DD 3C-5D-2A-64-34-DD
[CHG] Device 00:10:CC:4F:36:03 Connected: yes
[CHG] Device 00:10:CC:4F:36:03 Connected: no
[NEW] Device 48:CA:AB:30:69:81 48-CA-AB-30-69-81
[CHG] Device 00:10:CC:4F:36:03 RSSI: -51
[CHG] Device 00:10:CC:4F:36:03 RSSI: -40
[DEL] Device 48:CA:AB:30:69:81 48-CA-AB-30-69-81
[CHG] Device 00:10:CC:4F:36:03 Connected: yes
[CHG] Device 00:10:CC:4F:36:03 Connected: no
[DEL] Device 3C:5D:2A:64:34:DD 3C-5D-2A-64-34-DD
[CHG] Device 00:10:CC:4F:36:03 RSSI: -54
[bluetooth]# info 00:10:CC:4F:36:03
Device 00:10:CC:4F:36:03 (public)
Name: OBDII
Alias: OBDII
Paired: yes
Trusted: no
Blocked: no
Connected: no
LegacyPairing: no
UUID: Serial Port (00001101-0000-1000-8000-00805f9b34fb)
ManufacturerData Key: 0x0100
ManufacturerData Value:
03 36 4f cc 10 00 .6O...
ManufacturerData Key: 0x7262
ManufacturerData Value:
32 32 78 78 11 22 33 44 55 66 aa bb 00 00 22xx."3DUf....
RSSI: -54
[bluetooth]# trust 00:10:CC:4F:36:03
[CHG] Device 00:10:CC:4F:36:03 Trusted: yes
Changing 00:10:CC:4F:36:03 trust succeeded
然后我使用 rfcomm 建立串行连接,我运行 sdptool 来了解其在哪个通道上,因此我运行:
user@user-20n20009pg:~$ sdptool records 00:10:CC:4F:36:03
Service Name: JL_SPP
Service RecHandle: 0x10004
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Profile Descriptor List:
"Serial Port" (0x1101)
Version: 0x0102
user@user-20n20009pg:~$ sudo rfcomm connect /dev/rfcomm0 00:10:CC:4F:36:03 2 &
[1] 1583
user@user-20n20009pg:~$ Connected /dev/rfcomm0 to 00:10:CC:4F:36:03 on channel 2
Press CTRL-C for hangup
当我使用屏幕连接时,它看起来像是在工作,但它只显示一个字符
user@user-20n20009pg:~$ sudo screen /dev/rfcomm0 38400
然后它会在另一个终端上打开并且:
>a
而且我似乎无法写入完整的 atz 命令,而且它每次只显示一个字符。
你知道我错过了什么吗?