完善了显示,修改了复合管控的通信协议
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
DBC文件生成工具
|
||||
"""
|
||||
|
||||
import cantools
|
||||
from cantools.database import Database, Message, Signal
|
||||
|
||||
def create_sample_dbc():
|
||||
"""创建一个示例DBC文件"""
|
||||
db = Database()
|
||||
|
||||
# 添加消息
|
||||
msg1 = Message(
|
||||
name="EngineData",
|
||||
frame_id=0x100,
|
||||
length=8,
|
||||
signals=[
|
||||
Signal(name="RPM", start=0, length=16, is_signed=False),
|
||||
Signal(name="Speed", start=16, length=16, is_signed=False),
|
||||
Signal(name="Temp", start=32, length=8, is_signed=True)
|
||||
]
|
||||
)
|
||||
|
||||
msg2 = Message(
|
||||
name="VehicleStatus",
|
||||
frame_id=0x200,
|
||||
length=4,
|
||||
signals=[
|
||||
Signal(name="DoorStatus", start=0, length=4, is_multiplexer=False),
|
||||
Signal(name="LightStatus", start=4, length=4, is_multiplexer=False)
|
||||
]
|
||||
)
|
||||
|
||||
# 添加断路器状态消息
|
||||
msg3 = Message(
|
||||
name="CircuitBreakerStatus",
|
||||
frame_id=0x1401A501,
|
||||
is_extended_frame=True,
|
||||
length=8,
|
||||
signals=[
|
||||
Signal(name="FuelCellBreaker", start=0, length=8, is_signed=False),
|
||||
Signal(name="BatteryBreaker", start=8, length=8, is_signed=False),
|
||||
Signal(name="MotorBreaker", start=16, length=8, is_signed=False),
|
||||
Signal(name="BatteryMeterBreaker", start=24, length=8, is_signed=False),
|
||||
Signal(name="DCDC5Breaker", start=32, length=8, is_signed=False),
|
||||
Signal(name="BowDistBoxBreaker", start=40, length=8, is_signed=False),
|
||||
Signal(name="SternFT45Breaker", start=48, length=8, is_signed=False),
|
||||
Signal(name="SternRudder1Breaker", start=56, length=8, is_signed=False)
|
||||
]
|
||||
)
|
||||
|
||||
db.messages.extend([msg1, msg2, msg3])
|
||||
return db
|
||||
|
||||
def save_dbc_file(db, filename):
|
||||
"""保存DBC文件"""
|
||||
with open(filename, "w") as f:
|
||||
f.write(db.as_dbc_string())
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("正在生成示例DBC文件...")
|
||||
db = create_sample_dbc()
|
||||
save_dbc_file(db, "generated.dbc")
|
||||
print("DBC文件已生成: generated.dbc")
|
||||
Reference in New Issue
Block a user