【发布时间】:2021-04-09 08:58:00
【问题描述】:
我正在尝试通过cantools 解码一个罐头消息。
for ii in range(len(dbcfiles)):
databases.append(cantools.db.load_file(dbcfiles[ii]))
db = cantools.db.Database()
for database in databases:
db.messages.extend(database.messages)
decoded_mess = []
with can.BLFReader(logfile) as can_log:
for msg in can_log:
print(msg.data)
print(db.decode_message(msg.arbitration_id, msg.data))
print(msg)
# Timestamp: 1610115116.731417 ID: 0036 S DLC: 8 c0 08 7e 08 a9 0d 0b 0f Channel: 24
问题是最后一行db.decode_message(msg.arbitration_id, msg.data) 产生了Key Error: 54 (thats decimal of 36)。我得到了不同 id 的每个 msg 的错误,我知道 id 在 dbc 中。
【问题讨论】: