- # -*- coding: utf-8 -*-
- """
- Created on Wed Dec 27 18:09:18 2023
- @author: xm
- 如何创建生成canfd还待挖掘
- """
-
- import cantools
- # 定义一个消息
- message1 = cantools.db.Message( #cantools.database.can.message.Message
- frame_id=0x19FB5101, #435900673
- name='PFC_VacReport',
- length=8,
- bus_name='PFC',
- header_byte_order='big_endian',
- is_extended_frame=True,
- # is_multiplexed=True,
- # refresh=True,
- is_fd=False,
- send_type='cyclic',
- senders=['PFC'],
- cycle_time=20,
- comment='input voltage',
- unused_bit_pattern=255,
- # unpack_container=True,
- signals=[
- cantools.db.Signal(
- name='P_VacRpt_VacRms_A',
- start=0,
- length=12,
- is_signed=False,
- scale=0.1,
- offset=0,
- minimum=0,
- maximum=409.5,
- unit='V',
- invalid=None,
- initial=0,
- # is_multiplexer=False,
- # is_float=False,
- receivers=['IFB','LC'],
- # multiplexer_signal=None,
- # multiplexer_ids=None,
- byte_order='little_endian', #little_endian big_endian
- comment='valid voltage phase A',
- ),
- cantools.db.Signal(
- name='P_VacRpt_VacRms_B',
- start=12,
- length=12,
- is_signed=False,
- scale=0.1,
- offset=0,
- minimum=0,
- maximum=409.5,
- unit='V',
- invalid=None,
- initial=0,
- # is_multiplexer=False,
- # is_float=False,
- receivers=['IFB','LC'],
- # multiplexer_signal=None,
- # multiplexer_ids=None,
- byte_order='little_endian',
- comment='valid voltage phase b',
- ),
- cantools.db.Signal(
- name='P_VacRpt_VacRms_C',
- start=24,
- length=12,
- is_signed=False,
- scale=0.1,
- offset=0,
- minimum=0,
- maximum=409.5,
- unit='V',
- invalid=None,
- initial=0,
- # is_multiplexer=False,
- # is_float=False,
- receivers=['IFB','LC'],
- # multiplexer_signal=None,
- # multiplexer_ids=None,
- byte_order='little_endian',
- comment='valid voltage phase c',
- ),
- ]
- )
- node1 = cantools.db.Node(
- name='PFC'
- )
- # 定义一个数据库
- database = cantools.db.Database(
- messages=[message1],
- nodes=[node1,],
- version='1.0'
- )
- # 保存为DBC文件
- cantools.database.dump_file(database, 'example.dbc')