有人知道如何解码以下数据吗?

问题描述 投票:0回答:1

有人知道如何解码以下数据吗?

b'\x00\x00\x00\xf9Y^^,d,\x00\x00\x00'
b'\x00\x00\x00Ydd,\x89,\x00\x00\x00'
b'\x00\x00\x00\xf9Y^\x92,^,\x00\x00\x00'
b'\x00\x00\x00\xf9Ydd,\x89,\x00\x00\x00'
b'\x00\x00\x00z\x97\x89,\x89,\x00\x00\x00'

“情况” 这些数据来自票据接受者。我通过RS232将钞票接收器连接到我的树莓派上以获取数据。(我尝试为我的家族企业开发迷你自动售货机)

我能够从该钞票接受器获取数据,但我不知道如何解码它。我已经使用了目前能想到的所有解码器,但没有一个起作用。

这些数据应该包括“20”,因为我将20thb(泰国浴)纸币插入纸币接收器进行测试。收单人名字是[genius 7],手册上没有接收数据的信息(他们只提供接线手册...)。

任何帮助将不胜感激! 我在这里堆了 4 天;)

**“python_code”**

import serial
import struct
import chardet

if __name__ == '__main__':
    ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
    ser.reset_input_buffer()
    while True:
        if ser.in_waiting > 0:
            line0 = ser.readline()
            line1 = line0.replace(b'\x00', b'')
            line2 = line1.decode("cp1252")
            #line3 = line1.decode("utf-16le")
            
            result = chardet.detect(line0)
            
            print(line0)
            #print(line1)
            print(line2)
            #print(line3)
            print(result)

我尝试用“chardet”检测编码器,它说编码器是windows-1252。 所以我尝试了,但结果就在这里......
我以为是utf-16le,但是也不行。

b'\x00\x00\x00\x11\x97d\x89,\x89,\x00\x00\x00'
—d‰,‰,
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
b'\x00\x00\x00\xf9Ydd,d,\x00\x00\x00'
ùYdd,d,
{'encoding': 'ISO-8859-9', 'confidence': 0.4122478846530419, 'language': 'Turkish'}
b'\x00\x00\x00\x11Yd\x89,\x89,\x00\x00\x00'
Yd‰,‰,
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
b'\x00\x00\x00\xf9\x97d/\xec,^,\x00\x00\x00'
ù—d/ì,^,
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
b'\x00\x00\x00\x11Ydd,^,\x00\x00\x00'
Ydd,^,
{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}
b'\x00\x00\x00\x11\xdfd/^,d,\x00\x00\x00'
ßd/^,d,
{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}
b'\x00\x00\x00\x11Y^d,^,\x00\x00\x00'
Y^d,^,
{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}
b'\x00\x00\x00\xf9\x97d/d,d,\x00\x00\x00'
ù—d/d,d,
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
b'\x00\x00\x00\x11\x97d/d|^,\x00\x00\x00'
—d/d|^,
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
b'\x00\x00\x00\x11Y^d,^,\x00\x00\x00'
Y^d,^,
{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}
b'\x00\x00\x00\xf9\x97\x89,\x89\x9c\x00\x00\x00'
ù—‰,‰œ
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
b'\x00\x00\x00\xf9\x97\x89,\x89\x9c\x00\x00\x00'
ù—‰,‰œ
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
b'\x00\x00\x00\xf9Y\x89,\x89\xc9\x00\x00\x00'
ùY‰,‰É
{'encoding': None, 'confidence': 0.0, 'language': None}
b'\x00\x00\x00\x11\x97\x89,\x89\x9c\x00\x00\x00'
—‰,‰œ
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
python serial-port decode
1个回答
0
投票

假设由于您正在使用串行,您正在尝试执行 MDB。 MDB 协议是 9 位而不是 8 位,因此您需要考虑到这一点。访问 NAMA 网站并下载 MDB 协议指南。将向您展示可以使用任何 MDB 设备进行的所有通信。

© www.soinside.com 2019 - 2024. All rights reserved.