如何使用python驱动研华CAN板?

时间:2018-11-26 06:35:01

标签: python can-bus socketcan

我正在使用研华的AMO-2203E型罐头纸板。 我已在内核3.13的ubuntu14.04上成功安装了驱动程序(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/),但是它仅支持以下接口,并且没有advantech支持。

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。这应该可行。
我想知道是否有更好的方法?

1 个答案:

答案 0 :(得分:1)

似乎Advantech提供了SocketCAN驱动程序和可能用于字符设备(如接口)的另一个版本。您只需要安装SocketCAN变体,即可获得can0接口。一旦运行,您就可以使用python-can的SocketCAN "driver"