微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建要由 J1939 DBC 解码的 MF4 - asammdf

如何解决创建要由 J1939 DBC 解码的 MF4 - asammdf

我正在尝试创建一个由“J1939.dbc”解码的 MF4 文件,就像 CSS electronics

生成示例文件代码是这样的:

jupyter

上图:

1) 生成文件是这个

2) CAN 日志记录被禁用 - 当我使用来自 CSS electronics文件时,“CAN 日志记录”被启用 -

enter image description here

但是如果尝试手动生成解码,它会返回一个空白文件

pyenv

可能需要指定 ID 和 DataByte 列进行解码,但我尝试了很多方法但都不起作用。

我能做什么?

解决方法

总线记录的元数据也必须添加到新的通道组中:

from asammdf import MDF,SUPPORTED_VERSIONS,Signal
import numpy as np
from asammdf.blocks.source_utils import Source

sigs = []
mdf = MDF()

samples = [
    np.array([1,1,1],dtype=np.uint32),np.array([217056256,217056256,217056256],np.array([1,np.ones(5,dtype=np.dtype('(8,)u1'))*111,dtype=np.uint32)
]

types = [('CAN_DataFrame.BusChannel','u1'),('CAN_DataFrame.ID','<u4'),('CAN_DataFrame.IDE',('CAN_DataFrame.DLC',('CAN_DataFrame.DataLength',('CAN_DataFrame.DataBytes','u1',(8,)),('CAN_DataFrame.Dir',('CAN_DataFrame.EDL',('CAN_DataFrame.BRS','u1')]

t = np.arange(5,dtype=np.float64)

sig = Signal(
    np.core.records.fromarrays(samples,dtype=np.dtype(types)),t+10,name='Channel_structure_composition',comment='Structure channel composition',source=Source(
        source_type=Source.SOURCE_BUS,bus_type=Source.BUS_TYPE_CAN,name="CAN bus",path="CAN bus",comment="",)
)
sigs.append(sig)

mdf.append(sigs,comment='arrays',common_timebase=True)

mdf.save('demo.mf4',overwrite=True)
print('save')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。