这是一个非常具体的问题。
我目前正在开发一个项目,以创建一个能够通过蓝牙读取比重计值的 android 应用程序。通过阅读数据表,我怀疑比重计使用串行通信。
首先,我在蓝牙管理器的帮助下连接了我的笔记本电脑,并尝试与串行终端进行通信。通过反复试验,我在以十六进制发送字符“0x44”时设法收到了一些信息。唉,我收到的不是人类可读的,这是一个例子:
\0x11\0x1a\0x19D0L\0xda\0xae\0x9b \0xcc\0x01\0xa2q\0x13\0x00\0x13p:\0xcb(\0x8a\0x0c\0xf6\0xeb`#\0xbdv
然后,我使用BluetoothSerial一个 phonegap 插件通过蓝牙进行串行通信,并为 android 构建了一个小型测试应用程序,通过发送相同的字符 (0x44),我收到了一串奇怪的字符:
D0Lڮ� ���A��p���wn��
��� )
通过这 2 个实验,我相信信息可以被编码或加密。
阅读同一家公司的不同比重计的PDF,我发送了以下内容(十六进制):
10 7B FD 78 16
我得到的是以下十六进制:
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 31 13 00 13 70 66 76 0e 26 8b b9 8c 0c 47 b7 3c 09 0b 00 74 0f 00 00 ca 09
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 41 13 00 13 70 03 ba f2 77 6e 82 81 0d 08 ba c8 09 0b 00 7a 1f 00 00 6c 0a
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 51 13 00 13 70 14 95 bb dc 4f 51 58 d6 11 b8 49 0a 03 00 6a 2f 00 00 e5 0a
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 01 13 00 13 70 5f 07 d4 db e9 cd e6 61 6c b0 50 0b 0b 00 57 60 00 00 12 0c
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 11 13 00 13 70 48 28 9d 70 c8 1e 3f ba 75 b2 b5 09 0a 00 de 71 00 00 0e 0b
仅仅通过阅读PDF的附录 2和M-BUS PDF,我无法从这个回复中找到任何意义。我知道,当为此设备使用现有的 android 应用程序时,我会获得它找到的设备的以下信息,例如:
- C10SA202842
- 电流:500 立方米
- 存储:500 立方米
- 日期:23/11/15/15 20:14
我也得到了以下回应:
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 31 1c 00 13 9f 8d ba 81 19 d6 e2 a3 ad f0 53 30 0b 0e 00 a2 0c 00 00 ec 0b
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 41 1c 00 13 9f e8 76 7d 48 33 d9 ae ac bf 5e ba 0a 0d 00 55 1d 00 00 39 0b
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 51 1c 00 13 9f ff 59 34 e3 12 0a 77 77 a6 5c 9f 09 0d 00 e2 2c 00 00 ba 0a
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 61 1c 00 13 9f c6 28 ee 1e 70 7e 1d 1a 8d 5b 3b 09 10 00 df 3d 00 00 67 0a
对于不同的水测量单元,它检测到。android 应用程序在同一日期和(或多或少)时间以可读格式获得以下结果:
- C14FA152455
- 电流:0.027 立方米
- 存储:0.027 立方米
- 日期:23/11/15/15 18:32
如果我收到的确实是我所期望的,我怎么能找到以可读格式解码该信息的正确方法?