Python学习--Python_cantools

关于

参考文档:Python cantools包_程序模块 - PyPI - Python中文网

cantools主要用于:

  • DBC、KCD、SYM、ARXML 3&4 和 CDD 文件解析。
  • CAN报文编码和解码。
  • 简单和扩展的信号复用。
  • 诊断 DID 编码和解码。
  • candump输出解码器。
  • 节点测试器。
  • C 源代码生成器。
  • CAN总线监视器。
  • 信号图形。

安装

pip install cantool

 示例用法

cantools.db.load_file(dbc路径)

        返回一个数据库对象

db_can = cantools.db.load_file("D:\\Pycharm\\Daily_study\\Daily_000\\20220318-jh1-ES33_ICM_V4.6_INFOCAN_Cluster.dbc")
db_canfd = cantools.db.load_file("D:\\Pycharm\\Daily_study\\Daily_000\\"
                                 "20220318-jh1-ES33_ICM_V4.6_INFOCANFD_Cluster.dbc")

db_can.get_message_by_name(报文名字)

        返回一个报文类对象

My_message = db_can.get_message_by_name('IMCU_PTCANFD_20ms_FrP05')

My_message.encode(data_dict,scalling=True,padding=False,strict=True)

        data_dict:以一个字典的形式对信号进行赋值

        scalling:默认进行信号缩放

        padding:默认未使用的信号值不处理,为True时则会置为1

        strict:默认为真,所有信号值都必须在其允许的范围内,否则会引发异常

My_message.signals

        返回的是一个列表,列表内存的是一个个signal类,通过signal类可以获取到信号的

         name、initvalue等

pprint(My_message.signals[1].name)

你可能感兴趣的:(学习)