Files
H100PowerManger/test/cantools/prindbc.py
T
2025-05-16 01:08:12 +08:00

34 lines
1.4 KiB
Python

import cantools
import sys
def print_dbc_info(dbc_file):
try:
# 加载 DBC 文件
db = cantools.database.load_file(dbc_file)
print(f"成功加载 DBC 文件: {dbc_file}")
print(f"共包含 {len(db.messages)} 个消息。\n")
for msg in db.messages:
print(f"📦 消息: {msg.name}")
print(f" ID: {hex(msg.frame_id)}")
print(f" 长度: {msg.length} 字节")
print(f" 发送节点: {msg.senders}")
print(f" 注释: {msg.comment if msg.comment else '无'}")
print(" 包含信号:")
for signal in msg.signals:
print(f" 🔹 信号名: {signal.name}")
print(f" 起始位: {signal.start}, 长度: {signal.length}, 单位: {signal.unit}")
print(f" 最小值: {signal.minimum}, 最大值: {signal.maximum}")
print(f" 接收节点: {signal.receivers}")
print(f" 注释: {signal.comment if signal.comment else '无'}")
print("-" * 60)
except Exception as e:
print(f"读取 DBC 文件失败: {e}")
if __name__ == "__main__":
# if len(sys.argv) != 2:
# print("用法: python read_dbc.py your_file.dbc")
# else:
# print_dbc_info(sys.argv[1])
print_dbc_info('/home/zjk/project/H100/H100PowerManger/test/cantools/CSC_TSU_20240823.dbc')