一个用于处理Linux总线上的CAN总线信号的包,用于Python 3.3和更高版本。
can4python的Python项目详细描述
Can4python简介
在LinuxSocketCan上处理CAN总线(控制器局域网)信号的软件包,适用于Python3.3及更高版本。
- 免费软件:BSD许可证
网络资源
- github上的源代码:https://github.com/caran/can4python
- 文档:https://can4python.readthedocs.org。
- python包索引(pypi):https://pypi.python.org/pypi/can4python
功能
- 发送和接收can帧。
- 处理来自can帧的can信号的解析。
- 使用SocketCan for Linux。
- 对于Python3.3或更高版本。python 3.4对于某些功能是必需的。
- 实现为纯python文件,没有任何外部依赖项。
- 适合与beaglebone和覆盆子pi嵌入式linux板一起使用。
- 使用开源kcd文件格式的配置。
- 限制传入帧以降低帧速率。
- 在数据更改时过滤传入帧。这是通过Linux内核中的一个位掩码完成的。
- 由linux内核执行的周期性帧传输(不是由python代码执行)。
- 用于显示kcd文件的内容(也可以是从dbc文件转换的内容)。
配置文件格式
这个can库使用kcd文件格式定义can信号和can消息。它是一种开源文件格式 用于描述can总线关系。有关格式和示例的详细信息,请参见https://github.com/julietkilo/kcd 文件夹。
根据网页,KCD文件格式的许可是:
The files that are describing the format are published under the Lesser GPL license. The KCD format is copyrighted by Jan-Niklas Meier (dschanoeh) and Jens Krueger (julietkilo). According to the authors this does not imply any licensing restrictions on software libraries implementing the KCD file format, or on software using those libraries.
传统上,can总线关系是用dbc文件描述的,dbc文件是vector informatik股份有限公司拥有的一种文件格式。 是否提供了开源的dbc到kcd文件格式转换器,例如canbabel工具: https://github.com/julietkilo/CANBabel
已知限制
- 并不是所有的can功能都实现了。“错误帧”和“远程请求帧”不是 不支持处理和can多路信号。
- 并非KCD文件格式的所有功能都已实现,例如“labels”。
- 假定每个can信号名称仅在单个can帧id中可用。
依赖性
can4python包本身没有依赖关系,除了运行在linux上的python 3.3+之外。
对于测试,必须安装虚拟can接口(“vcan”)。它是Linux内核的一部分。有关详细信息,请参阅本文档的使用页。
测试和文档依赖性:
Dependency | Description | License | Debian/pip package |
---|---|---|---|
vcan0 | Virtual CAN bus interface | Part of Linux kernel | |
coverage | Test coverage measurement | Apache 2.0 | P: coverage |
texlive | Latex library (for PDF creation) | “Knuth” | D: texlive-full |
Sphinx 1.3+ | Documentation tool | BSD 2-cl | P: sphinx |
Sphinx rtd theme | Theme for Sphinx | MIT | P: sphinx_rtd_theme |
安装和使用
请参阅单独的文档页。
历史记录
0.2.1(2016-09-30)
- 调整双文档生成配置以更好地适应readthedocs.io
0.2.0(2016-09-30)
- 更好地支持其他架构。广播管理器(bcm)是 现在也可以在32位ARM处理器上运行。
- 在canbus对象上实现了只读属性配置和读取bcm。
- 在caninterface对象上实现了只读属性interfacename。
- 更好地检查无效设置。
- 改进了用于canframe定义的repr()。
- 改进文件。
0.1.1(2015-11-16)
- 改进的文档
0.1.0(2015-09-22)
- github上的第一个版本。