如何从 Python 中的 CAN 消息中删除 ASCII 格式的字符?

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

我想从我的字节数组中删除 ASCII 字符并查看它包含十六进制数字。为了更好地解释它:我使用 pyton-can 库从 CANbus 接收 CAN 消息,并将它们存储在

message
变量中。当我打印它时,我看到:

bytearray(b'\x00\x00^]b b\xd9')

但我不想看到 ASCII 字符,我希望它打印出来,例如 b'\x00\x00\x01\x65\xA5\x12\x1A\xBB

那我该怎么办?

我的代码现在看起来像:

#receiving CAN Bus messages here
bus = can.interface.Bus(interface='kvaser', channel=0, bitrate=1000000)
byte_index_to_check = 1
msg = can.Message(arbitration_id=0x007)
bus.send(msg)
recvMsg = bus.recv(timeout=0.5)
message = bus.recv()
received_message = hex(message.data[byte_index_to_check])

last_message = message
last_received = received_message
print("last message",last_message.data)
python message can-bus python-can
1个回答
0
投票

您不想删除字符,而是将它们转换为十六进制。

binascii
库就是这样做的:

binascii.b2a_hex(message, b' ')
© www.soinside.com 2019 - 2024. All rights reserved.