目录
汽车行业常用表格来制定与查看CAN矩阵,但是不利于实验测试与分析,所以需要转换为对应的dbc文件
1、库导入
import canmatrix
处理精度问题:
import decimal
下面这些也放进去,有些其实代码也用不到,但是打包后会有错误
import canmatrix.formats
import canmatrix.formats.xlsx
import canmatrix.formats.ldf
import canmatrix.formats.dbc
import canmatrix.formats.json
import canmatrix.formats.odx
import canmatrix.formats.sym
import canmatrix.formats.arxml
import canmatrix.formats.csv
import canmatrix.formats.dbf
import canmatrix.formats.kcd
import canmatrix.formats.fibex
import canmatrix.formats.yaml
import canmatrix.formats.wireshark
import canmatrix.formats.scapy
2 CAN模板
可以用下方代码生成个CAN矩阵模板
from openpyxl import Workbook
import xlwt
#新建excel
wb = Workbook() # 实例化
ws = wb.active # 激活 worksheet
# ws = wb.add_sheet("sheet1")
# sheet = wb.sheet_by_index(0)
Title = ["Message ID","Message Name","The period of transmitter (ms)","Message Length (byte)",\
"N Byte Position","Bit Position (StartBit)","Data Length (bit)","SignalName","SignalSymbol","Byte Order",\
"OnesComplement:1S\n TwosComplement:2S\n UnsignedValue:U","Unit","Resolution","OffSet","Signal Value (MIN)",\
"Signal Value (MAX)","Physical Value (MIN)","Physical Value (MAX)","FirstFrameValueIf AlgorithmNotReady",\
"Unavailable Value","Coding (Bit Position is MSB first)","Judgment","Transmitter ECU","Receiver ECU","Note"]
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = "Times New Roman"
font.bold = True #加粗
style.font = font
# ws.write(0,[],"设置单元格的样式")
for i in range(0,len(Title),1):
ws.cell(row=1, column=i+1, value=Title[i])#row:行 column:列 value:内容
wb.save('CAN模板.xlsx')
print('')
print('生成完成!')
input('回车结束')
3 部分功能说明
3.1 总线类型:
# 总线类型 描述这个DBC文件是CAN,LIN,MOST, FlexRay或其他类型的database.
matrix_obj.add_global_defines("BusType", "STRING")
matrix_obj.add_define_default("BusType", "CAN")
3.2 报文发送类型属性以及默认值
# 报文发送类型属性以及默认值,,,可以自定义
matrix_obj.add_frame_defines("GenMsgSendType", 'ENUM "Cyclic", "Event&#