Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建要由J1939 DBC解码的MF4-asammdf_Python_J1939_Asammdf - Fatal编程技术网

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

Python 创建要由J1939 DBC解码的MF4-asammdf,python,j1939,asammdf,Python,J1939,Asammdf,我正在尝试创建一个MF4文件,由一个“J1939.dbc”进行解码,方法与 生成示例文件的代码如下所示: from asammdf import MDF, SUPPORTED_VERSIONS, Signal import numpy as np sigs = [] mdf = MDF() samples = [ np.array([1,1,1,1,1], dtype=np.uint32), np.array([217056256,217056256,217056256,21

我正在尝试创建一个MF4文件,由一个“J1939.dbc”进行解码,方法与

生成示例文件的代码如下所示:

from asammdf import MDF, SUPPORTED_VERSIONS, Signal
import numpy as np

sigs = []
mdf = MDF()

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

types = [('CAN_DataFrame.BusChannel', 'u1'),
        ('CAN_DataFrame.ID', '<u4'), 
        ('CAN_DataFrame.IDE', 'u1'), 
        ('CAN_DataFrame.DLC', 'u1'), 
        ('CAN_DataFrame.DataLength', 'u1'),
        ('CAN_DataFrame.DataBytes', 'u1', (8,)), 
        ('CAN_DataFrame.Dir', 'u1'),
        ('CAN_DataFrame.EDL', 'u1'), 
        ('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',
)
sigs.append(sig)

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

mdf.save('demo.mf4', overwrite=True)
print('save')
可能需要为解码指定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,1,1], dtype=np.uint32),
    np.array([217056256,217056256,217056256,217056256,217056256], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.ones(5, dtype=np.dtype('(8,)u1'))*111,
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32)
]

types = [('CAN_DataFrame.BusChannel', 'u1'),
        ('CAN_DataFrame.ID', '<u4'),
        ('CAN_DataFrame.IDE', 'u1'),
        ('CAN_DataFrame.DLC', 'u1'),
        ('CAN_DataFrame.DataLength', 'u1'),
        ('CAN_DataFrame.DataBytes', 'u1', (8,)),
        ('CAN_DataFrame.Dir', 'u1'),
        ('CAN_DataFrame.EDL', 'u1'),
        ('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')
从asammdf导入MDF,支持的_版本,信号
将numpy作为np导入
从asammdf.blocks.source\u utils导入源
sigs=[]
mdf=mdf()
样本=[
np.array([1,1,1,1,1],dtype=np.uint32),
np.array([21705622562170566225621705662170566217056256],dtype=np.uint32),
np.array([1,1,1,1,1],dtype=np.uint32),
np.array([1,1,1,1,1],dtype=np.uint32),
np.array([1,1,1,1,1],dtype=np.uint32),
np.one(5,dtype=np.dtype('(8,)u1'))*111,
np.array([1,1,1,1,1],dtype=np.uint32),
np.array([1,1,1,1,1],dtype=np.uint32),
np.array([1,1,1,1,1],dtype=np.uint32)
]
类型=[('CAN_DataFrame.BusChannel','u1'),

('CAN_DataFrame.ID','谢谢你的回答,Daniel!但是我如何在代码上标记此总线事件?请给我一个例子?应该应用带有XML的源代码,并在信号上记录总线日志吗?Daniel,你是最好的。说真的!
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,1,1], dtype=np.uint32),
    np.array([217056256,217056256,217056256,217056256,217056256], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.ones(5, dtype=np.dtype('(8,)u1'))*111,
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32),
    np.array([1,1,1,1,1], dtype=np.uint32)
]

types = [('CAN_DataFrame.BusChannel', 'u1'),
        ('CAN_DataFrame.ID', '<u4'),
        ('CAN_DataFrame.IDE', 'u1'),
        ('CAN_DataFrame.DLC', 'u1'),
        ('CAN_DataFrame.DataLength', 'u1'),
        ('CAN_DataFrame.DataBytes', 'u1', (8,)),
        ('CAN_DataFrame.Dir', 'u1'),
        ('CAN_DataFrame.EDL', 'u1'),
        ('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')