问题描述
我正在尝试创建一个由“J1939.dbc”解码的 MF4 文件,就像 CSS electronics
jupyter
上图:
2) CAN 日志记录被禁用 - 当我使用来自 CSS electronics 的文件时,“CAN 日志记录”被启用 -
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')