ÈÃÎÒÃÇÀ´¿´Ò»ÏÂÎÒÃǸոÕÉú³ÉµÄDBC Êý¾Ý¿â¡£ÎÒÃÇ´ÓPythonÊéдÄÚÈÝ¿ªÊ¼:
import textwrap
from canlib import kvadblib
with kvadblib .Dbc( filename=’db_histogram . dbc ’ ) as db:
print (db)
for message in db:
print ( ’\n {} ’ . format(message) )
for signal in message :
print (textwrap . f i l l ( ’ {} ’ . format( signal ) , 80))
ʹÓÃtextwrapÄ£¿éÀ´Éú³ÉÒ»¸ö¼ò½àµÄ80×Ö¿íÊä³ö:
Dbc db_histogram: flags:0, protocol:CAN, messages:4
Message(name=’LIM_002’, id=402, flags=<MessageFlag.0: 0>, dlc=8, comment=’’)
Signal(name=’Load’, type=<SignalType.FLOAT: 3>,
byte_order=<SignalByteOrder.INTEL: 0>, mode=-1, size=ValueSize(startbit=0,
length=32), scaling=ValueScaling(factor=1.0, offset=0.0),
limits=ValueLimits(min=0.0, max=100.0), unit=’metric ton’, comment=’Measured
load in system.’)
Message(name=’ECM_004’, id=504, flags=<MessageFlag.0: 0>, dlc=8, comment=’’)
Signal(name=’Fuel’, type=<SignalType.FLOAT: 3>,
byte_order=<SignalByteOrder.INTEL: 0>, mode=-1, size=ValueSize(startbit=0,
length=32), scaling=ValueScaling(factor=1.0, offset=0.0),
limits=ValueLimits(min=0.0, max=300.0), unit=’l/100 km’, comment=’Current fuel
consumption.’)
Message(name=’ECM_003’, id=503, flags=<MessageFlag.0: 0>, dlc=8, comment=’’)
Signal(name=’EngineTemp’, type=<SignalType.FLOAT: 3>,
byte_order=<SignalByteOrder.INTEL: 0>, mode=-1, size=ValueSize(startbit=0,
length=32), scaling=ValueScaling(factor=1.0, offset=0.0),
limits=ValueLimits(min=-60.0, max=200.0), unit=’Celsius’, comment=’System
temperature consumption.’)
Message(name=’ECM_001’, id=501, flags=<MessageFlag.0: 0>, dlc=8, comment=’’)
Signal(name=’EngineSpeed’, type=<SignalType.UNSIGNED: 2>,
byte_order=<SignalByteOrder.INTEL: 0>, mode=-1, size=ValueSize(startbit=0,
length=32), scaling=ValueScaling(factor=1.0, offset=0.0),
limits=ValueLimits(min=0.0, max=6000.0), unit=’rpm’, comment=’Current engine
speed.’)
Ï£ÍûÕâÀï²»ÒªÓÐʲô²»Õý³££¬ËùÒÔÈÃÎÒÃÇ¿´Ò»ÏÂÎÒÃǵÄÊý¾Ý¿âÔÚÔÆº£ÓÎÏ· Êý¾Ý¿â±à¼Æ÷ÀïÊÇÔõôÑù¡£
ͼ1:ÔÚÔÆº£ÓÎÏ· Êý¾Ý¿â±à¼Æ÷Àï¿´ÎÒÃǵÄÊý¾Ý¿â¡£
ÔÚÔÆº£ÓÎÏ·Êý¾Ý¿â±à¼Æ÷µÄÖмä¿òÀÎÒÃÇÄÜ¿´µ½4¸öÒѶ¨ÒåµÄ±¨ÎÄ¡£ÔÚͼ1ÖÐ1, ±¨ÎÄ¡°LIM_002¡±±»Ñ¡Ôñ£¬¸Ã±¨ÎĵÄÄÚÈÝÏÔʾÔڴ˱¨ÎÄÏÂÃæ¡£ÔÚÎÒÃǵÄÀý×ÓÀÓÐÒ»¸öÃûΪ¡°Load¡±µÄÐźţ¬ËüµÄµ¥Î»unit±»ÉèΪ¡°metric ton¡±¡£ÔÚÓұߵķ½¿òÖУ¬µ±Ç°±¨ÎĵÄÊý¾ÝbitsÒÔÒ»¸ö²¼¾Ö(ÓÐÒõÓ°µÄ¸ñ×Ó)ÏÔʾ¡£ ÔÚͼÖÐ?1, ÎÒÃÇÄÜ¿´µ½±»Ñ¡ÖеÄÐźÅÊÇ´ÓµÚÒ»¸öbyte µÄbit 0 µ½µÚÈý¸öbyteµÄbit 7£¬ ÕâºÍ¿ªÊ¼Î»ÖÃ0ºÍ¸ø³öµÄ³¤¶È32Ïà¶ÔÓ¦¡£
ÕâÑùÎÒÃǾͽáÊøÁ˴˲©¿ÍµÄµÚÒ»²¿·Ö£¬½éÉÜÔõÑùÉú³ÉÒ»¸öÊý¾Ý¿â¡£ÔÚÏÂÒ»¸ö²¿·ÖÎÒÃǽ«¿´Ò»ÏÂÔÚ·¢ËͺͽÓÊÕÐźÅʱÔõÑùʹÓÃÊý¾Ý¡£