2

我用的是研华的can board,型号AMO-2203E。我在 ubuntu14.04,内核 3.13 上成功安装了驱动程序(https://support.advantech.com/support/DownloadSRDetail_New.aspx?SR_ID=GF-GRSC&Doc_Source=Download),并使用提供的示例程序成功发送和接收。
该程序是用 C 编写的,我想将它移植到我的 python 项目中。
我知道有一个基于 Python 的开源 CAN 项目(https://python-can.readthedocs.io/en/2.1.0/),但它只支持以下接口,没有研华支持。

Socketcan
Kvaser’s CANLIB
CAN over Serial
CAN over Serial / SLCAN
IXXAT Virtual CAN Interface
PCAN Basic API
USB2CAN Interface
NI-CAN
isCAN
NEOVI Interface
Vector
Virtual

  我想我可以基于这个框架添加对研华的支持,但对我来说感觉有点棘手。
另一个想法是编译用于发送和接收动态库的C文件,这些动态库由python调用用于ctypes。这应该是可行的。
我想知道有没有更好的方法?

4

1 回答 1

2

似乎研华既提供了 SocketCAN 驱动程序,又提供了另一个版本,可能用于类似接口的字符设备。您只需要安装 SocketCAN 变体即可获得can0接口。一旦它开始工作,您就可以使用 python-can 的SocketCAN "driver"

于 2018-11-27T08:35:39.127 回答