首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中使用asammdf解码CAN帧

在Python中使用asammdf解码CAN帧
EN

Stack Overflow用户
提问于 2020-12-15 02:44:01
回答 1查看 446关注 0票数 0

我可能对asammdf有一些误解,但我真的不确定如何解码一个CAN帧。

假设我有一个定义了相关消息的dbc,我可以使用mdf.extract_bus_logging()来解析信号,但我不确定从那里做什么。

我发送了一个原始有效负载+ can帧ID,我认为我可以使用cantools解析原始数据(然后将该数据传递到asammdf信号中),但感觉在asammdf中有一定程度的支持。

我在这里有一个关于我想要做什么的示例(使用cantools示例中的这个motohawk.dbc文件在这里https://cantools.readthedocs.io/en/latest/)

代码语言:javascript
运行
复制
from asammdf import MDF
import cantools

filename = "~/mdf_dbc_play/tmp.dbc"
db = cantools.database.load_file(filename)

msg_bytes = [0,0,0xff,0x01,0x02,0x03,0x04,0x05]
# Temporary bogus timestamp
timestamps = [0.1]

# Use cantools to decode the raw bytes
msg = db.get_message_by_name("EEC1")
unpacked_signals = msg.decode(msg_bytes)

# Using version 3.10 just in case we have some versioning issues with old tooling.

with asammdf.MDF(version='3.10') as mdf:
    # I assume there's some way of getting the actual value we care about from an unpacked message.
    samples = unpacked_signals.get_values()

    sig = asammdf.Signal(name="EEC1", samples=samples, timestamps=timestamps)
    mdf.append(sig)
    mdf.save("~/mdf_dbc_play/output.mdf")
EN

回答 1

Stack Overflow用户

发布于 2020-12-18 15:55:56

为了将CAN流量记录到MF4文件中,您可以尝试python-can中的以下代码

https://github.com/hardbyte/python-can/blob/mf4-io/can/io/mf4.py

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65294691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档